mcpField
D
Doris Mcp Server

Doris Mcp Server

本地服务
github.com/NomotoK数据库170 周前更新

关于 Doris Mcp Server

Doris-MCP-Lite 将 LLM 应用连接到 Apache Doris 及其他兼容 MySQL 的数据库,提供只读查询、结构资源和内置分析提示词。

主要功能

  1. 01执行只读 SQL 查询
  2. 02查看数据库架构和表结构
  3. 03获取使用与资源数据
  4. 04使用内置分析提示词
  5. 05以结构化资源提供数据库架构
  6. 06通过连接池管理数据库连接

适用场景

  1. 01探索 Doris 数据库架构
  2. 02执行只读分析查询
  3. 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 安装指南

  1. 将 setup.sh 复制到本地。
  2. 将脚本设为可执行:
chmod +x setup.sh
  1. 运行脚本:
./setup.sh

脚本会自动安装服务,并引导你完成数据库配置。

选项 2:通过 pip 安装

推荐用于生产环境

pip install doris-mcp-lite

✅ 安装完成后,即可使用命令行工具启动 MCP 服务。

选项 3:克隆源代码并手动安装

推荐用于需要修改服务的情况

  1. Fork 并克隆仓库:
git clone https://github.com/YOUR_USERNAME/doris-mcp-lite.git
cd doris-mcp-lite
  1. 使用 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
  1. 将此服务添加到你的大模型客户端,或运行此服务:
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 文件:

  1. 将 .env.example 复制为 .env:
cp .env.example .env
  1. 编辑 .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 | CherryStudio

✅ 现在,你的大模型客户端将通过 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 官方示例和最佳实践启发。

🤝 贡献

欢迎贡献!欢迎提出问题或提交拉取请求。

评论

支持 Markdown

第一次接触 MCP?

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

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