Token导航 LogoToken导航TokenDH.com
MCP Dm8 logo
AI代理stdio官方级别未说明来源级核验

MCP Dm8

MCP Server

mcp-dm8

一个基于TypeScript的达梦DM8数据库服务,提供表结构浏览和只读查询功能,支持多种配置方式和MCP客户端集成。

工具数

0

提示词数

0

GitHub Stars

6

资源数

0
数据库服务TypeScriptClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

lianekai

提供方

lianekai

最后核验

2026/5/17 20:22

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx mcp-dm8 --host 127.0.0.1 --port 5236 --username SYSDBA --password 密码 --schema SYSDBA

详细介绍

mcp-dm8-server

lianekai 维护的 TypeScript 版达梦 DM8 Model Context Protocol (MCP) 服务,提供表结构浏览和只读查询能力,便于在支持 MCP 的客户端(如 Claude Desktop、mcp-router、mcp-use)中直接操作达梦数据库。

目录

  1. 主要特性
  2. 环境要求
  3. 安装与构建
  4. 配置方式
  5. 在 MCP 客户端中注册
  6. 可用工具说明
  7. 开发与测试指南
  8. 常见问题

主要特性

  • list_tablesdescribe_tableexecute_query 覆盖 Schema 列表、表结构和只读 SQL 操作。
  • 参数统一校验,自动规避 schema/table 注入风险,并强制限制为 SELECT/SHOW/DESCRIBE/EXPLAIN。
  • 支持环境变量、CLI 以及 .env 文件组合配置,易于部署。
  • 默认使用 stdio 传输,可与任意 MCP 客户端对接。

环境要求

  • Node.js >= 16(推荐 16.x;若使用 18.x 需追加 --openssl-legacy-provider,原因是 Node 18 内置的 OpenSSL 3 默认禁用旧算法,而达梦官方 dmdb 驱动仍依赖 legacy provider)。
  • npm >= 9 或兼容包管理器。
  • 达梦 DM8 数据库实例及具备权限的账号。
  • 达梦 Node 原生驱动依赖(dmdb 已在 package.json 中声明,必要时按官方文档安装系统库)。

安装与构建

git clone https://github.com/lianekai/mcp-dm8-server.git
cd mcp-dm8-server
npm install
npm run build

构建完成后即可运行:

DM_HOST=127.0.0.1 DM_PORT=5236 DM_USERNAME=SYSDBA DM_PASSWORD=密码 DM_SCHEMA=SYSDBA \
  node dist/index.js

也可以直接使用 npx 调用已经构建好的 CLI(等价于 node dist/index.js,更方便在 Codex 或其他 MCP 调度器中引用):

npx mcp-dm8 --host 127.0.0.1 --port 5236 --username SYSDBA --password 密码 --schema SYSDBA
注意:首次执行前需要先运行 npm run build 生成 dist/cli.js

配置方式

支持命令行参数、setConfig 运行时注入、环境变量/.env。优先级:CLI > 运行时 > 环境变量。

配置项CLI 参数环境变量默认值
用户名--usernameDM_USERNAME
密码--passwordDM_PASSWORD
主机--hostDM_HOST
端口--portDM_PORT5236
默认 Schema--schemaDM_SCHEMA

示例 .env

DM_HOST=localhost
DM_PORT=5236
DM_USERNAME=SYSDBA
DM_PASSWORD=••••••
DM_SCHEMA=SYSDBA

查看版本:

node dist/index.js --version

快速启动

