mcpField
S
StarRocks Official MCP Server

StarRocks Official MCP Server

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

StarRocks Official MCP Server について

StarRocks 公式 MCP サーバーは、AI アシスタントと StarRocks データベースを橋渡しする MCP サーバーです。SQL の実行、データベース構造の参照、グラフ生成に対応しています。複雑なクライアント側の設定なしで、アシスタントから StarRocks を操作したい利用者を対象としています。

主な機能

  1. 01SELECT クエリと DDL/DML コマンドの実行
  2. 02データベース、テーブル、starrocks:// リソースの参照
  3. 03proc:// リソースによる内部メトリクスの取得
  4. 04テーブルとデータベースの概要生成とキャッシュ
  5. 05クエリ結果からの Plotly グラフ作成

活用シーン

  1. 01AI アシスタントによる StarRocks データへの直接クエリ
  2. 02テーブル定義、カラム、サンプルデータの確認
  3. 03分析用にクエリ結果からグラフを作成

MCP 対応

MCP サーバーとして、read_query、write_query、table_overview、db_overview などのツールと、starrocks:// および proc:// のリソースを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MseeP.ai Security Assessment Badge

StarRocks 公式 MCP サーバー

StarRocks MCP サーバーは、AI アシスタントと StarRocks データベースをつなぐブリッジとして機能します。複雑なクライアント側のセットアップを必要とせず、SQL の直接実行、データベースの探索、チャートによるデータの可視化、詳細なスキーマ/データの概要の取得ができます。

StarRocks Server MCP server

機能

  • SQL の直接実行: SELECT クエリ(read_query)と DDL/DML コマンド(write_query)を実行します。
  • データベースの探索: データベースとテーブルの一覧表示、テーブルスキーマの取得(starrocks:// リソース)ができます。
  • システム情報: proc:// リソースパスを通じて、StarRocks の内部メトリクスと状態にアクセスできます。
  • 詳細な概要: テーブル(table_overview)またはデータベース全体(db_overview)の包括的な概要を取得できます。列定義、行数、サンプルデータが含まれます。
  • データの可視化: クエリを実行し、その結果から直接 Plotly チャートを生成します(query_and_plotly_chart)。
  • インテリジェントなキャッシュ: テーブルとデータベースの概要をメモリにキャッシュし、繰り返しのリクエストを高速化します。必要に応じてキャッシュをバイパスできます。
  • 柔軟な設定: 環境変数を使って接続の詳細と動作を設定できます。

前提条件

  • Python 3.11 以降。
  • 接続可能な StarRocks クラスター(FE サービス)。デフォルトでは、サーバーは MySQL プロトコルで localhost:9030 に接続します。
  • uv — Astral が提供する、高速な Python パッケージ/プロジェクトマネージャー(pip と virtualenv を現代的に置き換えるもの)です。このプロジェクトでは、依存関係の解決、仮想環境の作成、サーバーの起動に uv を使用します。この README に記載されている uv run コマンドは、初回実行時に分離された環境を自動で作成し、必要な依存関係をインストールするため、手動で pip install を実行する必要はありません。
uv のインストール
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# Or via Homebrew / pipx / pip
brew install uv
# pipx install uv
# pip install uv

その他の方法については、公式の uv インストールガイドを参照してください。インストール後、PATH に設定されていることを確認します。

uv --version

インストール

通常、パッケージを手動でインストールする必要はありません。MCP ホストが uv を通じて起動します(以下の設定を参照)。uv は必要に応じて、パッケージとその依存関係を取得します。

テストまたは開発のために直接実行する場合:

# Run the published package in a throwaway environment
uv run --with mcp-server-starrocks mcp-server-starrocks --help

# Or, from a local checkout of this repository
git clone https://github.com/starrocks/mcp-server-starrocks.git
cd mcp-server-starrocks
uv sync                      # create the virtual environment and install dependencies
uv run mcp-server-starrocks --help

設定

MCP サーバーは通常、MCP ホスト経由で実行されます。StarRocks MCP サーバープロセスの起動方法を指定して、設定をホストに渡します。

Streamable HTTP を使用する場合(推奨):

Streamable HTTP モードでサーバーを起動するには:

まず、StarRocks への接続が正常であることを確認します(9030 は StarRocks の MySQL プロトコルポートであり、HTTP サーバーのポートではありません):

$ STARROCKS_URL=root:@localhost:9030 uv run mcp-server-starrocks --test

サーバーを起動します:

uv run mcp-server-starrocks --mode streamable-http --port 8000

次に、MCP を次のように設定します:

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

Docker を使用する場合:

イメージをビルドします:

docker build -t mcp-server-starrocks:local .

バージョン付きイメージをビルドしてプッシュします:

docker build -t <registry>/<namespace>/mcp-starrocks:0.4.0 .
docker push <registry>/<namespace>/mcp-starrocks:0.4.0

Streamable HTTP モードでサーバーを起動します:

docker run --rm -p 8000:8000 \
  -e STARROCKS_HOST=host.docker.internal \
  -e STARROCKS_PORT=9030 \
  -e STARROCKS_USER=root \
  -e STARROCKS_PASSWORD='' \
  mcp-server-starrocks:local

次に、MCP クライアントを次のように設定します:

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "url": "http://localhost:8000/mcp"
    }
  }
}

