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 サーバー

SPARQL クエリ機能のために AI エージェントを Apache Jena に接続するモデル コンテキスト プロトコル (MCP) サーバー。

概要

このプロジェクトは、AIエージェント(Cursor、Claude for Cline、Claude Desktopなど)がApache Jenaに保存されているRDFデータにアクセスし、クエリを実行できるようにするMCPサーバーを実装します。このサーバーは、Jena Fusekiサーバーに対してSPARQLクエリと更新を実行するためのツールを提供します。

特徴

  • Jena Fuseki サーバーに対して SPARQL クエリを実行する
  • SPARQL更新を実行してRDFデータを変更する
  • データセット内の利用可能な名前付きグラフを一覧表示する
  • Jena Fuseki の HTTP 基本認証サポート
  • モデルコンテキストプロトコルと互換性がある

前提条件

  • Node.js (v16以降)
  • RDFデータがロードされたApache Jena Fusekiサーバーが稼働中
  • モデルコンテキストプロトコルをサポートする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基本認証のユーザー名
  • 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

リソース

-
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