Stardog MCP Server について
Stardog MCP Serverは、知識グラフデータベースを管理する開発者向けに、MCPクライアントをStardog APIへ接続します。クエリ、データベースの確認、監視、ユーザーやロールの管理に対応します。
主な機能
- 01SPARQL読み取りクエリの実行
- 02データベース一覧と設定の確認
- 03サーバープロセスとメトリクスの表示
- 04ユーザー、ロール、権限の管理
- 05保存済みクエリとユーザー情報の取得
活用シーン
- 01SPARQLでStardogデータベースを検索
- 02データベースのサイズや設定を確認
- 03プロセスとサーバーメトリクスを監視
- 04アクセスロールと権限を管理
MCP 対応
MCPクライアントに、Stardogのデータベース、クエリ、監視、ユーザー、ロールの操作をツールとして公開します。設定分析とロール要約のプロンプトも提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Stardog MCP サーバー
Stardog サーバーの API と連携する MCP サーバーの実装です。開発者やツール向けに、自動化と連携の機能を提供します。
https://github.com/user-attachments/assets/4a41d6fb-8b20-4994-b973-81ce1c10c04a
警告
現在開発中のため、大幅に変更される可能性があります。
注意
MCP サーバーを使用する際はご注意ください。この MCP サーバーは Stardog サーバーにリクエストを送信し、データや設定を変更する可能性があります。データの変更を制限したい場合は、読み取り専用ユーザーまたは権限が限定されたユーザーの認証情報を使用できます。
はじめに
リポジトリをローカルマシンにクローンします。後で必要になるため、クローンしたリポジトリのパスを控えておいてください。
$ pwd
/Users/noah/projects/mcp-server-stardog
一般的な前提条件
uvがインストールされていること。
メモ
MCP を Claude Desktop やその他の MCP 対応クライアントで使用する場合は、そのクライアントをインストールする必要があります。
Stardog の前提条件
稼働中の Stardog サーバーにアクセスするための認証情報が必要です。
$ curl -i -u anonymous:anonymous https://express.stardog.cloud:5820/admin/status/whoami
HTTP/2 200
date: Wed, 16 Apr 2025 20:46:50 GMT
content-length: 9
anonymous
VS Code での使用方法
以下の JSON ブロックを VS Code のユーザー設定(JSON)ファイルに追加します。Ctrl + Shift + P を押して Preferences: Open User Settings (JSON) と入力すると開けます。
"mcp": {
"servers": {
"stardog": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"/Users/noah/projects/mcp-server-stardog",
"run",
"mcp-server-stardog"
],
"env": {
"SD_USERNAME": "${env:SD_USERNAME}",
"SD_PASSWORD": "${env:SD_PASSWORD}",
"SD_ENDPOINT": "${env:SD_ENDPOINT}"
},
}
}
}
uv の --directory オプションには、このリポジトリをクローンした場所のパスを指定してください。VS Code は SD_USERNAME、SD_PASSWORD、SD_ENDPOINT の環境変数を代入し、MCP サーバーが使用します。これらの環境変数を設定した後、VS Code で環境変数を認識するために再起動が必要になる場合があります。
メモ
VS Code で MCP サーバーのツールを使用する方法については、エージェントモードのドキュメントをご覧ください。
設定で値を直接指定するには、コマンドラインオプションの --endpoint、--username、--password も使用できます。
"mcp": {
"servers": {
"stardog": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"/Users/noah/projects/mcp-server-stardog",
"run",
"mcp-server-stardog",
"--endpoint",
"https://express.stardog.cloud:5820",
"--username",
"anonymous",
"--password",
"anonymous"
]
}
}
}
メモ
トークンを使用して Stardog サーバーに認証することもできます。トークンは
SD_AUTH_TOKEN環境変数に設定するか、コマンドライン引数の--auth-tokenを使用して指定できます。ユーザー名とパスワードの両方が指定されている場合は、トークンが優先されます。
Claude Desktop での使用方法
- まだインストールしていない場合は、https://claude.ai/download から Claude Desktop をインストールします。
- Claude Desktop の設定ファイルを開きます。
- すばやく開く、または初めて作成するには、Claude Desktop アプリを開き、Settings を選択して Developer タブをクリックします。最後に、Edit Config ボタンをクリックします。
- 以下の設定をファイルに追加し、
username、password、endpointの値を自身の値に置き換えます。
{
"mcpServers": {
"stardog": {
"command": "/Users/noah/.local/bin/uv",
"args": [
"--directory",
"/Users/noah/projects/mcp-server-stardog",
"run",
"mcp-server-stardog"
"--endpoint",
"https://express.stardog.cloud:5820",
"--username",
"anonymous",
"--password",
"anonymous",
"--auth-token",
"your_auth_token"
],
}
}
}
メモ
ユーザー名とパスワード、または認証トークンのいずれかを使用して Stardog に認証できます。両方を指定した場合は、認証トークンが使用されます。
username、password、auth_tokenオプションは相互に排他的です。
ヒント
which uvを実行すると、uvコマンドのパスを確認できます。このパスを設定のcommandフィールドに指定してください。$ which uv /Users/noah/.local/bin/uv
環境変数を使用して、username、password、auth_token、endpoint オプションを設定することもできます。環境変数は次のとおりです。
SD_USERNAMESD_PASSWORDSD_AUTH_TOKENSD_ENDPOINT
Claude Desktop では、設定に env オブジェクトを指定して、これらの環境変数を設定できます。例:
{
"mcpServers": {
"stardog": {
"command": "/Users/noah/.local/bin/uv",
"args": [
"--directory",
"/Users/noah/projects/mcp-server-stardog",
"run",
"mcp-server-stardog"
],
"env": {
"SD_USERNAME": "anonymous",
"SD_PASSWORD": "anonymous",
"SD_ENDPOINT": "https://express.stardog.cloud:5820"
}
}
}
}
ツール
データベース
- list_databases - Stardog サーバー内のすべての Stardog データベースを一覧表示します。
- パラメーターは不要です。
- get_database_size - Stardog データベースの推定サイズをトリプル数で取得します。
database_name(string, required): Stardog データベースの名前です。
- get_database_configuration - Stardog データベースの設定を取得します。特定のキーで絞り込むこともできます。
database_name(string, required): Stardog データベースの名前です。option_keys(string[], optional): 設定を絞り込むための、特定のデータベースオプションキーのリストです。
- get_database_configuration_documentation - Stardog データベースの設定オプションに関するドキュメントを取得します。
- パラメーターは不要です。
クエリ
-
execute_sparql_read - SPARQL 読み取りクエリを実行します。
SELECT、CONSTRUCT、DESCRIBE、ASKクエリに対応しています。query(string, required): 実行する SPARQL クエリです。database(string, required): クエリの実行対象となるデータベースです。query_type(string, optional): クエリの種類です。指定できる値はselect、construct、describe、askです。デフォルトはselectです。reasoning(boolean, optional): クエリの実行時に推論を有効にするかどうかです。デフォルトはfalseです。schema(string, optional): クエリの実行時に使用する推論スキーマです。デフォルトはdefaultです。limit(int, optional): クエリ結果の上限です。デフォルトは1000です。LLM のコンテキストサイズに制限がある場合に役立ちます。timeout_ms(int, optional): クエリのタイムアウト時間(ミリ秒)です。デフォルトは30000(30 秒)です。
-
list_stored_queries - Stardog サーバー内のすべての保存済みクエリを一覧表示します。
- パラメーターは不要です。
モニタリング
- list_processes - Stardog サーバーで実行中のすべてのプロセスを一覧表示します。
- パラメーターは不要です。
- kill_process - Stardog サーバーで実行中の特定のプロセスを終了します。
id(string, required): 終了するプロセスの ID です。
- get_server_metrics - Stardog サーバーのメトリクスを取得します。
- パラメーターは不要です。
ロール
- list_roles - Stardog サーバーのすべてのロールを一覧表示します。権限を含めることもできます。結果を特定のロールのみに絞り込むこともできます。
include_permissions(boolean, optional): ロールに割り当てられた権限を含めるかどうか。roles_filter(string[], optional): 結果を絞り込むロール名の一覧。
- get_users_with_role - ロールが割り当てられているユーザー名を一覧表示します。
role_name: (string, required): ロール名
- create_role - Stardog サーバーに新しいロールを作成します。
role_name(string, required): 作成するロールの名前。
- assign_role_to_user - 特定のユーザーにロールを割り当てます。
role_name(string, required): ロール名。username(string, required): ユーザー名。
- revoke_role_from_user - 特定のユーザーからロールを取り消します。
role_name(string, required): ロール名。username(string, required): ユーザー名。
- assign_permission_to_role - 特定のロールに権限を割り当てます。
role_name(string, required): ロール名。permission(object, required): ロールに割り当てる権限。権限オブジェクトには次のフィールドを含める必要があります。action(string, required): 割り当てるアクション(例:read、writeなど)resource_type(string, required): リソースタイプ(例:db、user、roleなど)resource(array of strings, required): 権限を割り当てるリソース(例:データベース名、ユーザー名、ロール名、* など)
- revoke_permission_from_role - 特定のロールから権限を取り消します。
role_name(string, required): ロール名。permission(object, required): ロールから取り消す権限。権限オブジェクトには次のフィールドを含める必要があります。action(string, required): 割り当てるアクション(例:read、writeなど)resource_type(string, required): リソースタイプ(例:db、user、roleなど)resource(array of strings, required): 権限を割り当てるリソース(例:データベース名、ユーザー名、ロール名、* など)
- delete_role - Stardog サーバーからロールを削除します。
role_name(string, required): 削除するロールの名前。force(boolean, optional): ロールがユーザーに割り当てられたままの場合でも強制的に削除します。デフォルトはfalseです。
ユーザー
- list_users - Stardog サーバーのすべてのユーザーを一覧表示します。権限やスーパーユーザー/アクティブ状態などの詳細を含めることもできます。
include_details(boolean, optional): ユーザーの詳細情報を含めるかどうか。usernames_filter(string[], optional): 結果を絞り込むユーザー名の一覧。
- get_roles_assigned_to_user - 特定のユーザーに割り当てられたロールを取得します。
username(string, required): ユーザー名。
- assign_permission_to_user - 特定のユーザーに権限を割り当てます。
username(string, required): ユーザー名。permission(object, required): ユーザーに割り当てる権限。権限オブジェクトには次のフィールドを含める必要があります。action(string, required): 割り当てるアクション(例:read、writeなど)resource_type(string, required): リソースタイプ(例:db、user、roleなど)resource(array of strings, required): 権限を割り当てるリソース(例:データベース名、ユーザー名、ロール名、* など)
- revoke_permission_from_user - 特定のユーザーから権限を取り消します。
username(string, required): ユーザー名。permission(object, required): ユーザーから取り消す権限。権限オブジェクトには次のフィールドを含める必要があります。action(string, required): 割り当てるアクション(例:read、writeなど)resource_type(string, required): リソースタイプ(例:db、user、roleなど)resource(array of strings, required): 権限を割り当てるリソース(例:データベース名、ユーザー名、ロール名、* など)
認証
- get_whoami - 現在認証されているユーザーの情報を取得します。
- パラメーターは不要です。
プロンプト
メモ
プロンプトは、VS Code を含むすべての MCP クライアントでまだサポートされているわけではありません。Claude Desktop はプロンプトをサポートしています。
-
database_config_helper - Stardog データベースの設定を分析し、詳細なレポートを生成します。
database_name(文字列、必須):Stardog データベースの名前。option_keys(文字列、必須):設定を絞り込むための特定のデータベースオプションキーをカンマ区切りで指定します。
-
roles_summary - Stardog サーバーのロールとその権限の概要を生成します。
- パラメーターは不要です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。