Sign inSign up

fly32111/mcp-database-query-tools

By fly32111

•Updated 8 months ago

Image
0

1.3K

fly32111/mcp-database-query-tools repository overview

⁠Database Query Tools (MCP)

基于 Go 语言开发的MCP 协议多数据库查询服务,已封装为 Docker 镜像,开箱即用,支持 MySQL + ClickHouse 双数据库查询,返回标准化 JSON 结果。

已发布至 DockerHub:fly32111/mcp-database-query-tools


⁠一、最简快速启动(直接用 DockerHub 镜像)

⁠1. 仅启动 MySQL 查询
docker run -d \
  --name mcp-db \
  -e MCP_MYSQL_HOST=你的MySQL地址 \
  -e MCP_MYSQL_PORT=3306 \
  -e MCP_MYSQL_USER=用户名 \
  -e MCP_MYSQL_PASSWORD=密码 \
  -e MCP_MYSQL_DBNAME=数据库名 \
  -p 8080:8080 \
  --restart always \
  fly32111/mcp-database-query-tools:latest
⁠2. 仅启动 ClickHouse 查询
docker run -d \
  --name mcp-db \
  -e MCP_CLICKHOUSE_HOST=你的CH地址 \
  -e MCP_CLICKHOUSE_PORT=9000 \
  -e MCP_CLICKHOUSE_PROTOCOL=native \
  -e MCP_CLICKHOUSE_DATABASE=default \
  -e MCP_CLICKHOUSE_USERNAME=default \
  -e MCP_CLICKHOUSE_PASSWORD=密码 \
  -p 8080:8080 \
  --restart always \
  fly32111/mcp-database-query-tools:latest
⁠3. 同时启动 MySQL + ClickHouse(推荐)
docker run -d \
  --name mcp-db \
  # MySQL 配置
  -e MCP_MYSQL_HOST=MySQL地址 \
  -e MCP_MYSQL_PORT=3306 \
  -e MCP_MYSQL_USER=用户名 \
  -e MCP_MYSQL_PASSWORD=密码 \
  -e MCP_MYSQL_DBNAME=数据库名 \
  # ClickHouse 配置
  -e MCP_CLICKHOUSE_HOST=CH地址 \
  -e MCP_CLICKHOUSE_PORT=9000 \
  -e MCP_CLICKHOUSE_PROTOCOL=native \
  -e MCP_CLICKHOUSE_DATABASE=default \
  -e MCP_CLICKHOUSE_USERNAME=default \
  -e MCP_CLICKHOUSE_PASSWORD=密码 \
  # 端口
  -p 8080:8080 \
  --restart always \
  fly32111/mcp-database-query-tools:latest

⁠二、服务地址

服务启动后,MCP 客户端连接地址:

http://你的服务器IP:8080/mcp

⁠三、MCP 调用示例

⁠1. MySQL 查询
{
  "method": "tools/call",
  "params": {
    "name": "query_mysql",
    "arguments": {
      "query": "SELECT * FROM users LIMIT 10"
    }
  }
}
⁠2. ClickHouse 查询
{
  "method": "tools/call",
  "params": {
    "name": "query_clickhouse",
    "arguments": {
      "query": "SELECT * FROM events WHERE date >= today() LIMIT 10"
    }
  }
}

⁠四、返回结果格式(标准化 JSON)

{
  "database_type": "MySQL",
  "query": "SELECT * FROM users LIMIT 10",
  "columns": ["id", "name", "email"],
  "row_count": 10,
  "rows": [
    {"id": 1, "name": "张三", "email": "[email protected]"}
  ],
  "executed_at": "2025-12-19 12:00:00"
}

⁠五、关键环境变量速查表

⁠MySQL
变量说明必填
MCP_MYSQL_HOST地址是
MCP_MYSQL_PORT端口是
MCP_MYSQL_USER用户名是
MCP_MYSQL_PASSWORD密码否
MCP_MYSQL_DBNAME数据库是
⁠ClickHouse
变量说明必填
MCP_CLICKHOUSE_HOST地址是
MCP_CLICKHOUSE_PORT9000(native)/8123(http)是
MCP_CLICKHOUSE_PROTOCOLnative/http是
MCP_CLICKHOUSE_DATABASE库名是
MCP_CLICKHOUSE_USERNAME用户名是

⁠六、常用运维命令

# 查看日志
docker logs -f mcp-db

# 重启服务
docker restart mcp-db

# 停止服务
docker stop mcp-db && docker rm mcp-db

# 拉取最新镜像
docker pull fly32111/mcp-database-query-tools:latest

⁠七、常见问题

  1. ClickHouse 连接报错 unexpected packet [72]

    • 协议与端口不匹配:
      • Native 协议 → 端口 9000
      • HTTP 协议 → 端口 8123
  2. 连接超时

    • 检查数据库防火墙/安全组是否放行对应端口
    • 确认数据库允许外部连接
  3. 查询无结果

    • 检查 SQL 语法
    • 确认账号权限(建议使用只读账号)

⁠总结
  1. 镜像地址:fly32111/mcp-database-query-tools
  2. 服务端口:8080,MCP 路径:/mcp
  3. 支持双数据库,一行 Docker 命令即可启动
  4. 标准化 JSON 返回,适配所有 MCP 客户端

Tag summary

Content type

Image

Digest

sha256:fd1689955…

Size

11.8 MB

Last updated

8 months ago

docker pull fly32111/mcp-database-query-tools