Apache Doris
官方Apache Doris 的 MCP 服务器,一个基于 MPP 架构的实时数据仓库。
你可以用 Apache Doris MCP 做什么?
- 查询并诊断 Doris — 通过
doris_query域询问查询执行、计划、profile 分析或慢查询诊断。 - 探索目录和模式 — 通过
doris_catalog子工具发现数据库、表以及包含大小信息的表上下文。 - 监控集群健康 — 使用
doris_cluster域检查节点、任务、指标、内存、缓存和压缩状态。 - 管理数据管道 — 通过
doris_pipeline工具检查摄取状态、物化视图、新鲜度和依赖关系。 - 搜索和分析数据 — 通过
doris_search域运行文本、向量或混合搜索,并检查索引。 - 治理与审计 — 使用
doris_governance功能审查数据质量、存储、血缘、审计日志和 UDF。
文档
Apache Doris MCP Server
Apache Doris MCP Server 通过 MCP 2026-07-28 向 MCP 主机和 AI 代理暴露 Apache Doris 的只读能力。版本 1.0 将庞大的扁平工具面替换为八个稳定域和五十五个渐进式披露的子能力,同时保持运行时可用性、授权、输入模式、输出模式和失败行为的明确性。
发布状态
包版本为 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_catalog | 5 | 目录、数据库、表、表上下文、大小 |
doris_query | 7 | 查询、解释、分析、诊断、慢查询、显式 ADBC |
doris_cluster | 11 | 节点、任务、指标、内存、缓存、压缩、工作负载 |
doris_pipeline | 5 | 数据摄入、物化视图、新鲜度、依赖关系 |
doris_search | 4 | 文本/向量/混合搜索、分析器、索引、诊断 |
doris_governance | 8 | 质量、存储、血缘、审计、UDF、认证映射 |
doris_lakehouse | 3 | 外部目录、湖仓表、Variant |
doris_semantic | 12 | 可选的 Apache Ossie 基础与 MetricFlow 消费 |
使用 {} 调用某个域以发现其授权的子能力和精确模式。再次使用 child_tool、arguments 以及返回的 manifest_version 调用同一域。无法使用渐进式披露的主机可在启动前设置 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 的主机(包括使用 MCP 2025-06-18 的 Dify 1.16.1)必须设置 ENABLE_LEGACY_HTTP_ADAPTER=true 并连接到 /mcp/legacy。该适配器仅改变协议边界;它保留相同的 1.0 工具、授权、能力门控和只读执行。
或者为本地主机运行 stdio:
doris-mcp-server --transport stdio
安全边界
- 内置的 1.0 目录是只读的;
doris_admin被保留且不注册。 - 在相互验证的配置边界下支持静态令牌、JWT、外部 OAuth/OIDC 和 Doris 支持的 OAuth。
- 域发现和子能力执行使用精确的授权标识符。
- Doris RBAC 仍然是可见对象和数据的最终权威。
- SQL 形状、标识符、参数、超时、行数、字节数和结果模式在数据离开服务器之前受到约束。
- 机密和后端错误会从公开结果和日志中脱敏。
- 非回环 HTTP 需要认证,除非启用了明确危险的开发覆盖。
阅读 安全与权限模型 和 Doris 细粒度访问指南。
可靠性边界
服务器使用确定性清单和错误、签名过期游标、路由感知能力快照、有界过期回退、请求特定连接路由、多 FE 故障转移、存活/就绪分离、输出模式验证和清理后的追踪传播。不支持或配置错误的能力仍可通过 callable=false 发现,并在调用时安全失败。
当前限制包括进程本地 Doris 支持的 OAuth、默认禁用且在令牌绑定路由上安全失败的仅显式 ADBC、可选的只读 Ossie 基础、可选的 MetricFlow 编译器侧车(其 SQL 必须通过有界 MCP 查询运行时执行),以及尽力而为的原生血缘交付。参见 可靠性与限制。
文档
根 README 有意作为入口点。双语文档系统索引位于:
主要指南:
- 架构
- 请求与数据流
- 工具域
- 能力可用性
- Doris 版本能力矩阵
- MetricFlow 集成
- MCP 2026-07-28 契约
- 安全模型
- 部署
- 可靠性与限制
- 故障排查
- 配置参考
- 主机集成
- 自定义工具提供者
- 贡献
开发
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。