{"id":"eab7b190-a039-41a9-8507-cb3916aec9cc","slug":"connected-intelligent-systems-edc-mcp","kind":"mcp","name":"edc-mcp","summary":"","owner":"connected-intelligent-systems","repoUrl":"https://github.com/connected-intelligent-systems/edc-mcp","license":"MIT","licenseTier":"permissive","trust":"community","stars":0,"match":null,"fewStars":true,"format":"mcp","createdAt":"2025-11-14T08:26:38.000Z","addedAt":"2026-10-21T20:04:57.570Z","logoUrl":"https://avatars.githubusercontent.com/u/151035804?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["utilities"],"tags":[],"runtime":"python","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-23T20:59:04.929Z","sample":false,"url":"https://conduits.dev/tools/connected-intelligent-systems-edc-mcp","language":"Python","transports":["stdio"],"install":{"pypi":"edc-mcp"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# EDC MCP Server\n\nA Model Context Protocol (MCP) server for Eclipse Dataspace Components (EDC), enabling AI assistants like Claude to interact with EDC connectors for dataspace operations.\n\n## Overview\n\nThis project provides a FastMCP-based server that exposes EDC Management API functionality through MCP tools. It allows AI assistants to perform dataspace operations such as managing assets, policies, catalogs, contract negotiations, and data transfers.\n\n### What is EDC?\n\n[Eclipse Dataspace Components (EDC)](https://github.com/eclipse-edc/Connector) is a framework for sovereign, inter-organizational data exchange. It implements the Dataspace Protocol and provides APIs for managing data assets, access policies, contract negotiations, and data transfers in a decentralized manner.\n\n### What is MCP?\n\nThe [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) is an open protocol that standardizes how applications provide context to LLMs. This server implements MCP to make EDC functionality accessible to AI assistants.\n\n## Features\n\n- **Asset Management**: Create, read, update, and delete data assets\n- **Policy Definitions**: Manage access control policies for assets\n- **Contract Definitions**: Define contractual terms for data access\n- **Catalog Operations**: Browse and search data catalogs\n- **Federated Catalog**: Query across multiple dataspaces using SPARQL\n- **Contract Negotiations**: Initiate and manage contract agreements\n- **Transfer Processes**: Execute data transfers (HTTP pull/push)\n- **Dataset Operations**: Retrieve dataset metadata and thing descriptions\n- **Background Refresh**: Automatic federated catalog updates\n\n## Installation\n\n### Prerequisites\n\n- Python 3.11 or higher\n- Access to an EDC connector instance\n\n### From Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/yourusername/edc-mcp.git\ncd edc-mcp\n\n# Create a virtual environment\npython -m venv .venv\nsource .venv/bin/activate  # On Windows: .venv\\Scripts\\activate\n\n# Install the package\npip install -e .\n```\n\n### Using Docker\n\n```bash\n# Build the image\ndocker build -t edc-mcp .\n\n# Run the container\ndocker run -p 8081:8081 edc-mcp\n```\n\n## Configuration\n\nThe server requires the following environment variables to connect to your EDC instance:\n\n- `EDC_MANAGEMENT_URL`: EDC Management API endpoint (default: `http://localhost:19193/management`)\n- `EDC_API_KEY`: API key for authentication (default: `ApiKeyDefaultValue`)\n- `EDC_PROTOCOL_URL`: Protocol endpoint URL (default: `http://localhost:19194/protocol`)\n\nSet these in your environment or create a `.env` file:\n\n```bash\nexport EDC_MANAGEMENT_URL=http://your-edc-instance:19193/management\nexport EDC_API_KEY=your-api-key\nexport EDC_PROTOCOL_URL=http://your-edc-instance:19194/protocol\n```\n\n## Usage\n\n### Starting the Server\n\n```bash\n# Run directly\npython -m edc_mcp.main\n\n# Or using the installed command\nedc-mcp\n```\n\nThe server will start on `http://0.0.0.0:8081` by default.\n\n### Using with Claude Desktop\n\nAdd to your Claude Desktop configuration (`claude_desktop_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"edc\": {\n      \"url\": \"http://localhost:8081/mcp/v1\"\n    }\n  }\n}\n```\n\n## Available Tools\n\n### Asset Management\n\n- `create_asset` - Create a new asset with properties and data address\n- `list_assets` - List all assets with pagination\n- `find_assets` - Search assets using filter expressions\n- `get_asset` - Retrieve a specific asset by ID\n- `update_asset_properties` - Update asset metadata\n- `update_asset_private_properties` - Update private asset properties\n- `update_asset_data_address` - Update asset data address configuration\n- `delete_asset` - Remove an asset\n\n### Policy Definitions\n\n- `create_policy_definition` - Create a new access policy\n- `list_policy_definitions` - List all policy definitions\n- `get_policy_definition` - Retrieve a specific policy by ID\n- `delete_policy_definition` - Remove a policy definition\n\n### Contract Definitions\n\n- `create_contract_definition` - Create a contract definition\n- `list_contract_definitions` - List all contract definitions\n- `find_contract_definitions_by_name` - Search contract definitions by name\n- `get_contract_definition` - Retrieve a specific contract definition\n- `delete_contract_definition` - Remove a contract definition\n\n### Catalog Operations\n\n- `get_catalog` - Retrieve catalog from a provider connector\n- `get_dataset_from_catalog` - Get dataset details from catalog\n\n### Federated Catalog\n\n- `query_federated_catalog_sparql` - Execute SPARQL queries across federated catalogs\n- `get_federated_catalog_stats` - Get statistics about cached catalog data\n- `get_federated_catalog_example_queries` - Get example SPARQL queries\n\n### Dataset Operations\n\n- `get_policies_for_dataset` - Extract policies for a specific dataset\n- `get_policy_for_dataset` - Get a specific policy from a dataset\n- `get_thing_description_for_dataset` - Retrieve Thing Description (WoT) for a dataset\n\n### Contract Negotiations\n\n- `create_contract_negotiation` - Initiate a contract negotiation\n- `list_contract_negotiations` - List all negotiations\n- `get_contract_negotiation` - Get negotiation details by ID\n- `get_contract_negotiation_by_agreement` - Find negotiation by agreement ID\n\n### Contract Agreements\n\n- `list_contract_agreements` - List all concluded agreements\n- `get_contract_agreement` - Get agreement details by ID\n- `get_contract_agreement_by_negotiation` - Get agreement by negotiation ID\n\n### Transfer Processes\n\n- `create_transfer_process_http_pull` - Start an HTTP pull transfer\n- `create_transfer_process_http_push` - Start an HTTP push transfer\n- `list_transfer_processes` - List all transfer processes\n- `get_transfer_process` - Get transfer process details\n- `get_data_address_for_http_pull_transfer_process` - Get EDR for pull transfers\n- `perform_http_pull_request` - Execute HTTP pull data request\n\n## Example Use Cases\n\n1. **Browse Available Data**: Query catalogs and federated catalogs to discover datasets\n2. **Negotiate Contracts**: Initiate and track contract negotiations with data providers\n3. **Transfer Data**: Execute HTTP pull or push transfers after successful negotiations\n4. **Manage Assets**: Create and configure data assets for sharing\n5. **Define Policies**: Set up access control policies and contract terms\n6. **SPARQL Queries**: Perform advanced queries across federated dataspace catalogs\n\n## Resources\n\n- [Eclipse Dataspace Components](https://github.com/eclipse-edc/Connector)\n- [Model Context Protocol](https://modelcontextprotocol.io/)\n- [FastMCP Documentation](https://gofastmcp.com/)\n"}