达梦数据库 Model Context Protocol (MCP) 服务器,支持 SQL 执行、表管理等操作
Project description
达梦数据库 MCP 服务器
达梦数据库 MCP 服务器是一个基于 Model Context Protocol 的数据库访问服务。它可以让 Codex、Claude Code 以及其他支持 MCP 的 AI 开发工具,通过标准工具接口连接达梦数据库,执行连接测试、查看当前 Schema、列出表、统计表数量以及执行 SQL。
功能特性
- 基于 FastMCP 实现,支持标准 MCP 客户端接入
- 使用环境变量配置数据库连接,凭据不写入代码
- 支持通过
DAMENG_SCHEMA指定当前 Schema - 提供连接测试、Schema 查询、表列表、表数量统计和 SQL 执行工具
- 返回结构化 JSON,便于 AI 客户端理解和继续分析
- 内置跨 Schema 访问安全限制
安装
从 PyPI 安装(推荐)
pip install dameng-mcp-server
前置要求: Python 3.10+,dmPython 驱动(随包自动安装)
配置数据库连接
服务启动时会读取以下环境变量:
| 环境变量 | 是否必填 | 说明 |
|---|---|---|
DAMENG_HOST |
是 | 达梦数据库主机地址 |
DAMENG_PORT |
否 | 达梦数据库端口,默认 5236 |
DAMENG_USER |
是 | 数据库用户名 |
DAMENG_PASSWORD |
是 | 数据库密码 |
DAMENG_SCHEMA |
建议填写 | MCP 服务默认使用的 Schema |
Linux/macOS
export DAMENG_HOST="db.example.com"
export DAMENG_PORT="5236"
export DAMENG_USER="DM_USER"
export DAMENG_PASSWORD="change_me"
export DAMENG_SCHEMA="APP_SCHEMA"
Windows PowerShell
$env:DAMENG_HOST="db.example.com"
$env:DAMENG_PORT="5236"
$env:DAMENG_USER="DM_USER"
$env:DAMENG_PASSWORD="change_me"
$env:DAMENG_SCHEMA="APP_SCHEMA"
配置 MCP 客户端
安装后可以直接在 MCP 客户端中使用 dameng-mcp-server 命令。
通用配置(Claude Desktop / Cursor 等)
{
"mcpServers": {
"dm_mcp_server": {
"command": "dameng-mcp-server",
"env": {
"DAMENG_HOST": "db.example.com",
"DAMENG_PORT": "5236",
"DAMENG_USER": "DM_USER",
"DAMENG_PASSWORD": "change_me",
"DAMENG_SCHEMA": "APP_SCHEMA"
}
}
}
}
使用 uvx 运行(无需预装)
如果不想全局安装,可以用 uvx 按需运行:
{
"mcpServers": {
"dm_mcp_server": {
"command": "uvx",
"args": ["dameng-mcp-server"],
"env": {
"DAMENG_HOST": "db.example.com",
"DAMENG_PORT": "5236",
"DAMENG_USER": "DM_USER",
"DAMENG_PASSWORD": "change_me",
"DAMENG_SCHEMA": "APP_SCHEMA"
}
}
}
}
Codex 配置
[mcp_servers.dm_mcp_server]
command = "dameng-mcp-server"
enabled = true
[mcp_servers.dm_mcp_server.env]
DAMENG_HOST = "db.example.com"
DAMENG_PORT = "5236"
DAMENG_USER = "DM_USER"
DAMENG_PASSWORD = "change_me"
DAMENG_SCHEMA = "APP_SCHEMA"
Claude Code 配置
在项目根目录创建 .mcp.json:
{
"mcpServers": {
"dm_mcp_server": {
"command": "dameng-mcp-server",
"env": {
"DAMENG_HOST": "db.example.com",
"DAMENG_PORT": "5236",
"DAMENG_USER": "DM_USER",
"DAMENG_PASSWORD": "change_me",
"DAMENG_SCHEMA": "APP_SCHEMA"
}
}
}
}
如需允许工具权限,在 .claude/settings.local.json 中添加:
{
"permissions": {
"allow": [
"mcp__dm_mcp_server__test_connection",
"mcp__dm_mcp_server__get_current_schema",
"mcp__dm_mcp_server__list_tables",
"mcp__dm_mcp_server__count_tables",
"mcp__dm_mcp_server__execute_sql"
]
},
"enableAllProjectMcpServers": true
}
配置多个 Schema
如需同时访问多个 Schema,为每个 Schema 配置独立的 MCP Server,只需修改名称和 DAMENG_SCHEMA:
{
"mcpServers": {
"dm_app": {
"command": "dameng-mcp-server",
"env": {
"DAMENG_HOST": "db.example.com",
"DAMENG_PORT": "5236",
"DAMENG_USER": "DM_USER",
"DAMENG_PASSWORD": "change_me",
"DAMENG_SCHEMA": "APP_SCHEMA"
}
},
"dm_report": {
"command": "dameng-mcp-server",
"env": {
"DAMENG_HOST": "db.example.com",
"DAMENG_PORT": "5236",
"DAMENG_USER": "DM_USER",
"DAMENG_PASSWORD": "change_me",
"DAMENG_SCHEMA": "REPORT_SCHEMA"
}
}
}
}
可用工具
| 工具名 | 说明 |
|---|---|
test_connection |
测试数据库连接是否可用 |
get_current_schema |
返回当前配置的 Schema |
list_tables |
列出当前 Schema 下的所有表 |
count_tables |
统计当前 Schema 下的表数量 |
execute_sql |
执行 SQL 语句,SELECT 返回结果集,其他返回影响行数 |
在支持 MCP 的客户端中可以这样使用:
使用 dm_mcp_server 测试数据库连接
使用 dm_mcp_server 列出当前 Schema 下的表
使用 dm_mcp_server 执行 SELECT COUNT(*) FROM MY_TABLE
首次验证
配置完成后,建议按顺序验证:
test_connection— 确认数据库能连接get_current_schema— 确认 Schema 配置正确count_tables— 确认能读取元数据list_tables— 确认能列出表execute_sql— 尝试执行查询
常见问题
找不到 dmPython
dmPython 是必需的数据库驱动。安装 dameng-mcp-server 时会自动安装。如果安装失败,请参考达梦官方文档获取 dmPython 驱动。
MCP 客户端启动失败
- 确认
dameng-mcp-server命令可用:which dameng-mcp-server - 确认环境变量配置完整
- 如果使用
uvx,确认已安装uv
数据库连接失败
DAMENG_HOST和DAMENG_PORT是否能从本机访问- 数据库用户名和密码是否正确
DAMENG_SCHEMA是否存在- 当前用户是否有访问目标 Schema 的权限
安全建议
- 不要将真实数据库密码提交到版本库
- 对只读分析场景,建议使用只读数据库账号
- 在生产环境中使用
execute_sql前,应确认 SQL 内容 - 多个 Schema 建议拆成多个 MCP Server,便于控制权限
许可证
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dameng_mcp_server-2.4.0.tar.gz.
File metadata
- Download URL: dameng_mcp_server-2.4.0.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
46b3a45dc2418cb7156968565872d6178fdce837780d62daf572d5056da1c848
|
|
| MD5 |
214767da490fbc85090b956ea040ae78
|
|
| BLAKE2b-256 |
5dabff1a98f67decfc6fb36ceb9c4ea0f853a1b854494eff3775ba955c4fd6c1
|
File details
Details for the file dameng_mcp_server-2.4.0-py3-none-any.whl.
File metadata
- Download URL: dameng_mcp_server-2.4.0-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ee41596f4865d00e524ac15f36d81c45ef4b7c8552103cb6a248adcc945ecae
|
|
| MD5 |
791cdbb2e67881a14958c58b9f15b127
|
|
| BLAKE2b-256 |
ab48b75ce2bda7273c437f82eebe25e37fa199fb63b86cdb92b5429a20a26eac
|