RDF Explorer v1.0.0 について
RDF Explorer は、RDF(Turtle)ベースのナレッジグラフを対話形式で探索・分析する MCP サーバーです。ローカルファイルと SPARQL エンドポイントの両方に対応し、ナレッジグラフ研究や AI 向けデータ準備を想定しています。
主な機能
- 01ローカル Turtle ファイルと SPARQL エンドポイントの両モード
- 02SPARQL クエリの実行と結果の取得
- 03グラフデータの全文検索
- 04グラフ統計と トリプル数のカウント
- 05Schema リソースと探索用クエリテンプレート
- 06トリプルストアの接続ヘルスチェック
活用シーン
- 01自然言語でローカル RDF データセットを探索する
- 02DBpedia や Wikidata などの公開 SPARQL エンドポイントに問い合わせる
- 03AI アプリケーションからナレッジグラフの構造を分析する
MCP 対応
MCP サーバーとして、SPARQL・検索・統計のツールに加え、スキーマリソース、クエリテンプレート、プロンプトを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
RDF Explorer v1.0.0
概要
ローカルファイルモードまたはSPARQLエンドポイントモードで、RDF(Turtle)ベースのナレッジグラフを探索・分析するための会話型インターフェースを提供するModel Context Protocol(MCP)サーバーです。このサーバーはAIアプリケーション(ホスト/クライアント)とRDFデータ間の通信を可能にし、SPARQLクエリを通じてグラフを探索し、グラフデータを分析します。ナレッジグラフの研究やAIデータの準備に最適なツールです。
コンポーネント
ツール
このサーバーはSPARQLクエリと検索機能を実装しています。
-
execute_on_endpoint- 外部エンドポイントでSPARQLクエリを直接実行します
- 入力:
endpoint(str):クエリ対象のSPARQLエンドポイントURL。query(str):実行するSPARQLクエリ。ctx(Context):FastMCPのコンテキストオブジェクト。
- 戻り値:改行区切りのクエリ結果、またはエラーメッセージ。
-
sparql_query- 現在のグラフまたはアクティブな外部エンドポイントでSPARQLクエリを実行します
- 入力:
query(str):実行するSPARQLクエリ。ctx(Context):FastMCPのコンテキストオブジェクト。use_service(bool):ローカルモードでのフェデレーションクエリにSERVICE句を使用するかどうか(デフォルト:True)。
- 戻り値:改行区切りのクエリ結果、またはエラーメッセージ。
-
graph_stats- グラフに関する統計情報を計算し、JSON形式で返します
- 入力:
ctx(Context):FastMCPのコンテキストオブジェクト。
- 戻り値:グラフ統計情報(トリプル数、一意な主語数など)を含むJSON文字列。
-
count_triples- グラフ内のトリプルを数えます。SPARQLエンドポイントモードでは無効です。代わりにカスタムプロンプトを使用してください。
- 入力:
ctx(Context):FastMCPのコンテキストオブジェクト。
- 戻り値:トリプル数を表す文字列、またはエラーメッセージ。
-
full_text_search- 独自構文を使用せずに、グラフまたはエンドポイントで全文検索を実行します。
- 入力:
search_term(str):検索する語句。ctx(Context):FastMCPのコンテキストオブジェクト。
- 戻り値:改行区切りの検索結果、またはエラーメッセージ。
-
health_check- トリプルストア接続の状態を確認します。
- 入力:
ctx(Context):FastMCPのコンテキストオブジェクト。
- 戻り値:接続が正常な場合は「Healthy」、それ以外の場合は「Unhealthy: 」。
-
get_mode- RDF Explorerの現在のモードを取得します。ナレッジグラフやセマンティック技術のユーザーがデータソースを確認する際に便利です。
- 入力:
ctx(Context):FastMCPのコンテキストオブジェクト。
- 戻り値:モードとデータセットまたはエンドポイントを示すメッセージ。
リソース
サーバーは次のリソースを公開します。
-
schema://all:グラフからスキーマ情報(クラスとプロパティ)を取得します。- 戻り値:スキーマ要素(クラスとプロパティ)を改行区切りで示した文字列。
-
queries://{template_name}:名前を指定して、事前定義されたSPARQLクエリテンプレートを取得します。- 戻り値:SPARQLクエリ文字列、または「Template not found」。
-
explore://{query_name}:名前を指定して探索用SPARQLクエリを実行し、結果をJSONで返します。query_name(str):探索用クエリの名前(例:「classes」、「relationships/URI」)。- 戻り値:クエリ結果のJSON文字列。
-
explore://report:探索用クエリのMarkdownレポートを生成します。- 戻り値:Markdown形式のレポート文字列。
プロンプト
サーバーは次のプロンプトを公開します。
-
analyze_graph_structure:スキーマデータを使用して、グラフ構造の分析を開始します。- 戻り値:グラフ構造の分析をガイドするメッセージのリスト。
-
find_relationships:指定された主語の関係を見つけるSPARQLクエリを生成します。- 戻り値:関係を見つけるSPARQLクエリ文字列。
-
text_to_sparql:トークン制限を確認しながら、テキストプロンプトをSPARQLクエリに変換して実行します。prompt(str):SPARQLに変換するテキストプロンプト。- 戻り値:使用状況の統計情報を含むクエリ結果、またはエラーメッセージ。
セットアップ
設定
Claude Desktop へのインストール
開始する前に、Claude Desktop がインストールされていることを確認してください。
-
次の場所に移動します:Settings > Developer > Edit Config
-
次の内容を
claude_desktop_config.jsonに追加します: MacOS の場合:~/Library/Application Support/Claude/claude_desktop_config.jsonWindows の場合:%APPDATA%/Claude/claude_desktop_config.json
ローカルの RDF Turtle ファイルを使用するには、--triple-file 引数を指定した次のバージョンを使用します
{
"mcpServers": {
"rdf_explorer": {
"command": "C:\\path\\to\\venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\server.py", "--triple-file", "your_file.ttl"]
}
}
}
SPARQL エンドポイントを使用するには、--sparql-endpoint 引数を指定した次のバージョンを使用します
{
"mcpServers": {
"rdf_explorer": {
"command": "C:\\path\\to\\venv\\Scripts\\python.exe",
"args": ["C:\\path\\to\\server.py", "--sparql-endpoint", "https://example.com/sparql"]
}
}
}
-
Claude Desktop を再起動し、グラフデータのクエリと探索を始めます。
-
プロンプト:「RDF Explorer はどのモードで動作していますか?」
使用例
自然言語を使って RDF データを探索する例を紹介します。
ローカルファイルモードでのデータのクエリ
次のような質問をできます:
- 「Sales 部門の従業員をすべて表示して」
- 「最も年齢の高い顧客を上位 5 人見つけて」
- 「先月、3 つを超える商品を購入したのは誰ですか?」
- 「すべてのエンティティを一覧表示して」
- 「DBpedia エンドポイントを使って、Michael Jackson の曲を 10 曲一覧表示して」
- 「Wikidata エンドポイントを使って、都市を 5 つ一覧表示して」
- 「トリプルを数えて」
- 「グラフ構造を分析して」
- 「Select ...」
- 「'{text}' を検索して」
- 「'{URI}' の関係を見つけて」
- 「RDF Explorer はどのモードで動作していますか?」
SPARQL エンドポイントモードでのデータのクエリ
次のような質問をできます:
- 「DBpedia エンドポイントを使って、Michael Jackson の曲を 10 曲一覧表示して」
- 「Wikidata エンドポイントを使って、都市を 5 つ一覧表示して」
- 「Select ...」
- 「'{text}' を検索して」
- 「'{URI}' の関係を見つけて」
- 「RDF Explorer はどのモードで動作していますか?」
開発
# clone the repository
git clone https://github.com/emekaokoye/mcp-rdf-explorer.git
cd mcp-rdf-explorer
# setup a virtual environment
python -m venv venv
source venv/bin/activate
# windows: venv\Scripts\activate
# install development dependencies
pip install -r requirements.txt
# run tests
pytest test_rdf_explorer.py -v
ライセンス
この MCP サーバーは MIT License の下でライセンスされています。つまり、MIT License の利用規約に従うことを条件として、このソフトウェアを自由に使用、変更、配布できます。詳しくは、プロジェクトリポジトリの ライセンス ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。