RDF4J MCP服务器
与Claude一起探索知识图谱 -一个模型上下文协议(MCP)服务器,支持基于AI的RDF数据探索和SPARQL查询。
快速演示
在2分钟内尝试一下:
# 1. Clone and install
git clone https://github.com/your-org/rdf4j-mcp.git
cd rdf4j-mcp
uv sync # or: pip install -e .
# 2. Start RDF4J + load sample data
./examples/setup-demo.sh
# 3a. Run as local MCP server (stdio)
rdf4j-mcp --server-url http://localhost:8081/rdf4j-server --repository demo
# 3b. Or run as remote HTTP server
rdf4j-mcp-server --port 3000 --server-url http://localhost:8081/rdf4j-server --repository demo然后用Claude尝试这些提示:
“这个知识图中有哪些类和属性?”
“查找所有人员及其参与的项目”
“显示预算最高的项目”
安装
先决条件: Python 3.11+,Docker(适用于RDF4J)
git clone https://github.com/your-org/rdf4j-mcp.git
cd rdf4j-mcp
uv sync # or: pip install -e .两种跑步方式
| 命令 | 传输 | 用例 |
|---|---|---|
rdf4j-mcp | stdio | MCP客户端在本地生成(克劳德桌面,VS代码) |
rdf4j-mcp-server | HTTP/SSE | 独立远程服务器,多个客户端 |
选项1:本地模式(stdio)
MCP客户端将服务器生成为本地进程:
rdf4j-mcp --server-url http://localhost:8080/rdf4j-server --repository my-repo选项2:远程模式(HTTP/SSE)
作为独立的HTTP服务器运行:
# Start the server
rdf4j-mcp-server --port 3000 \
--server-url http://localhost:8080/rdf4j-server \
--repository my-repo
# Or with environment variables
export RDF4J_MCP_RDF4J_SERVER_URL=http://localhost:8080/rdf4j-server
export RDF4J_MCP_DEFAULT_REPOSITORY=my-repo
rdf4j-mcp-server --port 3000
# Or with uvicorn (production)
uvicorn rdf4j_mcp.main:app --host 0.0.0.0 --port 3000 --workers 4终点:
GET /sse-MCP客户端的SSE端点GET /health-健康检查GET /info-服务器配置
客户端配置
克劳德桌面版
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
本地模式(stdio):
{
"mcpServers": {
"rdf4j": {
"command": "rdf4j-mcp",
"args": ["--server-url", "http://localhost:8080/rdf4j-server", "--repository", "my-repo"]
}
}
}远程模式(HTTP):
{
"mcpServers": {
"rdf4j": {
"url": "http://your-server:3000/sse"
}
}
}VS Code
创建 .vscode/mcp.json 在您的工作空间中:
本地模式:
{
"servers": {
"rdf4j": {
"command": "rdf4j-mcp",
"args": ["--server-url", "http://localhost:8080/rdf4j-server", "--repository", "my-repo"]
}
}
}远程模式:
{
"servers": {
"rdf4j": {
"url": "http://your-server:3000/sse"
}
}
}对于GitHub Copilot,请使用 @mcp 在聊天中:
@mcp What classes are in the knowledge graph?特性
MCP工具
| 工具 | 说明 |
|---|---|
sparql_select | 执行SELECT查询,返回JSON |
sparql_construct | 执行CONSTRUCT/DESCRIBE,返回Turtle |
sparql_ask | 执行ASK查询,返回布尔值 |
describe_resource | 获取有关IRI的所有三元组 |
search_classes | 按名称模式查找类 |
search_properties | 按模式/域/范围查找属性 |
find_instances | 查找类的实例 |
get_schema_summary | 本体概述与统计 |
list_repositories | 列出可用存储库 |
get_namespaces | 获取命名空间前缀映射 |
get_statistics | 报表/类别/财产计数 |
select_repository | 切换活动存储库 |
MCP资源
| URI | 描述 |
|---|---|
rdf4j://repositories | 存储库列表 |
rdf4j://repository/{id}/schema | 架构摘要 |
rdf4j://repository/{id}/namespaces | 命名空间前缀 |
rdf4j://repository/{id}/statistics | 存储库统计信息 |
MCP提示
| 提示 | 描述 |
|---|---|
explore_knowledge_graph | 使用模式上下文进行引导式探索 |
write_sparql_query | SPARQL的自然语言 |
explain_ontology | 解释课程和关系 |
配置
CLI选项
rdf4j mcp(stdio模式):
--server-url URL RDF4J server URL (default: http://localhost:8080/rdf4j-server)
--repository ID Default repository ID
--debug Enable debug loggingrdf4j mcp服务器(HTTP模式):
--host HOST Bind address (default: 0.0.0.0)
--port PORT Listen port (default: 3000)
--server-url URL RDF4J server URL
--repository ID Default repository ID
--reload Auto-reload for development
--debug Enable debug logging环境变量
所有使用 RDF4J_MCP_ 前缀:
| 变量 | 默认值 | 描述 |
|---|---|---|
RDF4J_SERVER_URL | http://localhost:8080/rdf4j-server | RDF4J服务器URL |
DEFAULT_REPOSITORY | - | 默认存储库ID |
QUERY_TIMEOUT | 30 | 查询超时(秒) |
DEFAULT_LIMIT | 100 | 默认查询LIMIT |
MAX_LIMIT | 10000 | 最大查询限制 |
正在运行RDF4J服务器
使用Docker:
docker run -d -p 8080:8080 eclipse/rdf4j-workbench然后在以下位置创建一个存储库http://localhost:8080/rdf4j-工作台。
或者使用处理所有内容的演示设置脚本:
./examples/setup-demo.sh发展
uv sync --dev
# Run tests
pytest
# Lint and format
ruff check src tests
ruff format src tests
# Type check
ty check src许可证
麻省理工学院
