MD

mzaxd/dm8-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

11 stars 2 forks Качество 72 Тренд 26

达梦数据库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
Открыть полный README на GitHub

Установка

npx -y mcp-dm8-server --config .claude/dm8-mcp.json
Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "dm8": { "command": "npx", "args": ["-y", "mcp-dm8-server", "--config", ".claude/dm8-mcp.json"], "env": { "NODE_OPTIONS": "--openssl-legacy-provider" } } } }