Skip to main content

达梦数据库 Model Context Protocol (MCP) 服务器,支持 SQL 执行、表管理等操作

Project description

达梦数据库 MCP 服务器

PyPI Python 3.10+ License: MIT

达梦数据库 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

首次验证

配置完成后,建议按顺序验证:

  1. test_connection — 确认数据库能连接
  2. get_current_schema — 确认 Schema 配置正确
  3. count_tables — 确认能读取元数据
  4. list_tables — 确认能列出表
  5. execute_sql — 尝试执行查询

常见问题

找不到 dmPython

dmPython 是必需的数据库驱动。安装 dameng-mcp-server 时会自动安装。如果安装失败,请参考达梦官方文档获取 dmPython 驱动。

MCP 客户端启动失败

  • 确认 dameng-mcp-server 命令可用:which dameng-mcp-server
  • 确认环境变量配置完整
  • 如果使用 uvx,确认已安装 uv

数据库连接失败

  • DAMENG_HOSTDAMENG_PORT 是否能从本机访问
  • 数据库用户名和密码是否正确
  • DAMENG_SCHEMA 是否存在
  • 当前用户是否有访问目标 Schema 的权限

安全建议

  • 不要将真实数据库密码提交到版本库
  • 对只读分析场景,建议使用只读数据库账号
  • 在生产环境中使用 execute_sql 前,应确认 SQL 内容
  • 多个 Schema 建议拆成多个 MCP Server,便于控制权限

许可证

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dameng_mcp_server-2.4.0.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dameng_mcp_server-2.4.0-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

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

Hashes for dameng_mcp_server-2.4.0.tar.gz
Algorithm Hash digest
SHA256 46b3a45dc2418cb7156968565872d6178fdce837780d62daf572d5056da1c848
MD5 214767da490fbc85090b956ea040ae78
BLAKE2b-256 5dabff1a98f67decfc6fb36ceb9c4ea0f853a1b854494eff3775ba955c4fd6c1

See more details on using hashes here.

File details

Details for the file dameng_mcp_server-2.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for dameng_mcp_server-2.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ee41596f4865d00e524ac15f36d81c45ef4b7c8552103cb6a248adcc945ecae
MD5 791cdbb2e67881a14958c58b9f15b127
BLAKE2b-256 ab48b75ce2bda7273c437f82eebe25e37fa199fb63b86cdb92b5429a20a26eac

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page