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 エージェントを Apache Jena Fuseki に接続し、RDF データの検索と更新を可能にします。RDF データセットを扱う MCP クライアント向けに、SPARQL ツールや名前付きグラフ一覧、クエリテンプレートを提供します。

主な機能

  1. 01SPARQL クエリの実行
  2. 02SPARQL 更新の実行
  3. 03データセット内の名前付きグラフ一覧
  4. 04HTTP Basic 認証への対応
  5. 05クエリテンプレートと構文ガイド

活用シーン

  1. 01Fuseki の RDF データを取得
  2. 02RDF データの挿入や削除
  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 サーバー

AI エージェントを Apache Jena に接続し、SPARQL クエリ機能を利用できる Model Context Protocol(MCP)サーバーです。

概要

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

機能

  • Jena Fuseki サーバーに対する SPARQL クエリの実行
  • RDF データを変更する SPARQL 更新の実行
  • データセット内で利用可能な名前付きグラフの一覧表示
  • Jena Fuseki の HTTP Basic 認証に対応
  • Model Context Protocol と互換性あり

前提条件

  • Node.js(v16 以降)
  • RDF データを読み込んだ状態で稼働している Apache Jena Fuseki サーバー
  • Model Context Protocol に対応する 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 クエリを実行します

    • 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

リソース

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。