达梦数据库 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
Metadata
Release files for dameng-mcp-server 2.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dameng_mcp_server-2.4.0.tar.gz | 7.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dameng_mcp_server-2.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.1 kB
Release files / dameng_mcp_server-2.4.0.tar.gz
| Download URL | dameng_mcp_server-2.4.0.tar.gz |
|---|---|
| Size | 7.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
46b3a45dc2418cb7156968565872d6178fdce837780d62daf572d5056da1c848
|
|
BLAKE2b-256 checksum How to use checksums |
5dabff1a98f67decfc6fb36ceb9c4ea0f853a1b854494eff3775ba955c4fd6c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|
Release files / dameng_mcp_server-2.4.0-py3-none-any.whl
| Download URL | dameng_mcp_server-2.4.0-py3-none-any.whl |
|---|---|
| Size | 8.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2ee41596f4865d00e524ac15f36d81c45ef4b7c8552103cb6a248adcc945ecae
|
|
BLAKE2b-256 checksum How to use checksums |
ab48b75ce2bda7273c437f82eebe25e37fa199fb63b86cdb92b5429a20a26eac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.6
|