mcpField
M
MCP Server for Apache Jena

MCP Server for Apache Jena

本地服务
github.com/ramuzes数据库873 周前更新

关于 MCP Server for Apache Jena

MCP Server for Apache Jena 将 AI Agent 连接到 Apache Jena Fuseki,用于查询和更新 RDF 数据。它面向使用 RDF 数据集的 MCP 客户端,提供 SPARQL 工具、图列表和查询模板。

主要功能

  1. 01执行 SPARQL 查询
  2. 02执行 SPARQL 更新
  3. 03列出数据集中的命名图
  4. 04支持 HTTP Basic 身份验证
  5. 05提供查询模板与语法指导

适用场景

  1. 01检索 Fuseki 中的 RDF 数据
  2. 02插入或删除 RDF 数据
  3. 03检查命名图及数据集结构
  4. 04使用模板构建图数据查询

MCP 相关

该 MCP 服务向客户端提供 SPARQL 查询、更新、命名图列表和查询模板工具,连接配置的 Jena Fuseki 服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"jena": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Apache Jena MCP 服务

一个 Model Context Protocol(MCP)服务,可将 AI Agent 连接到 Apache Jena,以支持 SPARQL 查询。

概述

本项目实现了一个 MCP 服务,允许 AI Agent(例如 Cursor、Claude for Cline 或 Claude Desktop)访问和查询存储在 Apache Jena 中的 RDF 数据。该服务提供了针对 Jena Fuseki 服务执行 SPARQL 查询和更新的工具。

功能

  • 针对 Jena Fuseki 服务执行 SPARQL 查询
  • 执行 SPARQL 更新以修改 RDF 数据
  • 列出数据集中的可用命名图
  • 支持 Jena Fuseki 的 HTTP Basic 身份验证
  • 兼容 Model Context Protocol

先决条件

  • Node.js(v16 或更高版本)
  • 已运行并加载 RDF 数据的 Apache Jena Fuseki 服务
  • 支持 Model Context Protocol 的 AI Agent(例如 Cursor、Claude for Cline)

安装

  1. 克隆此存储库:

    git clone https://github.com/ramuzes/mcp-jena.git
    cd mcp-jena
    
  2. 安装依赖项:

    npm install
    
  3. 构建 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

Docker

可以使用 Docker 运行 MCP Jena 服务:

构建 Docker 镜像
docker build -t mcp-jena .
使用 Docker 运行
docker run -e JENA_FUSEKI_URL=http://your-jena-server:3030 -e DEFAULT_DATASET=your_dataset mcp-jena

可用工具

此 MCP 服务提供以下工具:

  1. execute_sparql_query - 针对 Jena 数据集执行 SPARQL 查询

    • 包含全面的 SPARQL 语法文档
    • 属性路径运算符(/, *, +, ?, ^, |)及示例
    • 常见查询模式和模板
    • 自动查询验证和建议
  2. execute_sparql_update - 执行 SPARQL 更新查询以修改数据集

    • 插入/删除操作文档
    • 使用 WHERE 子句进行条件更新
    • 图管理操作
  3. list_graphs - 列出数据集中的所有可用命名图

    • 图的使用模式和最佳实践
    • 来源和版本控制示例
  4. sparql_query_templates - 获取预构建的 SPARQL 查询模板

    • exploration:基本数据发现和统计
    • property-paths:复杂的图导航模式
    • statistics:知识图谱指标和分析
    • validation:数据质量和一致性检查
    • schema:结构发现和文档

环境变量

也可以使用环境变量配置服务:

  • JENA_FUSEKI_URL:Jena Fuseki 服务的 URL(默认值:http://localhost:3030)
  • DEFAULT_DATASET:默认数据集名称(默认值:ds)
  • JENA_USERNAME:用于 Jena Fuseki HTTP Basic 身份验证的用户名
  • JENA_PASSWORD:用于 Jena Fuseki HTTP Basic 身份验证的密码
  • 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

资源

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。