EDC MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EDC MCP ServerCreate a new asset for the customer data"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
EDC MCP Server
A Model Context Protocol (MCP) server for Eclipse Dataspace Components (EDC), enabling AI assistants like Claude to interact with EDC connectors for dataspace operations.
Overview
This 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.
What is EDC?
Eclipse Dataspace Components (EDC) 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.
What is MCP?
The Model Context Protocol (MCP) is an open protocol that standardizes how applications provide context to LLMs. This server implements MCP to make EDC functionality accessible to AI assistants.
Related MCP server: Databricks MCP Server
Features
Asset Management: Create, read, update, and delete data assets
Policy Definitions: Manage access control policies for assets
Contract Definitions: Define contractual terms for data access
Catalog Operations: Browse and search data catalogs
Federated Catalog: Query across multiple dataspaces using SPARQL
Contract Negotiations: Initiate and manage contract agreements
Transfer Processes: Execute data transfers (HTTP pull/push)
Dataset Operations: Retrieve dataset metadata and thing descriptions
Background Refresh: Automatic federated catalog updates
Installation
Prerequisites
Python 3.11 or higher
Access to an EDC connector instance
From Source
# Clone the repository
git clone https://github.com/soofi-project/edc-mcp.git
cd edc-mcp
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install the package
pip install -e .Using Docker
# Pull the published multi-architecture image
docker pull ghcr.io/soofi-project/edc-mcp:latest
# Run the container
docker run --rm -p 8081:8081 \
-e EDC_MANAGEMENT_URL=http://host.docker.internal:5173/api/management \
-e EDC_CATALOG_URL=http://host.docker.internal:5173/api/catalog \
ghcr.io/soofi-project/edc-mcp:latestReplace host.docker.internal with the hostname or service name that is reachable from the container.
For local image development:
# Build the image
docker build -t edc-mcp .
# Run the container
docker run --rm -p 8081:8081 \
-e EDC_MANAGEMENT_URL=http://host.docker.internal:5173/api/management \
-e EDC_CATALOG_URL=http://host.docker.internal:5173/api/catalog \
edc-mcpConfiguration
Set the following environment variables before starting the server:
EDC_MANAGEMENT_URL: EDC Management API endpoint (default:http://localhost:5173/api/management)EDC_CATALOG_URL: EDC catalog API endpoint used for federated catalog refreshes (default:http://localhost:5173/api/catalog)CATALOG_REFRESH_INTERVAL: Federated catalog refresh interval in seconds (default:300)CATALOG_BASE_URI: Base URI used when parsing catalog JSON-LD into RDF (default:urn:edc:catalog/)LOG_LEVEL: Python log level for this server (default:INFO)
Example:
export EDC_MANAGEMENT_URL=http://localhost:5173/api/management
export EDC_CATALOG_URL=http://localhost:5173/api/catalogUsage
Starting the Server
# Run directly
python -m edc_mcp.main
# Or using the installed command
edc-mcpThe server will start on http://0.0.0.0:8081 by default.
Using with Claude Desktop
Add to your Claude Desktop configuration (claude_desktop_config.json):
{
"mcpServers": {
"edc": {
"url": "http://localhost:8081/mcp"
}
}
}Available Tools
Asset Management
create_asset- Create a new asset with properties and data addresslist_assets- List all assets with paginationfind_assets- Search assets using filter expressionsget_asset- Retrieve a specific asset by IDupdate_asset_properties- Update asset metadataupdate_asset_private_properties- Update private asset propertiesupdate_asset_data_address- Update asset data address configurationdelete_asset- Remove an asset
Policy Definitions
create_policy_definition- Create a new access policylist_policy_definitions- List all policy definitionsget_policy_definition- Retrieve a specific policy by IDdelete_policy_definition- Remove a policy definition
Contract Definitions
create_contract_definition- Create a contract definitionlist_contract_definitions- List all contract definitionsfind_contract_definitions_by_name- Search contract definitions by nameget_contract_definition- Retrieve a specific contract definitiondelete_contract_definition- Remove a contract definition
Catalog Operations
get_catalog- Retrieve catalog from a provider connectorget_dataset_from_catalog- Get dataset details from catalog
Federated Catalog
query_federated_catalog_sparql- Execute SPARQL queries across federated catalogsget_federated_catalog_stats- Get statistics about cached catalog dataget_federated_catalog_example_queries- Get example SPARQL queries
Dataset Operations
get_policies_for_dataset- Extract policies for a specific datasetget_policy_for_dataset- Get a specific policy from a datasetget_thing_description_for_dataset- Retrieve Thing Description (WoT) for a dataset
Contract Negotiations
create_contract_negotiation- Initiate a contract negotiationlist_contract_negotiations- List all negotiationsget_contract_negotiation- Get negotiation details by IDget_contract_negotiation_by_agreement- Find negotiation by agreement ID
Contract Agreements
list_contract_agreements- List all concluded agreementsget_contract_agreement- Get agreement details by IDget_contract_agreement_by_negotiation- Get agreement by negotiation ID
Transfer Processes
create_transfer_process_http_pull- Start an HTTP pull transfercreate_transfer_process_http_push- Start an HTTP push transferlist_transfer_processes- List all transfer processesget_transfer_process- Get transfer process detailsget_data_address_for_http_pull_transfer_process- Get EDR for pull transfersperform_http_pull_request- Execute HTTP pull data request
Example Use Cases
Browse Available Data: Query catalogs and federated catalogs to discover datasets
Negotiate Contracts: Initiate and track contract negotiations with data providers
Transfer Data: Execute HTTP pull or push transfers after successful negotiations
Manage Assets: Create and configure data assets for sharing
Define Policies: Set up access control policies and contract terms
SPARQL Queries: Perform advanced queries across federated dataspace catalogs
Resources
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/soofi-project/edc-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server