Token导航 LogoToken导航TokenDH.com
Dbhub MCP (Cn Dvn) logo
数据服务未说明官方级别未说明来源级核验

Dbhub MCP (Cn Dvn)

MCP Server

DBHub MCP Server是一个基于Go语言编写的模型上下文协议服务器,提供对MySQL和PostgreSQL的安全只读数据库操作,支持STDIO和HTTP两种传输方式,确保数据访问的安全性和高效性。

工具数

4

提示词数

0

GitHub Stars

1

资源数

0
数据库服务GoClaudeMySQLClaude DesktopClaude

安装说明

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

作者 / 组织

CNDvn

提供方

CNDvn

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

DBHub MCP服务器

用Go编写的模型上下文协议(MCP)服务器,为MySQL和PostgreSQL提供安全、只读的数据库操作。

特性

  • MCP协议合规性:全面实施MCP规范
  • 双重运输支持:STDIO(适用于Claude Desktop)和HTTP(适用于web/网络客户端)
  • 多数据库支持:MySQL和PostgreSQL通过统一接口
  • 只读执行:多层安全性,防止写入操作
  • 连接池:高效的连接管理
  • 查询验证:SQL注入预防和只读查询强制
  • HTTP安全:可选API密钥身份验证和CORS支持
  • 可扩展架构:易于添加对更多数据库和传输的支持

MCP工具

服务器公开了以下MCP工具:

  1. list_tables -列出数据库中的所有表
  2. describe_table -返回特定表的架构信息
  3. execute_readony_query -执行SELECT查询(写入操作被阻止)
  4. 解释查询 -返回查询执行计划,不执行

安装

先决条件

  • 转到1.21或更高版本
  • MySQL或PostgreSQL数据库
  • 只读数据库用户(推荐)

构建

# Clone the repository
git clone 
cd dbhubMCP

# Install dependencies
go mod download

# Build the server
go build -o dbhub-mcp-server ./cmd/server

配置

使用环境变量配置服务器:

# Copy example configuration
cp .env.example .env

# Edit configuration
nano .env

环境变量

数据库配置

变量描述默认值
DB_TYPE数据库类型:“mysql”或“postgres”mysql
DB_HOST数据库主机localhost
DB_PORT数据库端口3306
DB_NAME数据库名称(必填)
DB_USER数据库用户名(必填)
DB_PASSWORD数据库密码(必填)
DB_MAX_CONNS最大打开连接数10
DB_MAX_IDLE_CONNS最大空闲连接数5
DB_CONN_TIMEOUT_SEC连接超时(秒)10
QUERY_TIMEOUT_SEC查询执行超时30
MAX_ROWS要返回的最大行数1000
LOG_LEVEL日志级别信息

传输配置(可选)

变量描述默认值
TRANSPORT_TYPE传输模式:“stdio”或“http”stdio
HTTP_ADDRHTTP服务器地址(仅限HTTP模式):8080
HTTP_CORS_ORIGINS逗号分隔的CORS源(HTTP模式)\*
HTTP_API_KEY用于身份验证的可选API密钥(无)

用法

运行服务器

STDIO模式(默认-适用于克劳德桌面):

# Load environment variables and run
export $(cat .env | xargs) && ./dbhub-mcp-server

HTTP模式(适用于web/网络客户端):

export TRANSPORT_TYPE=http
export HTTP_ADDR=:8080
export HTTP_CORS_ORIGINS=*
export HTTP_API_KEY=your-secret-key
export $(cat .env | xargs) && ./dbhub-mcp-server

有关完整的HTTP模式文档,请参阅 README_HTTP.md.

与Claude Desktop一起使用

添加到您的Claude Desktop MCP配置(claude_desktop_config.json):

{
  "mcpServers": {
    "dbhub": {
      "command": "/path/to/dbhub-mcp-server",
      "env": {
        "DB_TYPE": "mysql",
        "DB_HOST": "localhost",
        "DB_PORT": "3306",
        "DB_NAME": "mydb",
        "DB_USER": "readonly_user",
        "DB_PASSWORD": "password"
      }
    }
  }
}

