mcpField
S
Stardog MCP Server

Stardog MCP Server

ローカル
github.com/noahgorsteinデータベース279 週間前に更新

Stardog MCP Server について

Stardog MCP Serverは、知識グラフデータベースを管理する開発者向けに、MCPクライアントをStardog APIへ接続します。クエリ、データベースの確認、監視、ユーザーやロールの管理に対応します。

主な機能

  1. 01SPARQL読み取りクエリの実行
  2. 02データベース一覧と設定の確認
  3. 03サーバープロセスとメトリクスの表示
  4. 04ユーザー、ロール、権限の管理
  5. 05保存済みクエリとユーザー情報の取得

活用シーン

  1. 01SPARQLでStardogデータベースを検索
  2. 02データベースのサイズや設定を確認
  3. 03プロセスとサーバーメトリクスを監視
  4. 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 での使用方法
  1. まだインストールしていない場合は、https://claude.ai/download から Claude Desktop をインストールします。
  2. 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_USERNAME
  • SD_PASSWORD
  • SD_AUTH_TOKEN
  • SD_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 サーバーのロールとその権限の概要を生成します。

    • パラメーターは不要です。

コメント

MCP は初めてですか?

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

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