インストール済みパッケージで uv を使用する場合(個別の環境変数):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": ["run", "--with", "mcp-server-starrocks", "mcp-server-starrocks"],
      "env": {
        "STARROCKS_HOST": "default localhost",
        "STARROCKS_PORT": "default 9030",
        "STARROCKS_USER": "default root",
        "STARROCKS_PASSWORD": "default empty",
        "STARROCKS_DB": "default empty"
      }
    }
  }
}

インストール済みパッケージで uv を使用する場合(接続 URL):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": ["run", "--with", "mcp-server-starrocks", "mcp-server-starrocks"],
      "env": {
        "STARROCKS_URL": "root:password@localhost:9030/my_database"
      }
    }
  }
}

ローカルディレクトリで uv を使用する場合(開発用):

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/mcp-server-starrocks", // <-- Update this path
        "run",
        "mcp-server-starrocks"
      ],
      "env": {
        "STARROCKS_HOST": "default localhost",
        "STARROCKS_PORT": "default 9030",
        "STARROCKS_USER": "default root",
        "STARROCKS_PASSWORD": "default empty",
        "STARROCKS_DB": "default empty"
      }
    }
  }
}

ローカルディレクトリと接続 URL で uv を使用する場合:

{
  "mcpServers": {
    "mcp-server-starrocks": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/mcp-server-starrocks", // <-- Update this path
        "run",
        "mcp-server-starrocks"
      ],
      "env": {
        "STARROCKS_URL": "root:password@localhost:9030/my_database"
      }
    }
  }
}

コマンドライン引数:

サーバーは次のコマンドライン引数をサポートしています:

uv run mcp-server-starrocks --help
  • --mode {stdio,sse,http,streamable-http}:トランスポートモード(デフォルト:stdio、または MCP_TRANSPORT_MODE 環境変数)
  • --host HOST:HTTP モードでのサーバーホスト(デフォルト:localhost)
  • --port PORT:HTTP モードでのサーバーポート
  • --test:機能を検証するためテストモードで実行します

例:

# Start in streamable HTTP mode on custom host/port
uv run mcp-server-starrocks --mode streamable-http --host 0.0.0.0 --port 8080

# Start in stdio mode (default)
uv run mcp-server-starrocks --mode stdio

# Run test mode
uv run mcp-server-starrocks --test
  • url フィールドには、MCP サーバーの Streamable HTTP エンドポイントを指定してください(必要に応じてホスト/ポートを調整してください)。
  • この設定により、クライアントは標準的な JSON を使用して HTTP POST リクエストでサーバーとやり取りできます。特別な SDK は不要です。
  • すべてのツール API は、前述のとおり標準的な JSON を受け入れ、返します。

注: sse(Server-Sent Events)モードは非推奨であり、現在は保守されていません。新しい統合ではすべて Streamable HTTP モードを使用してください。

環境変数:

接続設定

StarRocks 接続は、個別の環境変数または単一の接続 URL を使用して設定できます:

オプション 1:個別の環境変数

  • STARROCKS_HOST:(任意)StarRocks FE サービスのホスト名または IP アドレス。デフォルトは localhost です。
  • STARROCKS_PORT:(任意)StarRocks FE サービスの MySQL プロトコルポート。デフォルトは 9030 です。
  • STARROCKS_USER:(任意)StarRocks のユーザー名。デフォルトは root です。
  • STARROCKS_PASSWORD:(任意)StarRocks のパスワード。デフォルトは空文字列です。
  • STARROCKS_PASSWORD_FILE:(任意)パスワードを含む UTF-8 テキストファイルへのパス。systemd credentials など、ファイルベースのシークレット注入で便利です。末尾の改行は 1 つ無視されます。これは、STARROCKS_PASSWORD または STARROCKS_URL で明示的なパスワードが指定されていない場合にのみ使用されます。
  • STARROCKS_PASSWORD_KEYCHAIN_SERVICE:(任意、macOS のみ)Keychain からパスワードを読み取る際に使用する汎用パスワードサービス名。明示的なパスワードも STARROCKS_PASSWORD_FILE も設定されていない場合にのみ使用されます。
  • STARROCKS_PASSWORD_KEYCHAIN_ACCOUNT:(任意、macOS のみ)Keychain からパスワードを読み取る際に使用する汎用パスワードアカウント名。デフォルトは解決された StarRocks ユーザーです。
  • STARROCKS_DB:(任意)ツールの引数またはリソース URI で指定されていない場合に使用するデフォルトのデータベース。設定すると、接続時にこのデータベースに対して USE を実行します。table_overview や db_overview などのツールでは、引数からデータベース部分が省略された場合にこの値が使用されます。デフォルトは空(デフォルトのデータベースなし)です。
  • STARROCKS_QUERY_TIMEOUT:(任意)クエリ結果を待機してから処理を中断するまでの秒数を整数で指定します。デフォルトでは未設定で、従来の動作と同様に無期限で待機します。長時間実行されるクエリや停止したクエリによってツール呼び出しが永遠にブロックされるのを防ぐには、この値を設定してください。