node 版本选择上,请注意:使用 Node.js 16.x 时可以直接启动;若使用 Node.js 18.x,则必须通过命令行参数显式追加 --openssl-legacy-provider 以启用被默认禁用的旧 OpenSSL 算法,否则启动会失败。

  • npm 脚本:仓库内已提供 npm run start:dm8,会自动为当前进程注入 NODE_OPTIONS=--openssl-legacy-provider。Windows 环境若需兼容,可改用 cross-env NODE_OPTIONS=--openssl-legacy-provider node dist/index.js
  • Shell 启动器:执行 ./start-dm8.sh --host 127.0.0.1 --port 5236 --username SYSDBA --password 密码 --schema SYSDBA,脚本会自动附加 legacy provider 并将参数透传给 dist/index.js
  • Direnv 环境变量:仓库根目录提供 .envrc,如果你使用 direnv,在项目目录执行一次 direnv allow,进入目录时会自动设置 NODE_OPTIONS=--openssl-legacy-provider。若不需要该行为,可删除或忽略 .envrc

在 MCP 客户端中注册

Claude Desktop

claude_desktop_config.json 追加:

{
  "mcpServers": {
    "dm8": {
      "command": "node",
      "args": ["/path/to/mcp-dm8-server/dist/index.js"],
      "env": {
        "DM_HOST": "127.0.0.1",
        "DM_PORT": "5236",
        "DM_USERNAME": "SYSDBA",
        "DM_PASSWORD": "your-password",
        "DM_SCHEMA": "SYSDBA"
      }
    }
  }
}

mcp-router / mcp-use

config.json 追加:

{
  "servers": {
    "dm8": {
      "command": "node",
      "args": ["/path/to/mcp-dm8-server/dist/index.js"],
      "env": {
        "DM_HOST": "127.0.0.1",
        "DM_PORT": "5236",
        "DM_USERNAME": "SYSDBA",
        "DM_PASSWORD": "your-password",
        "DM_SCHEMA": "SYSDBA"
      }
    }
  }
}
如果想直接使用源码运行,可把 args 替换为 npx tsx src/index.ts,并确保本地已安装 tsx

Codex CLI

  1. 构建产物(若尚未执行过):npm run build
  2. 编辑 ~/.codex/config.toml,确保将项目路径标记为可信,例如:
   [projects."/Users/your-user/software/mcp/mcp-dm8-server"]
   trust_level = "trusted"
  1. 在同一文件的 [mcp_servers] 段落追加达梦服务定义:
   [mcp_servers.dm8]
   command = "node"
   args = [
     "/Users/your-user/software/mcp/mcp-dm8-server/dist/index.js",
     "--host", "127.0.0.1",
     "--port", "5236",
     "--username", "SYSDBA",
     "--password", "your-password",
     "--schema", "SYSDBA"
   ]

> 如果希望在运行时切换配置,可把上述敏感参数改为环境变量并结合 .env,或使用 --username 等 CLI 参数覆盖。

  1. 保存后重新启动 Codex CLI 会话(或执行 codex reset)以加载新的 MCP 服务器。随后在 Codex 中执行 list_tables / describe_table / execute_query 等工具即可访问 DM8。

可用工具说明

工具名描述关键参数
list_tables列出指定 Schema 的所有表schema(可选)
describe_table显示列类型、长度、可空属性schema(可选)、table(必填)
execute_query执行只读 SQLschema(可选)、query(必填,只允许 SELECT/SHOW/DESCRIBE/EXPLAIN)

所有工具都会对 schema/table 名称做正则校验,并在执行前自动设置 Schema。

开发与测试指南

npm run dev   # tsx watch
npm test      # Vitest 单元测试
npm run build # 生成 dist + d.ts
默认 dmdb.outFormat = dmdb.OUT_FORMAT_OBJECT,如需兼容旧格式可在 src/utils/db.ts 修改。

常见问题

Q: 驱动安装失败怎么办? 参考达梦官方《Node.js 框架 | 达梦技术文档》,确保系统具备 snappy/snappyjs 等依赖。

Q: 可以执行 DML/DDL 吗? 当前仅允许只读操作,如需扩展请严格控制权限并补充测试。

Q: 如何反馈问题?Issues 提交或发起 PR。

目录标签

目录标签

数据库服务TypeScriptClaude本地部署只读查询表结构浏览MCP协议达梦DM8

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

mcp-dm8

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP