
mzaxd/dm8-mcp
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
达梦数据库mcp
概要
TypeScript 实现的达梦 DM8 Model Context Protocol (MCP) 服务器,提供表结构浏览和只读 SQL 查询能力。支持多连接、多 Schema、配置文件管理以及主备容灾。 2.0 是一个 版本,针对多连接、跨 schema 场景下 LLM 容易查错库的问题做了重构(详见 变更日志)。 (旧配置里写了会被静默忽略,建议清理): - defaultConnection(环境级)/ connection.default(连接级):多连接场景下「默认连接」会让 LLM 在 dev/prod 之间静默查错库,已移除。 - CLI --default-connection / 环境变量 DM_DEFAULT_CONNECTION:同上。 :多连接模式下未传 connection 时不再回落到默认连接,而是报错并返回连接目录(含每个连接的环境说明、可访问 schema 与正确调用示例),请让 LLM 显式传 connection。单连接模式行为不变(自动选中唯一连接)。 切换环境只需修改 activeEnv 为 "prod",或通过 --env prod 覆盖。 :如果使用未发布到 npm 的本地版本,将 command 改为 node,args 改为 ["--openssl-legacy-provider", "/path/to/mcp-dm8-server/dist/cli.js", "--config", ".claude/dm8-mcp.json"]。 配置文件位置: - Windows: %APPDATA%\Claude\claude_desktop_config.json - macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - Linux: ~/.config/Claude/claude_desktop_config.json Cline、mcp-router 等客户端的配置格式与 Claude Desktop 一致,均为 JSON 格式的 mcpServers 配置。
README
以下は原文 README の抜粋です。原文を見る。
MCP DM8 Server
TypeScript 实现的达梦 DM8 Model Context Protocol (MCP) 服务器,提供表结构浏览和只读 SQL 查询能力。支持多连接、多 Schema、配置文件管理以及主备容灾。
从 1.x 升级到 2.0
2.0 是一个 breaking change 版本,针对多连接、跨 schema 场景下 LLM 容易查错库的问题做了重构(详见 变更日志)。
移除的配置项(旧配置里写了会被静默忽略,建议清理):
defaultConnection(环境级)/connection.default(连接级):多连接场景下「默认连接」会让 LLM 在 dev/prod 之间静默查错库,已移除。- CLI
--default-connection/ 环境变量DM_DEFAULT_CONNECTION:同上。
迁移:多连接模式下未传 connection 时不再回落到默认连接,而是报错并返回连接目录(含每个连接的环境说明、可访问 schema 与正确调用示例),请让 LLM 显式传 connection。单连接模式行为不变(自动选中唯一连接)。
快速开始
Claude Code(推荐)
在项目根目录创建两个文件即可,所有配置都在项目内闭环:
.claude/dm8-mcp.json(数据库连接配置):
{
"activeEnv": "dev",
"environments": {
"dev": {
"connections": [
{
"name": "GASBASE",
"host": "127.0.0.1",
"port": 5236,
"username": "SYSDBA",
"password": "your_password",
"schema": "GASBASE"
}
]
},
"prod": {
"connections": [
{
"name": "BASE",
"host": "10.0.1.100",
"masterHost": "10.0.1.200",
"port": 5236,
"username": "BASE",
"password": "your_password",
"schema": "BASE"
}
]
}
}
}
.mcp.json(注册 MCP server,Claude Code 自动读取):
{
"mcpServers": {
"dm8": {
"command": "npx",
"args": ["-y", "mcp-dm8-server", "--config", ".claude/dm8-mcp.json"],
"env": {
"NODE_OPTIONS": "--openssl-legacy-provider"
}
}
}
}
切换环境只需修改 activeEnv 为 "prod",或通过 --env prod 覆盖。
本地开发:如果使用未发布到 npm 的本地版本,将
command改为node,args改为["--openssl-legacy-provider", "/path/to/mcp-dm8-server/dist/cli.js", "--config", ".claude/dm8-mcp.json"]。
Claude Desktop
配置文件位置:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
通过 --config 传入配置文件的绝对路径:
{
"mcpServers": {
"dm8": {
"command": "npx",
"args": ["-y", "mcp-dm8-server", "--config", "/path/to/project/.claude/dm8-mcp.json"],
"env": {
"DM_ENV": "production",
"NODE_OPTIONS": "--openssl-legacy-provider"
}
}
}
}
其他 MCP 客户端
Cline、mcp-router 等客户端的配置格式与 Claude Desktop 一致,均为 JSON 格式的 mcpServers 配置。
可用工具
| 工具名 | 描述 | 必填参数 | 可选参数 |
|---|---|---|---|
list_schemas |
列出已配置的连接、Schema 及数据库中可见的模式 | 无 | 无 |
list_tables |
列出指定 Schema 下的所有表 | 无 | connection, schema |
describe_table |
返回表的列名、类型、长度、是否可空、列注释 | table |
connection, schema |
インストール
npx -y mcp-dm8-server --config .claude/dm8-mcp.json設定
{
"mcpServers": {
"dm8": {
"command": "npx",
"args": ["-y", "mcp-dm8-server", "--config", ".claude/dm8-mcp.json"],
"env": {
"NODE_OPTIONS": "--openssl-legacy-provider"
}
}
}
}