EDC MCP Server

EDC MCP Server

Enables AI assistants to interact with Eclipse Dataspace Components (EDC) connectors for dataspace operations including asset, policy, contract, catalog, negotiation, and data transfer management.

Category
访问服务器

README

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.

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:latest

Replace 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-mcp

Configuration

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/catalog

Usage

Starting the Server

# Run directly
python -m edc_mcp.main

# Or using the installed command
edc-mcp

The 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 address
  • list_assets - List all assets with pagination
  • find_assets - Search assets using filter expressions
  • get_asset - Retrieve a specific asset by ID
  • update_asset_properties - Update asset metadata
  • update_asset_private_properties - Update private asset properties
  • update_asset_data_address - Update asset data address configuration
  • delete_asset - Remove an asset

Policy Definitions

  • create_policy_definition - Create a new access policy
  • list_policy_definitions - List all policy definitions
  • get_policy_definition - Retrieve a specific policy by ID
  • delete_policy_definition - Remove a policy definition

Contract Definitions

  • create_contract_definition - Create a contract definition
  • list_contract_definitions - List all contract definitions
  • find_contract_definitions_by_name - Search contract definitions by name
  • get_contract_definition - Retrieve a specific contract definition
  • delete_contract_definition - Remove a contract definition

Catalog Operations

  • get_catalog - Retrieve catalog from a provider connector
  • get_dataset_from_catalog - Get dataset details from catalog

Federated Catalog

  • query_federated_catalog_sparql - Execute SPARQL queries across federated catalogs
  • get_federated_catalog_stats - Get statistics about cached catalog data
  • get_federated_catalog_example_queries - Get example SPARQL queries

Dataset Operations

  • get_policies_for_dataset - Extract policies for a specific dataset
  • get_policy_for_dataset - Get a specific policy from a dataset
  • get_thing_description_for_dataset - Retrieve Thing Description (WoT) for a dataset

Contract Negotiations

  • create_contract_negotiation - Initiate a contract negotiation
  • list_contract_negotiations - List all negotiations
  • get_contract_negotiation - Get negotiation details by ID
  • get_contract_negotiation_by_agreement - Find negotiation by agreement ID

Contract Agreements

  • list_contract_agreements - List all concluded agreements
  • get_contract_agreement - Get agreement details by ID
  • get_contract_agreement_by_negotiation - Get agreement by negotiation ID

Transfer Processes

  • create_transfer_process_http_pull - Start an HTTP pull transfer
  • create_transfer_process_http_push - Start an HTTP push transfer
  • list_transfer_processes - List all transfer processes
  • get_transfer_process - Get transfer process details
  • get_data_address_for_http_pull_transfer_process - Get EDR for pull transfers
  • perform_http_pull_request - Execute HTTP pull data request

Example Use Cases

  1. Browse Available Data: Query catalogs and federated catalogs to discover datasets
  2. Negotiate Contracts: Initiate and track contract negotiations with data providers
  3. Transfer Data: Execute HTTP pull or push transfers after successful negotiations
  4. Manage Assets: Create and configure data assets for sharing
  5. Define Policies: Set up access control policies and contract terms
  6. SPARQL Queries: Perform advanced queries across federated dataspace catalogs

Resources

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选