模型连接器
一个模型上下文协议服务器,用于将人工智能代理连接到Apache Jena,使它们能够针对存储在Jena Fuseki中的RDF数据执行SPARQL查询和更新操作。
服务介绍
MCP Server for Apache Jena
一个模型上下文协议 (MCP) 服务器,将 AI 代理连接到 Apache Jena 以实现 SPARQL 查询功能。
概述
该项目实现了一个 MCP 服务器,允许 AI 代理(如 Cursor、Claude for Cline 或 Claude Desktop)访问和查询存储在 Apache Jena 中的 RDF 数据。该服务器提供了执行 SPARQL 查询和更新针对 Jena Fuseki 服务器的工具。
特性
- 对 Jena Fuseki 服务器执行 SPARQL 查询
- 执行 SPARQL 更新以修改 RDF 数据
- 列出数据集中可用的命名图
- 支持 Jena Fuseki 的 HTTP 基本认证
- 与 Model Context Protocol 兼容
先决条件
- Node.js (v16 或更高版本)
- 运行中的 Apache Jena Fuseki 服务器,并已加载你的 RDF 数据
- 支持 Model Context Protocol 的 AI 代理(例如,Cursor、Claude for Cline)
安装
-
克隆此仓库:
git clone https://github.com/ramuzes/mcp-jena.git cd mcp-jena -
安装依赖项:
npm install -
构建 TypeScript 代码:
npm run build
使用方法
使用默认设置运行服务器(Jena 为 localhost:3030,数据集为 'ds'):
npm start
或者指定自定义的 Jena 端点、数据集和认证凭据:
npm start -- --endpoint http://your-jena-server:3030 --dataset your_dataset --username your_username --password your_password
你也可以使用简短标志:
npm start -- -e http://your-jena-server:3030 -d your_dataset -u your_username -p your_password
对于带有自动转译的开发模式:
npm run dev:transpile -- -e http://your-jena-server:3030 -d your_dataset -u your_username -p your_password
可用工具
此 MCP 服务器提供以下工具:
execute_sparql_query- 对 Jena 数据集执行 SPARQL 查询execute_sparql_update- 执行 SPARQL 更新查询以修改数据集list_graphs- 列出数据集中所有可用的命名图
环境变量
你还可以使用环境变量配置服务器:
JENA_FUSEKI_URL: 你的 Jena Fuseki 服务器的 URL(默认:http://localhost:3030)DEFAULT_DATASET: 默认数据集名称(默认:ds)JENA_USERNAME: 用于 Jena Fuseki 的 HTTP 基本认证的用户名JENA_PASSWORD: 用于 Jena Fuseki 的 HTTP 基本认证的密码PORT: MCP 服务器的端口(用于 HTTP 传输,默认:8080)API_KEY: 用于 MCP 服务器认证的 API 密钥
示例 SPARQL 查询
基本 SELECT 查询:
SELECT ?subject ?predicate ?object
WHERE {
?subject ?predicate ?object
}
LIMIT 10
使用 UPDATE 插入数据:
PREFIX ex: <http://example.org/>
INSERT DATA {
ex:subject1 ex:predicate1 "object1" .
ex:subject2 ex:predicate2 42 .
}
查询特定命名图:
SELECT ?subject ?predicate ?object
FROM NAMED <http://example.org/graph1>
WHERE {
GRAPH <http://example.org/graph1> {
?subject ?predicate ?object
}
}
LIMIT 10