Doris MCP Server

Doris MCP Server

site icon
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_HOSTDB_PORTDB_USERDB_PASSWORDDB_DATABASE
  • 如何启动服务?:运行 ./start_server.sh 脚本启动服务。
  • 如何调试工具调用?:通过日志文件或控制台输出查看工具调用和执行的详细信息。

使用教程

使用依赖

  • Python 3.12+
  • 数据库连接详细信息(如 Doris 主机、端口、用户、密码、数据库)

安装教程

  1. 克隆仓库: bash git clone https://github.com/apache/doris-mcp-server.git cd doris-mcp-server
  2. 安装依赖: bash pip install -r requirements.txt
  3. 配置环境变量: bash cp env.example .env 修改 .env 文件中的数据库连接和其他配置。

调试方式

  1. 启动服务: bash ./start_server.sh
  2. 检查服务端点:
  3. SSE 初始化http://<host>:<port>/sse
  4. SSE 通信http://<host>:<port>/mcp/messages (POST)
  5. Streamable HTTPhttp://<host>:<port>/mcp (支持 GET, POST, DELETE, OPTIONS)
  6. 健康检查http://<host>:<port>/health
  7. 使用 MCP 客户端调用工具并检查响应。

许可证

该项目遵循 Apache-2.0 开源许可条款,请参阅 Apache-2.0 了解完整条款。