MCP Server for Apache Jena

by ramuzes
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Manages environment variables for configuring the MCP server, including API keys, server URLs, and dataset specifications.

  • Connects to Apache Jena Fuseki server to execute SPARQL queries and updates against RDF data, allowing access to and modification of graph databases.

  • Hosts the repository for the MCP server code, allowing for version control and distribution of the server implementation.

Apache Jena 的 MCP 服务器

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

概述

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

特征

  • 针对 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

可用工具

该 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
F
license - not found
-
quality - not tested

模型上下文协议服务器将 AI 代理连接到 Apache Jena,使它们能够对存储在 Jena Fuseki 中的 RDF 数据执行 SPARQL 查询和更新。

  1. Overview
    1. Features
      1. Prerequisites
        1. Installation
          1. Usage
            1. Available Tools
              1. Environment Variables
                1. Example SPARQL Queries
                  1. Basic SELECT query:
                  2. Insert data with UPDATE:
                  3. Query a specific named graph:
                2. Resources
                  ID: xk4oivwafn