StarRocks Official MCP Server について
StarRocks 公式 MCP サーバーは、AI アシスタントと StarRocks データベースを橋渡しする MCP サーバーです。SQL の実行、データベース構造の参照、グラフ生成に対応しています。複雑なクライアント側の設定なしで、アシスタントから StarRocks を操作したい利用者を対象としています。
主な機能
- 01SELECT クエリと DDL/DML コマンドの実行
- 02データベース、テーブル、starrocks:// リソースの参照
- 03proc:// リソースによる内部メトリクスの取得
- 04テーブルとデータベースの概要生成とキャッシュ
- 05クエリ結果からの Plotly グラフ作成
活用シーン
- 01AI アシスタントによる StarRocks データへの直接クエリ
- 02テーブル定義、カラム、サンプルデータの確認
- 03分析用にクエリ結果からグラフを作成
MCP 対応
MCP サーバーとして、read_query、write_query、table_overview、db_overview などのツールと、starrocks:// および proc:// のリソースを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
StarRocks 公式 MCP サーバー
StarRocks MCP サーバーは、AI アシスタントと StarRocks データベースをつなぐブリッジとして機能します。複雑なクライアント側のセットアップを必要とせず、SQL の直接実行、データベースの探索、チャートによるデータの可視化、詳細なスキーマ/データの概要の取得ができます。
機能
- 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変数より優先されます。例:
root:mypass@localhost:9030/test_dbmysql://admin:[email protected]:9030/productionstarrocks://user:[email protected]:9030/analytics
パスワードの優先順位:
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を指定した場合、解決後の絶対パス、バイト数、行数を含む簡潔な概要と、小さなプレビューを返します。失敗時にはエラーメッセージを返します。
- 説明: SELECT クエリ、または ResultSet を返すその他のコマンド(例:
-
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」)またはエラーを報告するテキストです。成功すると、変更は自動的にコミットされます。
- Description: ResultSet を返さない DDL(
-
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を含む順位付き行の構造化コンテンツです。
- Description: 監査ログの訪問回数に基づいて、最も利用頻度の高いテーブルを取得します。
-
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などのテーブル健全性フィールドを含む順位付き行の構造化コンテンツです。
- Description: Star Management Studio の
-
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: 次の要素を含むリストです。
TextContent:DataFrame のテキスト表現と、チャートが UI 表示用であることを示す注記です。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: 書式設定された概要(列、行数、サンプルデータ)またはエラーメッセージを含むテキストです。キャッシュされた結果には、該当する場合、以前のエラーも含まれます。
- Description: 特定のテーブルの概要を取得します。内容は、列(
-
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 など)に関する情報です。
- 説明: Linux の
プロンプト
このサーバーでは定義されていません。
キャッシュの動作
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
デモ

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