mcpField
D
Doris MCP Server

Doris MCP Server

远程服务
doris.apache.org数据库35411 周前更新

关于 Doris MCP Server

Apache Doris MCP Server 是面向 Apache Doris 的只读 MCP 服务,向 MCP Host 和 AI Agent 暴露查询、集群、治理等能力。它采用 8 个域与 55 个子能力的分层发现机制,并对权限、输出结构和失败行为进行明确约束。

主要功能

  1. 018 个域与 55 个子能力的分层发现
  2. 02只读运行时与 Doris RBAC 最终鉴权
  3. 03支持 stdio 与 Streamable HTTP 传输
  4. 04SQL 形态、行数与字节数受限
  5. 05输出 Schema 校验与敏感信息脱敏
  6. 06可选的 ADBC 与 MetricFlow 集成

适用场景

  1. 01让 AI Agent 查询 Doris 数据并查看执行计划
  2. 02在 MCP Host 中诊断慢查询与集群状态
  3. 03为 Doris 数据提供只读的元数据与血缘查看

MCP 相关

该项目是 MCP 服务端,通过 stdio 或 Streamable HTTP 向 MCP 客户端暴露 Doris 的工具与子能力。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址http://127.0.0.1:3000/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Apache Doris MCP 服务

English | 简体中文

Apache Doris MCP 服务通过 MCP 2026-07-28,向 MCP Host 和 AI Agent 提供 Apache Doris 的只读能力。1.0 版以 8 个稳定领域和 55 项逐步披露的子能力,取代了庞大扁平的工具集,同时明确说明运行时可用性、授权、输入架构、输出架构和故障行为。

发布状态

软件包版本为 1.0.0。master 分支上的 MCP 2026-07-28 协议兼容性,在 Streamable HTTP 和 stdio 上均为 正式发布(GA)。 此 GA 声明仅针对协议兼容性;Python 软件包的分类仍为 Beta,且仍适用文档中说明的部署限制。

升级前,请阅读 1.0 发布说明、1.0 迁移指南以及生成的 8 个领域/55 项子能力注册表。详细发布记录见 Issue #189。

架构概览

MCP Host
  -> stdio or Streamable HTTP
  -> transport security and authentication
  -> MCP protocol validation and authorization
  -> stable domain discovery
  -> route-aware Doris capability detection
  -> exact child dispatch and read-only runtime
  -> request-specific Doris route and RBAC
  -> bounded, schema-validated result

默认的 hierarchical 模式会公开以下领域:

领域子项职责
doris_catalog5目录、数据库、表、表上下文、大小
doris_query7查询、解释、分析配置、诊断、慢查询、显式 ADBC
doris_cluster11节点、任务、指标、内存、缓存、压实、工作负载
doris_pipeline5数据摄取、物化视图、新鲜度、依赖项
doris_search4文本/向量/混合搜索、分析器、索引、诊断
doris_governance8质量、存储、血缘、审计、UDF、授权映射
doris_lakehouse3外部目录、Lakehouse 表、Variant
doris_semantic12可选的 Apache Ossie grounding 和 MetricFlow 消费

使用 {} 调用某个领域,以发现已授权的子项和精确架构。 再次调用同一领域时,需传入 child_tool、arguments 和返回的 manifest_version。 无法使用渐进式披露的 Host 可在启动前设置 MCP_TOOL_EXPOSURE_MODE=flat;此设置会以无名称冲突的正式名称公开相同的 55 项子能力,不会恢复 1.0 之前的别名。

请参阅架构、请求生命周期和工具领域。

快速开始

要求:

  • Python 3.12 或更高版本;
  • Apache Doris 2.0.0 或更高版本;
  • 可访问 Doris FE MySQL 端点的网络,通常使用端口 9030。

安装固定版本:

pip install doris-mcp-server==1.0.0

doris-mcp-server 用于启动服务。doris-mcp-client 是独立的客户端;这两个命令不能互换使用。

配置 Doris 路由:

export DORIS_HOST=127.0.0.1
export DORIS_PORT=9030
export DORIS_USER=mcp_reader
export DORIS_PASSWORD='replace-me'
export DORIS_DATABASE=information_schema

在环回地址上启动 Streamable HTTP:

doris-mcp-server \
  --transport http \
  --host 127.0.0.1 \
  --port 3000

端点:

  • MCP:POST http://127.0.0.1:3000/mcp
  • 旧版 MCP(选择启用):POST http://127.0.0.1:3000/mcp/legacy
  • 存活状态:GET http://127.0.0.1:3000/live
  • Doris 就绪状态:GET http://127.0.0.1:3000/ready

仅支持握手阶段 Streamable HTTP 的 Host(包括使用 MCP 2025-06-18 的 Dify 1.16.1)必须设置 ENABLE_LEGACY_HTTP_ADAPTER=true 并连接到 /mcp/legacy。该适配器仅更改协议边界;它保留相同的 1.0 工具、授权、能力门控和只读执行模式。

或者,为本地 Host 运行 stdio:

doris-mcp-server --transport stdio

请参阅完整的快速开始和 Host 集成指南。

安全边界

  • 内置的 1.0 目录为只读;doris_admin 已预留且未注册。
  • 支持静态令牌、JWT、外部 OAuth/OIDC 和由 Doris 支持的 OAuth,并采用相互验证的配置边界。
  • 域发现和子级执行使用精确的授权标识符。
  • Doris RBAC 仍是可见对象和数据的最终权威。
  • SQL 结构、标识符、参数、超时、行数、字节数和结果架构均会在数据离开 Server 前受到限制。
  • 公共结果和日志中的机密信息及后端错误均会被隐藏。
  • 非环回 HTTP 需要身份验证,除非启用了明确的危险开发覆盖选项。

请阅读安全与权限模型和Doris 精细化访问指南。

可靠性边界

Server 使用确定性清单和错误、带签名且会过期的游标、感知路由的功能快照、有界的过期回退、特定于请求的连接路由、多 FE 故障转移、存活性与就绪状态分离、输出架构验证,以及经过净化的跟踪信息传播。不受支持或配置错误的功能仍可被发现,其 callable=false,调用时则会默认拒绝。

当前限制包括:由 Doris 支持的 OAuth 仅限进程内;ADBC 仅在显式启用时使用,默认禁用,并且在基于令牌的路由上会默认拒绝;可选的只读 Ossie grounding;可选的 MetricFlow 编译器 sidecar,其 SQL 必须通过有界的 MCP 查询运行时执行;以及尽力而为的原生血缘信息传递。请参阅可靠性与限制。

文档

根目录中的 README 刻意仅作为入口。双语文档系统的索引位于:

主要指南:

开发

git clone https://github.com/apache/doris-mcp-server.git
cd doris-mcp-server
uv sync --group dev
uv run pytest

生成的制品必须保持同步:

uv run python generate_tool_catalog.py --check
uv lock --check

请参阅贡献与验证。

许可证

Apache License 2.0。请参阅 LICENSE.txt 和 NOTICE。

评论

支持 Markdown

第一次接触 MCP?

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

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