mcpField
S
StarRocks Official MCP Server

StarRocks Official MCP Server

本地服务
github.com/StarRocks数据库1967 周前更新

关于 StarRocks Official MCP Server

StarRocks 官方 MCP 服务是连接 AI 助手与 StarRocks 数据库的桥梁,支持直接执行 SQL、浏览数据库结构并生成 Plotly 图表。它面向需要通过 AI 助手查询 StarRocks 的用户,无需复杂的客户端配置。

主要功能

  1. 01执行 SELECT 查询与 DDL/DML 命令
  2. 02浏览数据库、表结构与 starrocks:// 资源
  3. 03通过 proc:// 资源查看 StarRocks 内部指标
  4. 04生成表与数据库概览,并缓存结果
  5. 05根据查询结果生成 Plotly 图表

适用场景

  1. 01让 AI 助手直接查询 StarRocks 数据
  2. 02快速了解表结构、字段与样例数据
  3. 03根据查询结果生成可视化图表

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 read_query、write_query、table_overview、db_overview 等工具及 starrocks:// 与 proc:// 资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 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"
      }
    }
  }
}

使用本地目录和 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(服务器发送事件)模式已弃用,不再维护。所有新的集成都请使用 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 凭据。末尾的一个换行符会被忽略。仅当未通过 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。schema 部分可选。设置此变量后,其优先级高于单独的 STARROCKS_HOST、STARROCKS_PORT、STARROCKS_USER、STARROCKS_PASSWORD 和 STARROCKS_DB 变量。

    示例:

密码优先级:

  • 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 端口。设置后,服务器将通过 ADBC 驱动程序使用高性能 Arrow Flight SQL 协议连接,而不是使用标准 MySQL 协议。留空则使用默认的 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:(可选)控制如何将 plotly.js 打包到 HTML 图表中。cdn(默认值)生成的文件较小,但查看时需要网络连接;inline/true 会嵌入完整库,以便离线使用;也接受 directory 和 false(会传递给 Plotly 的 write_html)。

  • STARROCKS_CHART_DEFAULT_FORMAT:(可选)省略 format 参数时,query_and_plotly_chart 使用的默认输出格式。可选值为 json、png、jpeg(默认值)或 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 服务公开其服务的通信模式。可选项:
    • stdio(默认):通过标准输入/输出进行通信,适用于由 MCP Host 托管。
    • streamable-http(Streamable HTTP):以 Streamable HTTP Server 模式启动,支持 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

    • 描述: 执行不返回 ResultSet 的 DDL(CREATE、ALTER、DROP)、DML(INSERT、UPDATE、DELETE)或其他 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.tables 与 starrocks_audit_db__.starrocks_audit_tbl__,排除 root 和 SHOW 语句,将审计 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
      }
      
    • 输出: 文本摘要以及包含排名行的结构化内容,字段包括 db、table 和 visit_count。
  • top_bad_tables

    • 描述: 根据表健康评分获取最差的表,遵循 Star Management Studio 的 top-bad-tables 逻辑。此工具会复用基于 information_schema.be_tablets 和 information_schema.partitions_meta 的表健康度计算,过滤掉系统架构,按 table_health_score 升序排列,并返回评分最低的表。
    • 输入:
      {
        "db": "optional database/schema filter",
        "table": "optional table name substring filter",
        "top_n": 20
      }
      
    • 输出: 文本摘要以及包含排名行的结构化内容,其中包含表健康度字段,例如 db、table、tablet_num、replica_score、tablet_score 和 table_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", // 如果已设置默认数据库,则为可选项。
        "refresh": false // 可选,布尔值。设为 true 可绕过数据库中所有表的缓存。默认为 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}

    • 描述: 访问 StarRocks 内部系统信息,类似于 Linux /proc。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 - Agent 任务的信息。
      • /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 server 后,你可以使用 inspector 进行调试:

npx @modelcontextprotocol/inspector

演示

MCP 演示图片

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。