StarRocks

公式

StarRocksと連携する

StarRocks MCPで何ができますか?

  • Run SQL queriesread_query を使用して SELECT 文を実行したり、write_query を通じて DDL/DML コマンドを実行したりできます。大規模な結果セットには、ファイル出力のオプションもあります。
  • Explore database structure — データベースとテーブルの一覧表示、または starrocks:// リソース(例: starrocks:///{db}/{table}/schema)を使用したテーブルスキーマの取得が可能です。
  • Get table or database overviewstable_overview または db_overview を使用して、列定義、行数、サンプルデータを取得できます。繰り返しのリクエストにはキャッシュが利用されます。
  • Visualize query resultsquery_and_plotly_chart を使用して、SQL クエリから直接 Plotly チャートを生成し、UI 表示用の PNG 画像を返します。
  • Monitor cluster health — 監査ログのアクセス数に基づくホットテーブル(top_hot_tables)や、ヘルススコアが低いテーブル(top_bad_tables)を特定します。
  • Access internal system infoproc:// リソースパスを介して、FE/BE ノード、トランザクション、ジョブなどの StarRocks 内部情報を照会できます。

ドキュメント

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 への接続が OK であることをテストします(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 モードを使用してください。

環境変数:

接続設定

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

オプション 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 資格情報などのファイルベースのシークレット注入に便利です。末尾の改行は 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_overviewdb_overview などのツールは、引数でデータベース部分が省略されている場合にこれを使用します。デフォルトは空(デフォルトデータベースなし)です。
  • STARROCKS_QUERY_TIMEOUT:(オプション)クエリの結果を待機する秒数(整数)。デフォルトでは未設定で、以前の動作と同様に無期限に待機します。スタックしたクエリや長時間実行されるクエリがツール呼び出しを永久にブロックする代わりに失敗するようにしたい場合は、これを設定します。

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

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

    例:

    • root:mypass@localhost:9030/test_db
    • mysql://admin:secret@db.example.com:9030/production
    • starrocks://user:pass@192.168.1.100:9030/analytics

パスワードの優先順位:

  • STARROCKS_URL に埋め込まれたパスワードが優先されます。user:@host:9030/db のような明示的な空のパスワードも含まれます。
  • STARROCKS_URL がパスワードを省略している場合、設定されていれば 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_overviewdb_overview)によって生成される 合計 テキストの おおよその 文字制限。非常に大きなスキーマや多数のテーブルでの過剰なメモリ使用を防ぐのに役立ちます。デフォルトは 20000 です。

  • STARROCKS_MCP_OUTPUT_DIR:(オプション)read_queryoutput_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:(オプション)plotly.js が HTML チャートにバンドルされる方法を制御します。cdn(デフォルト)はファイルを小さく保ちますが、表示時にネットワークアクセスが必要です。inline/true はオフライン使用のために完全なライブラリを埋め込みます。directoryfalse も受け入れられます(Plotly の write_html に渡されます)。

  • STARROCKS_CHART_DEFAULT_FORMAT:(オプション)format 引数が省略された場合の query_and_plotly_chart のデフォルト出力形式。jsonpngjpeg(デフォルト)、または html のいずれか。毎回 format を渡さずに、常にインタラクティブなチャートファイルを STARROCKS_CHART_OUTPUT_DIR に書き込む(インライン PNG プレビュー付き)には、html に設定します。無効な値は警告とともに 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を返すその他のコマンド(例:SHOWDESCRIBE)を実行します。必要に応じて、完全な結果をインラインで返す代わりにローカルファイルに書き込むこともできます。モデルコンテキストに収まらないほど大きな結果に便利です。
    • 入力:
      {
        "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

    • 説明: DDL(CREATEALTERDROP)、DML(INSERTUPDATEDELETE)、またはResultSetを返さないその他のStarRocksコマンドを実行します。
    • 入力:
      {
        "query": "SQL command string",
        "db": "database name (optional, uses default database if not specified)"
      }
      
    • 出力: 成功を確認するテキストコンテンツ(例:「Query OK, X rows affected」)またはエラーを報告します。変更は成功時に自動的にコミットされます。
  • analyze_query

    • 説明: クエリを分析し、クエリプロファイルまたはexplain analyzeを使用して分析結果を取得します。
    • 入力:
      {
        "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)"
      }
      
    • 出力: クエリ分析結果を含むテキストコンテンツ。uuidが指定されている場合は ANALYZE PROFILE FROM を使用し、sqlが指定されている場合は EXPLAIN ANALYZE を使用します。
  • top_hot_tables

    • 説明: 監査ログのアクセス回数による上位ホットテーブルを取得します。information_schema.tablesstarrocks_audit_db__.starrocks_audit_tbl__ を結合し、rootSHOW ステートメントを除外し、監査SQLテキストをテーブル名と照合し、visit_count の降順で並べ替えます。
    • 入力:
      {
        "db": "optional database/schema filter",
        "table": "optional table name substring filter",
        "min_start_time_ms": 1704067200000,
        "max_start_time_ms": 1704153600000,
        "top_n": 20
      }
      
    • 出力: dbtablevisit_count を含むランク付けされた行を含むテキストサマリーと構造化コンテンツ。
  • top_bad_tables

    • 説明: Star Management Studioの top-bad-tables ロジックに従い、テーブルヘルススコアによる上位の不良テーブルを取得します。information_schema.be_tabletsinformation_schema.partitions_meta に基づくテーブルヘルス計算を再利用し、システムスキーマを除外し、table_health_score の昇順で並べ替え、最もスコアの低いテーブルを返します。
    • 入力:
      {
        "db": "optional database/schema filter",
        "table": "optional table name substring filter",
        "top_n": 20
      }
      
    • 出力: dbtabletablet_numreplica_scoretablet_scoretable_health_score などのテーブルヘルスフィールドを含むランク付けされた行を含むテキストサマリーと構造化コンテンツ。
  • query_and_plotly_chart

    • 説明: SQLクエリを実行し、結果をPandas DataFrameにロードし、提供されたPython式を使用してPlotlyチャートを生成します。サポートするUIでの可視化用に設計されています。
    • 入力:
      {
        "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)"
      }
      
    • 出力: 以下を含むリスト:
      1. TextContent:DataFrameのテキスト表現と、チャートがUI表示用であることを示すメモ。
      2. ImageContent:base64エンコードされたPNG画像(image/png)としてエンコードされた生成されたPlotlyチャート。失敗時またはクエリがデータを返さない場合はテキストエラーメッセージを返します。
  • table_overview

    • 説明: 特定のテーブルの概要を取得します:列(DESCRIBE から)、総行数、サンプル行(LIMIT 3)。refresh がtrueでない限り、インメモリキャッシュを使用します。
    • 入力:
      {
        "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.
      }
      
    • 出力: フォーマットされた概要(列、行数、サンプルデータ)を含むテキストコンテンツ、またはエラーメッセージ。キャッシュされた結果には、該当する場合、以前のエラーも含まれます。
  • db_overview

    • 説明: 指定されたデータベース内の すべての テーブルの概要(列、行数、サンプル行)を取得します。refresh がtrueでない限り、各テーブルのテーブルレベルキャッシュを使用します。
    • 入力:
      {
        "db": "database_name", // Optional if default database is set.
        "refresh": false // Optional, boolean. Set to true to bypass the cache for all tables in the DB. Defaults to 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 と同じキャッシュロジック(最初にキャッシュをチェックし、必要に応じて取得し、refreshfalse の場合またはキャッシュミスの場合)を使用して 各テーブル の概要を取得しようとします。db_overview に対して refreshtrue の場合、そのデータベース内の すべての テーブルの更新を強制します。
  • STARROCKS_OVERVIEW_LIMIT 環境変数は、キャッシュを設定する際に テーブルごとに 生成される概要文字列の最大長の ソフトターゲット を提供し、メモリ使用量の管理に役立ちます。
  • キャッシュされた結果(元の取得中に発生したエラーメッセージを含む)は保存され、後続のキャッシュヒット時に返されます。

デバッグ

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

npx @modelcontextprotocol/inspector

デモ

MCP Demo Image