项目简介
该项目实现了一个 Model Context Protocol (MCP) 服务器,旨在连接 AI Agent(如 Cursor, Cline)与 Apache Jena Fuseki 服务器。通过此服务器,AI Agent 可以访问并查询存储在 Jena 中的 RDF 数据,执行 SPARQL 查询和更新操作。
主要功能点
- SPARQL 查询执行: 允许 AI Agent 向 Jena Fuseki 服务器发送 SPARQL 查询,并获取查询结果。
- SPARQL 更新执行: 支持 AI Agent 执行 SPARQL 更新操作,以修改 Jena Fuseki 服务器中的 RDF 数据。
- 数据集管理: 可以指定操作的数据集,默认为配置的默认数据集。
- 命名图列表: 提供列出 Jena Fuseki 服务器中可用命名图的功能。
- API 密钥认证: 通过 API 密钥提供简单的安全认证机制。
- 兼容 MCP 协议: 遵循 Model Context Protocol 协议,可以与任何兼容 MCP 协议的客户端(如 Cursor, Cline)配合使用。
安装步骤
-
克隆仓库:
git clone https://github.com/ramuzes/mcp-jena.git cd mcp-jena -
安装依赖:
npm install -
配置环境变量: 创建 '.env' 文件,并根据你的 Jena Fuseki 服务器配置进行设置。
# Apache Jena Fuseki 服务器 URL JENA_FUSEKI_URL=http://localhost:3030 # 默认数据集 DEFAULT_DATASET=ds # MCP 服务器端口 PORT=8080 # API 密钥 (请务必修改为你自己的密钥) API_KEY=your-api-key-here -
构建项目:
npm run build
服务器配置
MCP客户端需要配置连接到此MCP服务器,以下是配置信息示例 (JSON 格式):
{ "servers": [ { "name": "Jena SPARQL Server", "type": "sse", // 或者 "stdio" 如果客户端支持 Stdio 传输 "url": "http://localhost:8080/api", // MCP 服务器 URL,如果使用 Stdio 传输,此项可以为空或忽略 "api_key": "your-api-key-here" // 在 .env 文件中配置的 API 密钥 } ] }
配置参数说明:
- 'name': 服务器名称,自定义,用于在客户端中标识。
- 'type': 传输协议类型,根据客户端和服务器支持选择,示例配置为 'sse' (Server-Sent Events),根据 'index.ts' 代码,服务器也支持 'stdio'。如果客户端和服务器在同一机器上,且客户端支持 'stdio',可以考虑使用 'stdio'。
- 'url': MCP 服务器的 API URL。如果 'type' 为 'sse' 或 'websocket',则需要配置此项。如果使用 'stdio',则不需要 URL。
- 'api_key': 用于 API 密钥认证,与 '.env' 文件中 'API_KEY' 保持一致。
MCP 服务器启动命令 (command) 及参数 (args):
由于此 MCP 服务器是 Node.js 应用,启动命令为 'node',参数为构建后的 'index.js' 文件路径。
{ "servers": [ { "name": "Jena SPARQL Server", "command": "node", "args": ["dist/index.js"], // 假设构建后的 index.js 文件在 dist 目录下 "api_key": "your-api-key-here" } ] }
参数说明:
- 'command': 启动服务器的命令,这里是 'node'。
- 'args': 传递给命令的参数,这里指向编译后的 'index.js' 文件路径。 请根据实际构建输出路径调整。
基本使用方法
-
启动 Jena Fuseki 服务器: 确保你的 Apache Jena Fuseki 服务器已经启动并加载了 RDF 数据。
-
启动 MCP 服务器: 在项目根目录下运行命令启动 MCP 服务器:
npm start或者在开发模式下使用自动重载:
npm run dev -
配置 MCP 客户端: 在你的 MCP 客户端(如 Cursor 或 Cline)中,按照上述“服务器配置”部分提供的 JSON 示例进行配置,连接到 Jena MCP 服务器。
-
在 AI Agent 中使用工具: 配置完成后,AI Agent 应该能够检测到并调用以下工具:
- 'execute_sparql_query': 执行 SPARQL 查询
- 'execute_sparql_update': 执行 SPARQL 更新
- 'list_graphs': 列出命名图
在 AI Agent 的交互界面中,你可以指示它使用这些工具来查询或操作 Jena 中的 RDF 数据。例如,你可以指示 AI Agent "使用 'execute_sparql_query' 工具查询..."。
信息
分类
数据库与文件