オプション 2:接続 URL(個別の変数より優先)

  • STARROCKS_URL:(任意)すべての接続パラメーターを単一の変数に含める接続 URL 文字列です。形式:[<schema>://]user:password@host:port/database。スキーマ部分は任意です。この変数が設定されている場合、個別の STARROCKS_HOST、STARROCKS_PORT、STARROCKS_USER、STARROCKS_PASSWORD、STARROCKS_DB 変数より優先されます。

    例:

パスワードの優先順位:

  • STARROCKS_URL に埋め込まれたパスワードが優先されます。user:@host:9030/db のように明示的に空のパスワードを指定した場合も同様です。
  • STARROCKS_URL でパスワードが省略されていて、STARROCKS_PASSWORD が設定されている場合は、STARROCKS_PASSWORD が使用されます。
  • 明示的なパスワードソースが設定されておらず、STARROCKS_PASSWORD_FILE が設定されている場合は、そのファイルからパスワードが読み込まれます。
  • 明示的なパスワードもパスワードファイルも設定されておらず、STARROCKS_PASSWORD_KEYCHAIN_SERVICE が設定されている場合は、macOS Keychain からパスワードが読み込まれます。

macOS Keychain の例

パスワードを保存します:

security add-generic-password -U -a root -s mcp-server-starrocks -w 'secret'

保存したパスワードを確認します:

security find-generic-password -a root -s mcp-server-starrocks -w

このサーバーで使用します:

export STARROCKS_URL=root@localhost:9030/test_db
export STARROCKS_PASSWORD_KEYCHAIN_SERVICE=mcp-server-starrocks
export STARROCKS_PASSWORD_KEYCHAIN_ACCOUNT=root

systemd 暗号化認証情報 の例(systemd 250 以降)

サーバーは systemd-creds を自身で呼び出しません。デプロイ時に管理者がパスワードを暗号化し、サービスの起動時に systemd がサービスの認証情報ディレクトリに復号して、このサーバーにはファイルパスだけを公開します。

シェルの履歴にパスワードを残さず、ホストにバインドされた暗号化認証情報を作成します:

sudo -v
sudo install -d -m 0700 /etc/credstore.encrypted
sudo systemd-ask-password -n "StarRocks password:" \
  | sudo systemd-creds encrypt \
      --name=starrocks-password \
      - /etc/credstore.encrypted/starrocks-password.cred

認証情報をサービスユニットに追加します。%d 指定子は、サービス固有の認証情報ディレクトリに展開されます:

[Service]
LoadCredentialEncrypted=starrocks-password:/etc/credstore.encrypted/starrocks-password.cred
Environment=STARROCKS_PASSWORD_FILE=%d/starrocks-password
PrivateMounts=yes

STARROCKS_PASSWORD は設定せず、STARROCKS_URL からパスワードを省略してから、ユニットを再読み込みし、サービスを再起動します。暗号化された認証情報は通常、ローカルホスト(および利用可能な場合はその TPM2 デバイス)にバインドされており、サービスの起動中にのみ復号されます。サービスプロセスと root 権限を持つ管理者は、実行時に平文のパスワードにアクセスできます。機密性が確保されないため、systemd-creds encrypt --with-key=null は使用しないでください。

追加設定
  • STARROCKS_FE_ARROW_FLIGHT_SQL_PORT:(任意)StarRocks FE サービスの Arrow Flight SQL ポートです。設定すると、標準の MySQL プロトコルの代わりに、高性能な Arrow Flight SQL プロトコル(ADBC ドライバー経由)を使用してサーバーが接続します。デフォルトの MySQL 接続を使用する場合は、設定しないでください。ホスト、ユーザー、パスワードには、上記と同じ接続設定が使用されます。

  • STARROCKS_OVERVIEW_LIMIT:(任意)キャッシュにデータを読み込む際、概要ツール(table_overview、db_overview)が生成するテキストの合計文字数の_概算_上限です。非常に大きなスキーマや多数のテーブルによる過剰なメモリ使用を防ぐのに役立ちます。デフォルトは 20000 です。

  • STARROCKS_MCP_OUTPUT_DIR:(任意)read_query の output_file 引数に相対パスを指定した場合に使用されるディレクトリです。デフォルトは ~/.mcp-server-starrocks/output/ です。ディレクトリは必要に応じて作成されます。output_file に指定した絶対パス(~ で始まるパスを含む)には、この設定は適用されません。**注:**ファイルは MCP サーバーが実行されているマシンに書き込まれます。Claude Code/Claude Desktop ではサーバーがローカルで実行されるため、ファイルはお使いのノートパソコンに保存されます。リモート/http 環境では、ファイルはクライアントではなくサーバーに保存されます。

  • STARROCKS_CHART_OUTPUT_DIR:(任意)query_and_plotly_chart がインタラクティブな HTML チャート(format="html" の場合)を書き込むディレクトリです。デフォルトはシステムの一時ディレクトリです。ディレクトリは必要に応じて作成されます。**注:**ほかの出力ファイルと同様に、チャートは MCP サーバーが実行されているマシンに書き込まれます。

  • STARROCKS_CHART_INCLUDE_PLOTLYJS:(任意)HTML チャートへの plotly.js の同梱方法を指定します。cdn(デフォルト)はファイルサイズを小さくできますが、表示時にネットワークアクセスが必要です。inline/true はオフラインで使用できるようにライブラリ全体を埋め込みます。directory と false も使用できます(Plotly の write_html に渡されます)。

  • STARROCKS_CHART_DEFAULT_FORMAT:(任意)format 引数を省略した場合の query_and_plotly_chart のデフォルト出力形式です。json、png、jpeg(デフォルト)、html のいずれかを指定します。html を設定すると、呼び出しのたびに format を渡さなくても、インライン PNG プレビュー付きのインタラクティブなチャートファイルが STARROCKS_CHART_OUTPUT_DIR に常に書き込まれます。無効な値を指定した場合は、警告を出して jpeg にフォールバックします。

  • STARROCKS_MYSQL_AUTH_PLUGIN:(任意)StarRocks FE サービスへの接続に使用する認証プラグインを指定します。たとえば、StarRocks のデプロイ環境で平文パスワード認証(特定の LDAP や外部認証の設定など)が必要な場合は、mysql_clear_password を設定します。環境で特に必要な場合にのみ設定してください。それ以外の場合は、デフォルトの auth_plugin が使用されます。

TLS / SSL の設定

これらの変数は接続の TLS を制御します。いずれも設定されていない場合、基盤となる mysql.connector はデフォルトの動作(ssl-mode=PREFERRED)を維持します。サーバーが TLS に対応していれば接続は暗号化されますが、サーバー証明書は検証されません。実際のセキュリティを確保するには、CA 証明書を指定して検証を有効にしてください。

  • STARROCKS_SSL_DISABLED:(任意)true に設定すると、TLS を強制的に無効にします。他のすべての SSL 設定より優先されます。デフォルトは false です。
  • STARROCKS_SSL_CA:(任意)StarRocks サーバー証明書の検証に使用する CA 証明書(PEM)へのパスです。
  • STARROCKS_SSL_CERT:(任意)相互 TLS(mTLS)用のクライアント証明書(PEM)へのパスです。
  • STARROCKS_SSL_KEY:(任意)相互 TLS(mTLS)用のクライアント秘密鍵(PEM)へのパスです。
  • STARROCKS_SSL_VERIFY_CERT:(任意)true に設定すると、CA に照らしてサーバー証明書を検証します。デフォルトは false です。
  • STARROCKS_SSL_VERIFY_IDENTITY:(任意)true に設定すると、サーバーのホスト名が証明書と一致することも検証します。デフォルトは false です。
  • STARROCKS_TLS_VERSIONS:(任意)許可する TLS バージョンをカンマ区切りで指定します。例:TLSv1.2,TLSv1.3。

例(CA 証明書を使用してサーバーを検証する場合):

"env": {
  "STARROCKS_HOST": "your-fe-host",
  "STARROCKS_PORT": "9030",
  "STARROCKS_USER": "root",
  "STARROCKS_PASSWORD": "your-password",
  "STARROCKS_SSL_CA": "/path/to/ca.pem",
  "STARROCKS_SSL_VERIFY_CERT": "true",
  "STARROCKS_SSL_VERIFY_IDENTITY": "true"
}

高パフォーマンスの Arrow Flight SQL 接続(STARROCKS_FE_ARROW_FLIGHT_SQL_PORT で有効化)の場合、TLS は個別に制御します。

  • STARROCKS_FE_ARROW_FLIGHT_SQL_USE_TLS:(任意)true に設定すると、平文の grpc:// の代わりに grpc+tls:// を使用します。有効にすると、STARROCKS_SSL_CA が TLS ルート証明書として使用され、STARROCKS_SSL_VERIFY_CERT=false(デフォルト)の場合はサーバー証明書の検証がスキップされます。

セキュリティに関する注意:平文のパスワードを mcp.json に直接保存しないでください。シークレットマネージャーまたは環境から STARROCKS_PASSWORD(および証明書のパス)を注入することを推奨します。また、認証情報をバージョン管理にコミットしないでください。

  • MCP_TRANSPORT_MODE:(任意)MCP サーバーがサービスを公開する方法を指定する通信モードです。利用可能なオプション:
    • stdio(デフォルト):標準入出力を介して通信します。MCP ホストでのホスティングに適しています。
    • streamable-http(Streamable HTTP):Streamable HTTP サーバーとして起動し、RESTful API 呼び出しに対応します。
    • sse:(非推奨、推奨されません) Server-Sent Events(SSE)ストリーミングモードで起動します。ストリーミング応答が必要なシナリオに適しています。注:SSE モードは保守されていません。Streamable HTTP モードを一律に使用することを推奨します。

コンポーネント

ツール
  • read_query

    • 説明: SELECT クエリ、または ResultSet を返すその他のコマンド(例:SHOW、DESCRIBE)を実行します。必要に応じて、インラインで返す代わりに結果全体をローカルファイルに書き出せます。モデルのコンテキストに収まらない大きさの結果に便利です。
    • 入力:
      {
        "query": "SQL query string",
        "db": "database name (optional, uses default database if not specified)",
        "output_file": "optional path; if set, writes the full result to disk and returns only a summary + small preview. Relative paths resolve against STARROCKS_MCP_OUTPUT_DIR (default: ~/.mcp-server-starrocks/output/); absolute paths and ~ are used as-is",
        "output_format": "optional: csv | tsv | json | jsonl. If omitted, inferred from output_file extension (.csv/.tsv/.json/.jsonl/.ndjson); defaults to csv"
      }
      
    • 出力: output_file を指定しない場合、ヘッダー行と行数の概要を含む、CSV 形式に似たクエリ結果のテキストコンテンツを返します。output_file を指定した場合、解決後の絶対パス、バイト数、行数を含む簡潔な概要と、小さなプレビューを返します。失敗時にはエラーメッセージを返します。
  • write_query

    • Description: ResultSet を返さない DDL(CREATE、ALTER、DROP)、DML(INSERT、UPDATE、DELETE)、またはその他の StarRocks コマンドを実行します。
    • Input:
      {
        "query": "SQL command string",
        "db": "database name (optional, uses default database if not specified)"
      }
      
    • Output: 成功を確認するテキスト(例:「Query OK, X rows affected」)またはエラーを報告するテキストです。成功すると、変更は自動的にコミットされます。
  • analyze_query

    • Description: クエリを分析し、クエリプロファイルまたは explain analyze を使用して分析結果を取得します。
    • Input:
      {
        "uuid": "Query ID, a string composed of 32 hexadecimal digits formatted as 8-4-4-4-12",
        "sql": "Query SQL to analyze",
        "db": "database name (optional, uses default database if not specified)"
      }
      
    • Output: クエリ分析結果を含むテキストです。uuid が指定されている場合は ANALYZE PROFILE FROM を使用し、指定されていない場合は sql が指定されていれば EXPLAIN ANALYZE を使用します。
  • top_hot_tables

    • Description: 監査ログの訪問回数に基づいて、最も利用頻度の高いテーブルを取得します。information_schema.tables と starrocks_audit_db__.starrocks_audit_tbl__ を結合し、root と SHOW 文を除外して、監査 SQL テキストとテーブル名を照合し、visit_count の降順で並べ替えます。
    • Input:
      {
        "db": "optional database/schema filter",
        "table": "optional table name substring filter",
        "min_start_time_ms": 1704067200000,
        "max_start_time_ms": 1704153600000,
        "top_n": 20
      }
      
    • Output: テキストの概要と、db、table、visit_count を含む順位付き行の構造化コンテンツです。
  • top_bad_tables

    • Description: Star Management Studio の top-bad-tables ロジックに従い、テーブルの健全性スコアに基づいて状態の悪いテーブルを取得します。information_schema.be_tablets と information_schema.partitions_meta に基づくテーブル健全性の計算を再利用し、システムスキーマを除外して、table_health_score の昇順で並べ替え、スコアが最も低いテーブルを返します。
    • Input:
      {
        "db": "optional database/schema filter",
        "table": "optional table name substring filter",
        "top_n": 20
      }
      
    • Output: テキストの概要と、db、table、tablet_num、replica_score、tablet_score、table_health_score などのテーブル健全性フィールドを含む順位付き行の構造化コンテンツです。
  • query_and_plotly_chart

    • Description: SQL クエリを実行し、結果を Pandas DataFrame に読み込んで、指定された Python 式を使用して Plotly チャートを生成します。対応する UI での可視化を目的としています。
    • Input:
      {
        "query": "SQL query to fetch data",
        "plotly_expr": "Python expression string using 'px' (Plotly Express) and 'df' (DataFrame). Example: 'px.scatter(df, x=\"col1\", y=\"col2\")'",
        "db": "database name (optional, uses default database if not specified)"
      }
      
    • Output: 次の要素を含むリストです。
      1. TextContent:DataFrame のテキスト表現と、チャートが UI 表示用であることを示す注記です。
      2. ImageContent:生成された Plotly チャートを base64 PNG 画像(image/png)としてエンコードしたものです。失敗した場合、またはクエリの結果が空の場合は、テキストのエラーメッセージを返します。
  • table_overview

    • Description: 特定のテーブルの概要を取得します。内容は、列(DESCRIBE の結果)、総行数、サンプル行(LIMIT 3)です。refresh が true でない限り、メモリ内キャッシュを使用します。
    • Input:
      {
        "table": "Table name, optionally prefixed with database name (e.g., 'db_name.table_name' or 'table_name'). If database is omitted, uses STARROCKS_DB environment variable if set.",
        "refresh": false // Optional, boolean. Set to true to bypass the cache. Defaults to false.
      }
      
    • Output: 書式設定された概要(列、行数、サンプルデータ)またはエラーメッセージを含むテキストです。キャッシュされた結果には、該当する場合、以前のエラーも含まれます。
  • db_overview

    • 説明: 指定したデータベース内の_すべて_のテーブルについて、概要(列、行数、サンプル行)を取得します。refresh が true の場合を除き、各テーブルのテーブルレベルのキャッシュを使用します。
    • 入力:
      {
        "db": "database_name", // デフォルトデータベースが設定されている場合は省略可能です。
        "refresh": false // 省略可能なブール値です。true に設定すると、DB 内のすべてのテーブルでキャッシュを使用しません。デフォルトは false です。
      }
      
    • 出力: データベース内で見つかったすべてのテーブルの概要を、見出しで区切って連結したテキストコンテンツです。データベースにアクセスできない場合、またはテーブルが含まれていない場合は、エラーメッセージを返します。
リソース
直接リソース
  • starrocks:///databases
    • 説明: 設定されたユーザーがアクセスできるすべてのデータベースを一覧表示します。
    • 同等のクエリ: SHOW DATABASES
    • MIME タイプ: text/plain
リソーステンプレート
  • starrocks:///{db}/{table}/schema

    • 説明: 特定のテーブルのスキーマ定義を取得します。
    • 同等のクエリ: SHOW CREATE TABLE {db}.{table}
    • MIME タイプ: text/plain
  • starrocks:///{db}/tables

    • 説明: 特定のデータベース内のすべてのテーブルを一覧表示します。
    • 同等のクエリ: SHOW TABLES FROM {db}
    • MIME タイプ: text/plain
  • proc:///{+path}

    • 説明: Linux の /proc に似た、StarRocks 内部のシステム情報にアクセスします。path パラメーターで、取得する情報ノードを指定します。
    • 同等のクエリ: SHOW PROC '/{path}'
    • MIME タイプ: text/plain
    • 一般的なパス:
      • /frontends - FE ノードに関する情報です。
      • /backends - BE ノードに関する情報です(クラウドネイティブ以外のデプロイメントの場合)。
      • /compute_nodes - CN ノードに関する情報です(クラウドネイティブデプロイメントの場合)。
      • /dbs - データベースに関する情報です。
      • /dbs/<DB_ID> - ID で指定した特定のデータベースに関する情報です。
      • /dbs/<DB_ID>/<TABLE_ID> - ID で指定した特定のテーブルに関する情報です。
      • /dbs/<DB_ID>/<TABLE_ID>/partitions - テーブルのパーティション情報です。
      • /transactions - データベースごとにグループ化されたトランザクション情報です。
      • /transactions/<DB_ID> - 特定のデータベース ID のトランザクション情報です。
      • /transactions/<DB_ID>/running - データベース ID の実行中のトランザクションです。
      • /transactions/<DB_ID>/finished - データベース ID の完了したトランザクションです。
      • /jobs - 非同期ジョブ(Schema Change、Rollup など)に関する情報です。
      • /statistic - 各データベースの統計情報です。
      • /tasks - エージェントタスクに関する情報です。
      • /cluster_balance - 負荷分散の状態に関する情報です。
      • /routine_loads - Routine Load ジョブに関する情報です。
      • /colocation_group - Colocation Join グループに関する情報です。
      • /catalog - 設定されたカタログ(Hive、Iceberg など)に関する情報です。
プロンプト

このサーバーでは定義されていません。

キャッシュの動作

  • table_overview と db_overview ツールは、生成された概要テキストを保存するためにインメモリキャッシュを使用します。
  • キャッシュキーは (database_name, table_name) のタプルです。
  • table_overview が呼び出されると、最初にキャッシュを確認します。結果が存在し、refresh パラメーターが false(デフォルト)の場合、キャッシュされた結果をすぐに返します。それ以外の場合は、StarRocks からデータを取得してキャッシュに保存し、その後返します。
  • db_overview が呼び出されると、データベース内のすべてのテーブルを一覧表示し、table_overview と同じキャッシュロジックを使用して 各テーブル の概要を取得しようとします(最初にキャッシュを確認し、必要に応じて取得します。refresh が false の場合、またはキャッシュにない場合)。db_overview の refresh が true の場合、そのデータベース内の すべての テーブルを強制的に更新します。
  • STARROCKS_OVERVIEW_LIMIT 環境変数は、キャッシュへの格納時に テーブルごと に生成される概要文字列の最大長の 目安 を指定し、メモリ使用量の管理に役立ちます。
  • 元の取得時に発生したエラーメッセージを含め、キャッシュされた結果は保存され、以降のキャッシュヒット時に返されます。

デバッグ

MCP サーバーを起動した後、インスペクターを使用してデバッグできます:

npx @modelcontextprotocol/inspector

デモ

MCP デモ画像

コメント

MCP は初めてですか?

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

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