关于 达梦数据库 MCP 服务
达梦数据库 MCP 服务将 MCP 客户端连接到达梦数据库,提供列出表、查看表结构和执行只读 SQL 的工具,适用于需要查询但不进行写入的场景。
主要功能
- 01列出数据库中的表
- 02查看表结构
- 03执行只读 SQL 查询
- 04通过命令行参数或环境变量配置连接
适用场景
- 01列出达梦数据库实例中的表
- 02查看表的列和结构
- 03执行 SELECT 或 EXPLAIN 等只读查询
MCP 相关
向 MCP 客户端提供 `list_tables`、`describe_table` 和 `execute_query` 工具。查询仅支持 SELECT、SHOW、DESCRIBE、EXPLAIN 等只读语句。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
来自项目 README达梦数据库 MCP 服务
项目简介
本项目是一个基于达梦数据库的 MCP(Microservice Communication Protocol)服务,提供了以下功能:
- 列出数据库中的表:通过
list_tables工具列出指定数据库中的所有表。 - 执行只读 SQL 查询:通过
execute_query工具执行只读 SQL 查询(仅支持SELECT、SHOW、DESCRIBE和EXPLAIN语句)。 - 显示表结构:通过
describe_table工具显示指定表的结构。
使用方法
windows 下可以直接下载 dm-mcp-server 二进制文件,并添加到 PATH 中。
使用 go install 安装
go install github.com/wangzhaobo168/dm-mcp-server
达梦MCP Server 配置示例:
{
"mcpServers": {
"db-mcp-server": {
"command": "dm-mcp-server",
"args": [
],
"env": {
"DM_PORT": "端口号,默认5236",
"DM_HOST": "主机地址",
"DM_USERNAME": "账号",
"DM_PASSWORD": "密码",
"DM_SCHEMA": "模式名"
}
}
}
检查 dm-mcp-server 版本:
dm-mcp-server --version
快速开始
1. 环境要求
- Go 版本:1.16 或更高版本。
- 达梦数据库:已安装并配置好达梦数据库。
- 依赖库:确保安装了
github.com/mark3labs/mcp-go库。
2. 安装依赖
在项目根目录下运行以下命令初始化 Go Modules 并下载依赖:
go mod init dm-mcp-server
go mod tidy
3. 配置数据库连接
在运行服务之前,需要配置达梦数据库的连接信息。可以通过以下方式设置:
- 命令行参数:启动服务时通过命令行参数指定。
- 环境变量:通过环境变量设置。
- 密码中的特殊字符(例如
#、@、:)会在构造连接串时自动转义,无需手动编码。
命令行参数
go run main.go \
-username <用户名> \
-password <密码> \
-host <主机地址> \
-port <端口> \
-schema <模式名>
项目结构
dm-mcp-server/
├── main.go # 主程序入口
├── tools/ # 工具实现
│ ├── list_tables.go # 列出表工具
│ ├── execute_query.go # 执行查询工具
│ └── describe_table.go # 显示表结构工具
├── utils/ # 工具函数
│ ├── config.go # 配置管理
│ └── db.go # 数据库连接
├── go.mod # Go Modules 文件
└── README.md # 项目文档
贡献指南
欢迎提交 Issue 和 Pull Request 来改进本项目。请确保代码风格一致,并通过测试。
许可证
本项目采用 MIT 许可证。
补充说明
- 如果
github.com/mark3labs/mcp-go库不可用,请替换为其他兼容的 MCP 实现。 - 如果需要支持更多数据库操作,可以在
tools包中添加新的工具。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。