StarRocks

官方

與 StarRocks 互動

你可以用 StarRocks MCP 做什麼?

  • 執行 SQL 查詢 — 可要求透過 read_query 執行 SELECT 陳述式,或透過 write_query 執行 DDL/DML 指令,並可選擇將大型結果輸出至檔案。
  • 探索資料庫結構 — 列出資料庫與資料表,或使用 starrocks:// 資源(例如 starrocks:///{db}/{table}/schema)取得資料表結構。
  • 取得資料表或資料庫概覽 — 使用 table_overviewdb_overview 擷取欄位定義、列數與範例資料,並對重複請求提供快取功能。
  • 視覺化查詢結果 — 使用 query_and_plotly_chart 直接從 SQL 查詢產生 Plotly 圖表,並回傳 PNG 影像供 UI 顯示。
  • 監控叢集健康狀態 — 透過稽核日誌存取次數(top_hot_tables)找出熱門資料表,或依健康評分(top_bad_tables)找出效能不佳的資料表。
  • 存取內部系統資訊 — 透過 proc:// 資源路徑查詢 StarRocks 內部資訊,例如 FE/BE 節點、交易或任務。

文件

MseeP.ai Security Assessment Badge

StarRocks 官方 MCP 伺服器

StarRocks MCP 伺服器作為 AI 助理與 StarRocks 資料庫之間的橋樑。它允許直接執行 SQL、探索資料庫、透過圖表進行資料視覺化,以及取得詳細的 schema/資料概覽,無需複雜的用戶端設定。

StarRocks Server MCP server

功能特色

  • 直接執行 SQL: 執行 SELECT 查詢(read_query)和 DDL/DML 指令(write_query)。
  • 資料庫探索: 列出資料庫和資料表、取得資料表 schema(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"
      }
    }
  }
}

使用 uv 搭配本機目錄和連線 URL:

{
  "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 credentials)很有用。結尾的一個換行符會被忽略。僅在未透過 STARROCKS_PASSWORDSTARROCKS_URL 提供明確密碼時使用。
  • STARROCKS_PASSWORD_KEYCHAIN_SERVICE:(選用,僅限 macOS)從鑰匙圈讀取密碼時使用的通用密碼服務名稱。僅在未設定明確密碼或 STARROCKS_PASSWORD_FILE 時使用。
  • STARROCKS_PASSWORD_KEYCHAIN_ACCOUNT:(選用,僅限 macOS)從鑰匙圈讀取密碼時使用的通用密碼帳戶名稱。預設為解析後的 StarRocks 使用者。
  • STARROCKS_DB:(選用)若工具參數或資源 URI 中未指定,則使用的預設資料庫。若設定,連線將嘗試 USE 此資料庫。像 table_overviewdb_overview 這類工具在其參數中省略資料庫部分時將使用此設定。預設為空(無預設資料庫)。
  • STARROCKS_QUERY_TIMEOUT:(選用)等待查詢結果的秒數(整數),超過則放棄。預設未設定,表示無限等待,與先前行為一致。若卡住或長時間執行的查詢應失敗而非永遠阻塞工具呼叫,請設定此值。

選項 2:連線 URL(優先於個別變數)

  • STARROCKS_URL:(選用)包含所有連線參數的單一連線 URL 字串。格式:[<schema>://]user:password@host:port/database。schema 部分為選用。設定此變數時,它優先於個別的 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 鑰匙圈讀取密碼。

macOS 鑰匙圈範例

儲存密碼:

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 將其解密到服務的憑證目錄中,並僅將檔案路徑暴露給此伺服器。

建立主機綁定的加密憑證,而不將密碼放入 shell 歷史記錄中:

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 連接埠。設定後,伺服器將使用高效能的 Arrow Flight SQL 協定(透過 ADBC 驅動程式)而非標準 MySQL 協定進行連線。保持未設定以使用預設的 MySQL 連線。主機、使用者和密碼取自上述相同的連線設定。

  • STARROCKS_OVERVIEW_LIMIT:(選用)概覽工具(table_overviewdb_overview)在取得資料以填入快取時,所產生的_總_文字量的_近似_字元限制。這有助於防止非常大的 schema 或大量資料表造成過度的記憶體使用。預設為 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 之一。設定為 html 以在每次呼叫時不傳遞 format 的情況下,始終將互動式圖表檔案寫入 STARROCKS_CHART_OUTPUT_DIR(包含內嵌 PNG 預覽)。無效值會回退到 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+tls:// 而非明文 grpc://。啟用時,STARROCKS_SSL_CA 會用作 TLS 根憑證,而 STARROCKS_SSL_VERIFY_CERT=false(預設值)會略過伺服器憑證驗證。

安全性注意事項:避免將明文密碼直接儲存在 mcp.json 中。建議從機密管理工具或環境變數注入 STARROCKS_PASSWORD(以及憑證路徑),且切勿將憑證提交到版本控制系統。

  • MCP_TRANSPORT_MODE:(可選)通訊模式,指定 MCP Server 如何公開其服務。可用選項:
    • stdio(預設):透過標準輸入/輸出進行通訊,適用於 MCP Host 託管。
    • streamable-http(Streamable HTTP):以 Streamable HTTP Server 啟動,支援 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 的資料表健康度計算,過濾掉系統 schema,依 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:產生的 Plotly 圖表,編碼為 base64 PNG 影像(image/png)。失敗或查詢無資料時回傳文字錯誤訊息。
  • 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

    • 描述: 取得特定資料表的 schema 定義。
    • 等效查詢: SHOW CREATE TABLE {db}.{table}
    • MIME 類型: text/plain
  • starrocks:///{db}/tables

    • 描述: 列出特定資料庫中的所有資料表。
    • 等效查詢: SHOW TABLES FROM {db}
    • MIME 類型: text/plain
  • proc:///{+path}

    • 描述: 存取 StarRocks 內部系統資訊,類似於 Linux 的 /procpath 參數指定所需的資訊節點。
    • 等效查詢: 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 - 關於已設定 catalog(例如 Hive、Iceberg)的資訊。

提示詞

此伺服器未定義任何提示詞。

快取行為

  • table_overviewdb_overview 工具使用記憶體快取來儲存產生的概覽文字。
  • 快取鍵是 (database_name, table_name) 的元組。
  • 呼叫 table_overview 時,會先檢查快取。若存在結果且 refresh 參數為 false(預設值),則立即回傳快取結果。否則,會從 StarRocks 取得資料、儲存到快取,然後回傳。
  • 呼叫 db_overview 時,會列出資料庫中的所有資料表,然後嘗試使用與 table_overview 相同的快取邏輯(先檢查快取,若需要且 refreshfalse 或快取未命中則取得)來取得_每個資料表_的概覽。若 refreshdb_overview 設定為 true,則會強制重新整理該資料庫中_所有_資料表。
  • STARROCKS_OVERVIEW_LIMIT 環境變數提供了在填入快取時,每個資料表_所產生之概覽字串最大長度的_軟性目標,有助於管理記憶體使用量。
  • 快取結果(包括原始取得期間遇到的任何錯誤訊息)會儲存起來,並在後續快取命中時回傳。

除錯

啟動 mcp server 後,您可以使用 inspector 進行除錯:

npx @modelcontextprotocol/inspector

示範

MCP Demo Image