安全

多层只读执行

  1. SQL验证层

- 块INSERT、UPDATE、DELETE、DROP、ALTER、TRUNCATE - 验证以SELECT、EXPLAIN、DESCRIBE或SHOW开头的查询 - 检测SQL注入模式

  1. 数据库权限层

- 使用只读数据库用户 - 仅授予SELECT权限

  1. 查询限制

- 每个查询的可配置超时 - 防止内存问题的最大行限制

创建只读用户

MySQL:

CREATE USER 'readonly_user'@'%' IDENTIFIED BY 'secure_password';
GRANT SELECT ON mydb.* TO 'readonly_user'@'%';
FLUSH PRIVILEGES;

PostgreSQL:

CREATE USER readonly_user WITH PASSWORD 'secure_password';
GRANT CONNECT ON DATABASE mydb TO readonly_user;
GRANT USAGE ON SCHEMA public TO readonly_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly_user;

建筑

┌─────────────────────────────────┐
│  MCP Clients                    │
│  ├─ Claude Desktop (STDIO)      │
│  ├─ Web Browser (HTTP)          │
│  └─ Custom Client (HTTP)        │
└────────────┬────────────────────┘
             │
     ┌───────┴───────┐
     ↓               ↓
┌─────────┐    ┌──────────┐
│ STDIO   │    │ HTTP     │
│ (stdin/ │    │ (POST    │
│ stdout) │    │ /mcp)    │
└────┬────┘    └────┬─────┘
     │              │
     └──────┬───────┘
            ↓
┌────────────────────────────┐
│ MessageTransport Interface │
└────────────┬───────────────┘
             │
┌────────────▼────────────────────┐
│   MCP Server                    │
│   - Protocol handling           │
│   - Tool routing                │
└────────────┬────────────────────┘
             │
┌────────────▼────────────────────┐
│   Security/Validation Layer     │
└────────────┬────────────────────┘
             │
┌────────────▼────────────────────┐
│   Database Adapter Interface    │
└──────┬──────────────┬───────────┘
       │              │
   ┌───▼────┐    ┌───▼─────┐
   │ MySQL  │    │ Postgres│
   └────────┘    └─────────┘

发展

项目结构

dbhubMCP/
├── cmd/
│   └── server/
│       └── main.go                  # Entry point
├── internal/
│   ├── mcp/
│   │   ├── server.go                # MCP server implementation
│   │   ├── protocol.go              # MCP protocol types
│   │   ├── transport_interface.go   # Transport abstraction
│   │   ├── transport_stdio.go       # STDIO transport
│   │   ├── transport_http.go        # HTTP transport
│   │   ├── transport_http_test.go   # HTTP transport tests
│   │   └── handlers.go              # Tool handlers
│   ├── database/
│   │   ├── adapter.go               # Database interface
│   │   ├── mysql.go                 # MySQL implementation
│   │   └── postgres.go              # PostgreSQL implementation
│   ├── security/
│   │   └── validator.go             # SQL validation
│   └── config/
│       └── config.go                # Configuration
├── go.mod
├── README.md
└── README_HTTP.md                   # HTTP transport documentation

运行测试

go test ./...

添加新数据库

  1. 实施 database.Adapter 接口在 internal/database/
  2. 添加特定于数据库的驱动程序导入
  3. 注册于 main.go switch语句

MCP交互示例

examples/ 完整JSON-RPC请求/响应示例的目录:

  • initialize.json -服务器初始化
  • list_tools.json -工具发现
  • call_list_tables.json -列表表示例
  • call_execute_query.json -执行查询示例

许可证

MIT许可证

贡献

欢迎投稿!请确保:

  • 代码遵循Go惯例
  • 维护安全最佳实践
  • 包括对新功能的测试

目录标签

目录标签

数据库服务GoClaudeMySQL本地部署只读操作MCP协议PostgreSQL

支持客户端

Claude DesktopClaude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP