达梦数据库 Model Context Protocol (MCP) 服务器
Project description
达梦数据库 MCP 服务器
一个基于 FastMCP 框架的达梦数据库 Model Context Protocol (MCP) 服务器。该服务器采用环境变量驱动,深度结合达梦数据库特性,并内置严格的安全审计机制。
🌟 特性
- 🚀 环境变量驱动: 全面通过环境变量配置,无需手动调用连接工具,即插即用。
- 🛡️ 深度安全审计:
- 强制锁定配置的
DAMENG_SCHEMA。 - 自动拦截跨模式 (Cross-Schema) 访问尝试。
- 禁止在元数据查询中尝试过滤非本模式的信息。
- 强制锁定配置的
- 🛠️ 多维工具集: 提供从基础 SQL 执行到模式元数据管理的 5 大核心工具。
- 🌏 编码优化: 针对 Windows 终端及达梦
UTF-8编码进行了专项适配。 - ⚡ 现代管理: 使用
uv进行依赖锁定与高性能运行时管理。
快速开始
1. 安装依赖
推荐使用 uv 进行环境同步:
uv sync
2. 配置环境变量
服务器在启动时会读取以下环境变量。请确保在调用前已正确设置:
| 变量名 | 说明 | 必填 | 默认值 |
|---|---|---|---|
DAMENG_HOST |
数据库主机地址 | 是 | - |
DAMENG_PORT |
数据库端口 | 否 | 5236 |
DAMENG_USER |
数据库用户名 | 是 | - |
DAMENG_PASSWORD |
数据库密码 | 是 | - |
DAMENG_SCHEMA |
操作模式 (Schema) | 是 | 核心工具必须提供 |
3. 运行服务器
# Windows (PowerShell 示例)
$env:DAMENG_HOST="192.168.x.x"; $env:DAMENG_USER="SYSDBA"; $env:DAMENG_PASSWORD="your_password"; $env:DAMENG_SCHEMA="your_schema"; uv run dm-mcp-server
🛠️ 提供工具
服务器暴露了以下 5 个工具供 LLM 调用:
test_connection- 功能: 验证当前环境变量配置是否能成功连接到达梦数据库。
execute_sql- 参数:
sql(字符串),fetch_results(布尔值,默认 true)。 - 功能: 执行任意 SQL 语句。涉及
SELECT时返回字典列表。内置正则安全审查。
- 参数:
list_tables- 功能: 列出当前配置模式 (
DAMENG_SCHEMA) 下的所有表名。
- 功能: 列出当前配置模式 (
count_tables- 功能: 快速统计当前模式下的总表数。
get_current_schema- 功能: 返回当前服务器锁定的模式名称。
🔒 安全性说明
为了防止非授权的数据访问,本服务器实施了以下安全策略:
- 模式隔离: 所有 SQL 操作在执行前,都会通过
SET SCHEMA显式切换到环境变量指定的模式。 - 防止注入: 拦截包含点号 (
.) 前缀且非当前模式的 SQL 标识符(例如禁止在 A 模式下查询B.TABLE)。 - 元数据保护: 在查询
ALL_TABLES等系统视图时,如果检测到试图查询非本模式的OWNER,将直接拦截。
在 Cursor / Claude Desktop / Antigravity / Trae 中配置
使用 uvx (推荐方式)
将以下配置添加到您的 MCP 配置文件中(如 Cursor 的 mcpServers 设置):
{
"mcpServers": {
"dm_mcp_server": {
"command": "uvx",
"args": [
"dm-mcp-server"
],
"env": {
"DAMENG_HOST": "192.168.x.x",
"DAMENG_PORT": "5236",
"DAMENG_USER": "SYSDBA",
"DAMENG_PASSWORD": "your_password",
"DAMENG_SCHEMA": "your_schema"
}
}
}
}
许可证
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
dm_mcp_server-2.3.9.tar.gz
(59.9 kB
view details)
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 dm_mcp_server-2.3.9.tar.gz.
File metadata
- Download URL: dm_mcp_server-2.3.9.tar.gz
- Upload date:
- Size: 59.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4df116355df1ac52f82a5a253e83cf3abd0046b2d40caeb6cf9a58b0104a0744
|
|
| MD5 |
85a3f4c9d65a56bc0b66f4ef80e1f9fc
|
|
| BLAKE2b-256 |
13ffb69ef6d26b89a20c9a51601224d4d59980123f9991191828fbb2b5588edd
|
File details
Details for the file dm_mcp_server-2.3.9-py3-none-any.whl.
File metadata
- Download URL: dm_mcp_server-2.3.9-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d103b068770b5c2748ae51211bff50f6bb1362a1c33e590e367566a4a7fd0ab
|
|
| MD5 |
379af0f7457fe2e6f8a7278681b45227
|
|
| BLAKE2b-256 |
746513b92bed048089e7f1884ab1dbfc793fd8ae358d4ed067670607e993e327
|