Skip to main content
Glama
ramuzes

MCP Server for Apache Jena

Apache Jena 的 MCP 服务器

模型上下文协议 (MCP) 服务器将 AI 代理连接到 Apache Jena 以实现 SPARQL 查询功能。

概述

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

Related MCP server: Logseq MCP Tools

特征

  • 针对 Jena Fuseki 服务器执行 SPARQL 查询

  • 执行 SPARQL 更新以修改 RDF 数据

  • 列出数据集中可用的命名图

  • Jena Fuseki 的 HTTP Basic 身份验证支持

  • 与模型上下文协议兼容

先决条件

  • Node.js(v16 或更高版本)

  • Apache Jena Fuseki 服务器正在运行,并加载了您的 RDF 数据

  • 支持模型上下文协议的AI代理(例如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 查询

  2. execute_sparql_update - 执行 SPARQL 更新查询来修改数据集

  3. list_graphs - 列出数据集中所有可用的命名图

环境变量

您还可以使用环境变量配置服务器:

  • 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

资源

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ramuzes/mcp-jena'

If you have feedback or need assistance with the MCP directory API, please join our Discord server