
Doris MCP Server

2025.05.06
3
Python数据库服务元数据管理数据库
Doris MCP Server 是一个基于 Python 和 FastAPI 构建的后端服务,实现了 MCP(Model Control Panel)协议。它主要用于连接 Apache Doris 数据库,支持通过自然语言查询转换为 SQL(NL2SQL)、执行查询、元数据管理和分析等功能。
View on GitHub
Overview
基本能力
产品定位
Doris MCP Server 是一个后端服务,旨在通过 MCP 协议与客户端交互,提供数据库连接、查询执行和元数据管理等功能。
核心功能
- MCP 协议实现:提供标准的 MCP 接口,支持工具调用、资源管理和提示交互。
- 多种通信模式:
- SSE (Server-Sent Events):通过
/sse
和/mcp/messages
端点提供服务。 - Streamable HTTP:通过统一的
/mcp
端点提供服务,支持请求/响应和流式传输。 - Stdio:通过标准输入/输出交互,需要特定的启动配置。
- 工具接口:核心功能封装为 MCP 工具,客户端可以按需调用。
- 数据库交互:连接 Apache Doris 数据库并执行查询。
- 灵活的配置:通过
.env
文件配置数据库连接、LLM 提供商/模型、API 密钥等。 - 元数据提取:能够提取数据库元数据信息。
适用场景
- 自然语言查询转换为 SQL(NL2SQL)。
- 数据库查询执行和结果分析。
- 数据库元数据管理和分析。
工具列表
工具名称 | 描述 |
---|---|
mcp_doris_get_db_list |
获取服务器上所有数据库名称的列表。 |
mcp_doris_get_db_table_list |
获取指定数据库中所有表名的列表。 |
mcp_doris_get_table_schema |
获取指定表的详细结构。 |
mcp_doris_get_table_comment |
获取指定表的注释。 |
mcp_doris_get_table_column_comments |
获取指定表中所有列的注释。 |
mcp_doris_get_table_indexes |
获取指定表的索引信息。 |
mcp_doris_exec_query |
执行 SQL 查询并返回结果。 |
mcp_doris_get_recent_audit_logs |
获取最近一段时间的审计日志记录。 |
常见问题解答
- 如何配置数据库连接?:通过
.env
文件配置DB_HOST
、DB_PORT
、DB_USER
、DB_PASSWORD
和DB_DATABASE
。 - 如何启动服务?:运行
./start_server.sh
脚本启动服务。 - 如何调试工具调用?:通过日志文件或控制台输出查看工具调用和执行的详细信息。
使用教程
使用依赖
- Python 3.12+
- 数据库连接详细信息(如 Doris 主机、端口、用户、密码、数据库)
安装教程
- 克隆仓库:
bash git clone https://github.com/apache/doris-mcp-server.git cd doris-mcp-server
- 安装依赖:
bash pip install -r requirements.txt
- 配置环境变量:
bash cp env.example .env
修改.env
文件中的数据库连接和其他配置。
调试方式
- 启动服务:
bash ./start_server.sh
- 检查服务端点:
- SSE 初始化:
http://<host>:<port>/sse
- SSE 通信:
http://<host>:<port>/mcp/messages
(POST) - Streamable HTTP:
http://<host>:<port>/mcp
(支持 GET, POST, DELETE, OPTIONS) - 健康检查:
http://<host>:<port>/health
- 使用 MCP 客户端调用工具并检查响应。