关于 Doris Mcp Server
Doris-MCP-Lite 将 LLM 应用连接到 Apache Doris 及其他兼容 MySQL 的数据库,提供只读查询、结构资源和内置分析提示词。
主要功能
- 01执行只读 SQL 查询
- 02查看数据库架构和表结构
- 03获取使用与资源数据
- 04使用内置分析提示词
- 05以结构化资源提供数据库架构
- 06通过连接池管理数据库连接
适用场景
- 01探索 Doris 数据库架构
- 02执行只读分析查询
- 03为 LLM 查询提供表结构上下文
MCP 相关
该 MCP 服务向 MCP 客户端提供数据库查询工具、分析提示词和架构资源,支持 Apache Doris 及其他兼容 MySQL 的数据库。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
📖 Doris-MCP-Lite
一个轻量级 MCP 服务,旨在连接 Apache Doris 或其他 兼容 MySQL 的数据库架构,为大模型应用提供工具和提示词。
此服务可让大模型和 MCP 客户端探索数据库架构、运行只读 SQL 查询,并利用预先构建的分析提示词,所有操作均通过标准化、安全的 MCP 接口完成。
警告
这是 doris-mcp-lite 的早期开发版本。部分功能可能无法正常运行,也可能存在一些小问题。如有任何疑问,请提交 issue。 Apache Doris 官方 MCP 服务可在 apache/doris-mcp-server 获取。
🚀 功能
🛠️ 工具
- 对 Doris 数据库执行只读 SQL 查询。
- 执行数据分析操作,例如获取年度、月度和每日使用数据。
- 查询数据库架构、表结构和资源使用情况等元数据。
- 连接池:通过连接池实现高效的连接管理,优化性能。
- 异步执行:支持异步查询执行,提升响应速度。
🧠 提示词
- 内置提示词模板,帮助大模型提出分析问题。
- 支持多角色提示,增强大模型与 Doris 数据库之间的交互。
- 支持用户自定义和通用的 SQL 分析提示词。
🗂️ 资源
- 将 Doris 数据库架构作为结构化资源公开。
- 允许大模型结合上下文访问表和字段定义,从而更好地理解查询。
📦 安装选项
我们建议使用 uv 管理 Python 环境。
选项 1:通过 shell 脚本安装
推荐用于个人部署和服务端部署
这是最简单的安装方式。请复制项目中的 setup.sh 文件,并在本地运行。更多信息请参阅:Doris MCP 安装指南
- 将
setup.sh复制到本地。 - 将脚本设为可执行:
chmod +x setup.sh
- 运行脚本:
./setup.sh
脚本会自动安装服务,并引导你完成数据库配置。
选项 2:通过 pip 安装
推荐用于生产环境
pip install doris-mcp-lite
✅ 安装完成后,即可使用命令行工具启动 MCP 服务。
选项 3:克隆源代码并手动安装
推荐用于需要修改服务的情况
- Fork 并克隆仓库:
git clone https://github.com/YOUR_USERNAME/doris-mcp-lite.git
cd doris-mcp-lite
- 使用 uv 设置本地 Python 环境:
uv venv # Create a virtual environment
uv sync # Install dependencies
# Activate the virtual environment
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install
- 将此服务添加到你的大模型客户端,或运行此服务:
uv run server doris://user:pass@localhost:9030/mydb
选项 4:直接使用 uv 安装
适用于本地可编辑安装
uv pip install 'git+https://github.com/NomotoK/doris-mcp-lite.git'
uv sync
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .
uv run server doris://user:pass@localhost:9030/mydb
⚙️ 安装后设置
步骤 1:配置 .env 文件(可选)
使用 .env 文件可在 MCP 服务中永久保存数据库连接信息,这样每次通过 CLI 运行 MCP 服务时就无需重新输入数据库连接信息。当然,此步骤并非必需;如果你使用兼容 MCP 的大模型客户端,也可以稍后在 MCP 客户端的配置文件中设置数据库连接(参见步骤 2)。请按照以下步骤完成配置:
通过 shell 脚本配置
这是最推荐、最简单的设置方式。请参阅 Doris MCP 安装指南。
在 .env 中手动配置
安装后,进入项目目录中的 doris_mcp_lite/config/ 目录。如果使用 pip,软件包将安装在 Python site-packages 中:
-
Mac/Linux:
/Users/YOUR_USERNAME/.local/lib/python3.x/site-packages/doris_mcp_lite/config/ -
Windows:
C:\Users\YOUR_USERNAME\AppData\Local\Programs\Python\Python3x\Lib\site-packages\doris_mcp_lite\config\
你可以运行以下命令查找 pip 的安装位置:
pip show doris-mcp-lite
你会找到一个 .env.example 文件:
- 将
.env.example复制为.env:
cp .env.example .env
- 编辑 .env,设置你的 Doris 数据库连接信息:
DB_HOST=your-doris-host
DB_PORT=9030
DB_USER=your-username
DB_PASSWORD=your-password
DB_NAME=your-database
MCP_SERVER_NAME=DorisAnalytics
DEBUG=false
说明
如果缺少
.env,服务将尝试从.env.example自动创建该文件,但你必须手动填写正确的凭据。
步骤 2:配置 MCP 客户端
要将此服务连接到兼容 MCP 的客户端(例如 Claude Desktop、CherryStudio、Cline),你需要修改 MCP 客户端配置 JSON。
如果你使用 CherryStudio,配置示例如下:
- 名称:doris-mcp-lite
- 类型:stdio
- 命令:absolute/path/to/your/uv
- 参数:
--directory
/Users/hailin/dev/Doris-MCP-Lite
run
server
doris://user:pass@localhost:9030/mydb
如果你通过 pip 安装(mcp_setting.json),配置示例如下:
{
"mcpServers": {
"DorisAnalytics": {
"command": "server",
"args": ["doris://user:pass@localhost:9030/mydb"],
"transportType": "stdio"
}
}
}
如果你通过源代码/uv 安装,或使用 setup.sh:
{
"mcpServers": {
"DorisAnalytics": {
"disabled": false,
"timeout": 60,
"command": "absolute/path/to/uv",
"args": [
"--directory",
"absolute/path/to/mcp/server",
"run",
"server"
"doris://user:pass@localhost:9030/mydb"
],
"transportType": "stdio"
}
}
}
请注意,你可以在配置文件中使用 uv 和 server,而不必传入绝对路径,但需要确保 uv 位于你的 PATH 中。
连接 URL
请记得将 doris://user:pass@localhost:9030/mydb 替换为你的实际数据库连接字符串。
有关如何配置客户端的更多信息,请参阅:
服务器开发者指南 - Model Context Protocol - Claude
✅ 现在,你的大模型客户端将通过 MCP 服务发现 Doris Analytics 工具、提示词和资源。
🖥️ 使用方法
测试 MCP 服务(可选)
开始之前,你可以在项目的 src/doris-mcp-lite 目录中运行 test.py,直接调用 MCP 服务的功能接口,以测试数据库连接、资源、工具等,无需使用大模型(如 Claude、GPT 等模型)。你可以通过命令行传递参数来控制要测试的功能。
测试服务提供的所有资源:
python test.py --server server.py --test resources
或测试提供的所有工具:
python test.py --server server.py --test tools
或测试数据库连接:
python test.py --server "doris://user:pass@localhost:9030/mydb" --test dbconfig
或一次性测试资源、工具和提示词的所有功能:
python test.py --server server.py --test all
测试数据库连接并运行服务
运行以下命令启动 MCP 服务:
server doris://user:pass@localhost:9030/mydb
或手动启动:
python -m doris_mcp_lite.server doris://user:pass@localhost:9030/mydb
服务会立即尝试连接数据库。如果连接成功,启动后你应该会看到:
🚀 Doris MCP Server is starting...
[DorisConnector] Connected to 127.0.0.1:9030
✅ Database connection successful.
[DorisConnector] Connection closed.
现在,你可以在 MCP 客户端中使用工具和提示词。
📚 项目结构概览
src/
└── doris_mcp_lite/
├── config/ # Configuration files
│ ├── __init__.py
│ ├── config.py # Loads environment variables
│ ├── .env.example # Environment variables template
│ └── .env # Stores your database credentials
│
├── db/ # Database interaction logic
│ ├── __init__.py
│ ├── db.py # Doris database connection class
│ └── tools.py # SQL query execution tools
│
├── res/ # Resource definitions (e.g., schemas)
│ ├── __init__.py
│ └── resources.py
│
├── prompts/ # Prebuilt prompt templates
│ ├── __init__.py
│ ├── general_prompts.py
│ └── customize_prompts.py
│
├── __init__.py # Main entry point to start the MCP server
├── server.py # Server launcher
├── mcp_app.py # MCP server instance
└── test.py # Unit test script
README.md # Documentation
INSTALL.md # Installation guide
LISENCE # Lisence
setup.sh # Auto setup wizard
pyproject.toml # Project build configuration
.gitignore # Git ignore settings
📜 许可证
本项目采用 MIT 许可证。
🌟致谢
- 使用 MCP Python SDK 构建。
- 基于:MCP:Model Context Protocol,一种让大模型与外部数据源交互的标准。
- Apache Doris:一个开源、高性能的实时分析型数据库。
- Apache Doris 官方 MCP 服务:Apache Doris 的官方 MCP 服务。
- PyMySQL:用于数据库交互的 Python MySQL 客户端库。
- 受 MCP 官方示例和最佳实践启发。
🤝 贡献
欢迎贡献!欢迎提出问题或提交拉取请求。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。