Token导航 LogoToken导航TokenDH.com
Db MCP Server Docker logo
开发工具stdio官方级别未说明来源级核验

Db MCP Server Docker

MCP Server

一个为AI助手设计的强大多数据库MCP服务器,支持PostgreSQL、MySQL、SQLite等多种数据库,提供SSE和STDIO两种传输模式。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
多数据库支持数据分析ShellClaudeClaude DesktopClaudeCursorVS Code

安装说明

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

作者 / 组织

MekayelAnik

提供方

MekayelAnik

最后核验

2026/5/17 20:21

运行时

Docker

快速接入

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

命令预览

docker run -d \

详细介绍

DB MCP服务器——Docker镜像

![License: GPL v3](https://www.gnu.org/licenses/gpl-3.0) ![Upstream License: MIT](https://github.com/FreePeak/db-mcp-server/blob/main/LICENSE) ![Upstream Repo](https://github.com/FreePeak/db-mcp-server) ](https://hub.docker.com/r/mekayelanik/db-mcp-server) ](https://hub.docker.com/r/mekayelanik/db-mcp-server) ![GHCR](https://ghcr.io/mekayelanik/db-mcp-server) ![Platforms](https://hub.docker.com/r/mekayelanik/db-mcp-server) ](https://go.dev) ![Build Status](https://github.com/MekayelAnik/db-mcp-server-docker/actions/workflows/docker-publish.yml) ![Last Commit](https://github.com/MekayelAnik/db-mcp-server-docker/commits/main)

Unofficial multi-arch Up-to-Date Docker image for FreePeak/db-mcp-server — a powerful multi-database MCP server for AI assistants.

Credits • Images • Quick Start • Docker CLI • Docker Compose • Networking • Security & Transport • Configuration • Supported Databases • Environment Variables • MCPJungle Gateway • License

______________________________________________________________________

学分

此存储库仅提供:

  • 多拱形Docker镜像(linux/amd64, linux/arm64, linux/arm/v7)
  • GitHub Actions工作流,用于手动构建/发布和推广操作
  • 这个以Docker为中心的使用文档

有关功能请求、错误报告和源代码贡献,请访问 上游仓库.

______________________________________________________________________

图像

图像通过手动工作流调度发布到两个注册表(Docker Build & Publish)并且意图在内容上保持相同。

通过工作流操作可以获得稳定的推广:

  • auto-check 促进 stable 5天后 latest 年龄(符合条件时)
  • mark-stable 执行显式/手动稳定升级
注册表图像
Docker Hubmekayelanik/db-mcp-server
GHCR。 ghcr.io/mekayelanik/db-mcp-server

标签

标签描述
latest从上游手动发布的最新版本 main
stable从已发布版本升级(5天后自动符合条件或手动 mark-stable)
YYYYMMDD-不可变标签——准确的上游提交和构建日期,例如。 20250312-19b7975
YYYYMMDD浮动日期标签——当天的最新版本

平台

平台架构
linux/amd64x86-64(大多数服务器、桌面Linux、WSL2)
linux/arm64ARM 64位(苹果硅通过Rosetta、AWS Graviton、Raspberry Pi 4/5)
linux/arm/v7ARM 32位(Raspberry Pi 2/3,较旧的ARM板)

______________________________________________________________________

😎 给我买杯咖啡☕︎

您的支持鼓励我继续创建/支持我的开源项目。 如果你在这个项目中发现了价值,你可以给我买杯咖啡,让我保持灵感。

快速开始

# Create a config file
cat > config.json  **注:** 使用Docker Compose服务名称作为 `host` 值——例如。 `postgres`, `mysql` --不是 `localhost`.

对于其他变体,重用此模式并调整服务映像+ `config.json` 连接类型/主机。

______________________________________________________________________

## 网络

### 连接到主机上的数据库

当你的数据库在主机上运行时(不是在Docker中),使用 `host.docker.internal` 而不是 `localhost`:

{ "connections": [ { "id": "host_postgres", "type": "postgres", "host": "host.docker.internal", "port": 5432, "name": "mydb", "user": "myuser", "password": "mypassword" } ] }


在Linux上, `host.docker.internal` 需要添加 `--add-host`:

docker run -d \ --name db-mcp-server \ -p 9092:9092 \ --add-host host.docker.internal:host-gateway \ -v $(pwd)/config.json:/app/config.json \ mekayelanik/db-mcp-server:latest


或者在Docker Compose中:

services: db-mcp-server: image: mekayelanik/db-mcp-server:latest extra_hosts: - "host.docker.internal:host-gateway"


______________________________________________________________________

### 加入现有网络

如果您的数据库已经在命名的Docker网络上运行:

docker run -d \ --name db-mcp-server \ -p 9092:9092 \ --network my-existing-network \ -v $(pwd)/config.json:/app/config.json \ mekayelanik/db-mcp-server:latest


在Docker Compose中,连接到外部网络:

services: db-mcp-server: image: mekayelanik/db-mcp-server:latest networks: - my-existing-network

networks: my-existing-network: external: true


______________________________________________________________________

### 暴露于局域网/远程客户端

默认情况下,容器绑定到所有接口(`0.0.0.0`).要限制到特定的主机IP,请执行以下操作:

docker run -d \ --name db-mcp-server \ -p 192.168.1.100:9092:9092 \ -v $(pwd)/config.json:/app/config.json \ mekayelanik/db-mcp-server:latest


______________________________________________________________________

### 反向代理背后(nginx示例)

upstream db_mcp { server 127.0.0.1:9092; }

server { listen 443 ssl; server_name mcp.example.com;

location / { proxy_pass http://db_mcp; proxy_http_version 1.1;

# Required for SSE (Server-Sent Events) proxy_set_header Connection ''; proxy_buffering off; proxy_cache off; chunked_transfer_encoding on;

proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }


______________________________________________________________________

## 安全与运输

### HTTPS应该是默认设置吗?

当前默认值为 `ENABLE_HTTPS=true`.

推荐做法:

- 仅限本地开发:仍建议使用HTTPS,但您可以设置 `ENABLE_HTTPS=false` 仅支持HTTP的工具。
- 任何远程/LAN/公共使用:使用HTTPS和API密钥身份验证。

### 此MCP暴露了什么传输?

应用程序传输模式:

- `sse` (默认)通过HTTP(S)
- `stdio` (用于基于本地命令的集成)

在容器服务器模式下运行时(`TRANSPORT_MODE=sse`):

- 公众听众:HAProxy打开 `SERVER_PORT` (默认值 `9092`)
- 内部应用程序侦听器:MCP服务器上 `INTERNAL_SERVER_PORT` (默认值 `38011`,仅在容器中本地)

上游服务器暴露的常见MCP HTTP端点包括:

- `/sse`
- `/jsonrpc`
- `/message`
- `/events`
- `/status`

### API密钥身份验证行为

集 `API_KEY` 以在HAProxy中启用承载令牌保护。

预期状态行为:

- 缺少身份验证标头-> `401 Unauthorized`
- 无效密钥-> `403 Forbidden`
- 有效密钥->请求被转发到后端(后端仍可能返回 `200`, `204`, `405`等,取决于端点/方法)

笔记:

- `Bearer` 方案匹配不敏感(`Bearer`/`bearer` 两者都工作)。
- 无效的API密钥格式失败关闭:容器在启动时退出。
- `/healthz` 有一个仅用于本地主机的内部健康检查旁路。

### HTTPS和证书行为

如果 `ENABLE_HTTPS=true`,HAProxy在上提供TLS服务 `SERVER_PORT`.
默认最低TLS版本为 `TLSv1.3`.

### HTTP协议版本(可选模式)

集 `HTTP_VERSION_MODE` 以控制公共监听器上的协议协商:

- `auto` (默认):尝试 `h3` 首先,然后回到 `h2`那么 `h1` (`http/1.1`)
- `all`:行为与 `auto`
- `h1`:仅强制HTTP/1.1
- `h2`:仅通过TLS强制HTTP/2
- `h1+h2`:允许HTTP/1.1和HTTP/2
- `h3`:请求HTTP/3支持(QUIC)和标准TLS回退(`h1+h2`)

笔记:

- `h2` 和 `h3` 需要TLS(`ENABLE_HTTPS=true`).
- 如果 `ENABLE_HTTPS=false`,侦听器将回退到HTTP/1.1。
- 如果 `h3` 已请求,但HAProxy构建中的QUIC不可用,启动会记录一条警告,并在没有 `h3`.

#### 推荐的默认值和模式意图

- 生产默认值: `HTTP_VERSION_MODE=auto`
- `auto` / `all`:先尝试HTTP/3,然后是HTTP/2,然后是HTTP/1.1回退
- `h1`:严格兼容模式
- `h2`:仅通过TLS强制HTTP/2
- `h3`:使用安全的TCP回退请求HTTP/3

#### Docker CLI示例(按模式)

汽车链条(`h3 -> h2 -> h1`)(默认):

docker run -d \ --name db-mcp-auto \ -p 9092:9092 \ -p 9092:9092/udp \ -v $(pwd)/config.json:/app/config.json:ro \ -e ENABLE_HTTPS=true \ -e HTTP_VERSION_MODE=auto \ -e API_KEY='replace_with_a_strong_key' \ mekayelanik/db-mcp-server:latest


仅限HTTP/1.1:

docker run -d \ --name db-mcp-h1 \ -p 9092:9092 \ -v $(pwd)/config.json:/app/config.json:ro \ -e ENABLE_HTTPS=true \ -e HTTP_VERSION_MODE=h1 \ -e API_KEY='replace_with_a_strong_key' \ mekayelanik/db-mcp-server:latest


仅限HTTP/2:

docker run -d \ --name db-mcp-h2 \ -p 9092:9092 \ -v $(pwd)/config.json:/app/config.json:ro \ -e ENABLE_HTTPS=true \ -e HTTP_VERSION_MODE=h2 \ -e API_KEY='replace_with_a_strong_key' \ mekayelanik/db-mcp-server:latest


请求HTTP/3(加回退):

docker run -d \ --name db-mcp-h3 \ -p 9092:9092 \ -p 9092:9092/udp \ -v $(pwd)/config.json:/app/config.json:ro \ -e ENABLE_HTTPS=true \ -e HTTP_VERSION_MODE=h3 \ -e API_KEY='replace_with_a_strong_key' \ mekayelanik/db-mcp-server:latest


#### Docker编写代码片段

services: db-mcp-server: image: mekayelanik/db-mcp-server:latest ports: - "9092:9092/tcp" - "9092:9092/udp" environment: ENABLE_HTTPS: "true" HTTP_VERSION_MODE: "auto" API_KEY: "replace_with_a_strong_key" volumes: - ./config.json:/app/config.json:ro


#### 如何在运行时验证有效模式

检查启动日志:

docker logs db-mcp-auto | grep -E 'HTTP versions enabled|HTTPS enabled|falling back'


检查生成的HAProxy绑定:

docker exec db-mcp-auto sh -lc "grep -n 'bind ' /tmp/haproxy.cfg"


预计为 `auto`/`all` 当QUIC可用时:

- 一个TLS TCP与ALPN绑定 `h2,http/1.1`
- 一个QUIC与ALPN绑定 `h3`

预计为 `h1`:

- 一个TLS TCP与ALPN绑定 `http/1.1`

证书优先级:

1. 如果 `TLS_PEM_PATH` 存在,直接使用。
1. 否则,如果两者都有 `TLS_CERT_PATH` 和 `TLS_KEY_PATH` 它们被组合成PEM。
1. 否则,将使用自动生成自签名证书 `TLS_CN` 和 `TLS_SAN`.

### 使用Cloudflare Origin证书(建议在Cloudflare之后使用)

如果您的流量是通过Cloudflare代理的,请使用Cloudflare Origin证书,而不是自动生成的自签名证书。

1. 在Cloudflare Dashboard中,为您的主机名创建一个源证书,例如 `mcp.example.com`.
1. 将证书和私钥PEM内容保存到主机文件。

mkdir -p certs

Paste certificate PEM from Cloudflare

cat > certs/cloudflare-origin.crt certs/cloudflare-origin.key 重要提示: MCPJungle的SSE运输 支持自定义 headers 在注册配置中。这 headers 字段仅用于 streamable_http 运输。对于具有API密钥身份验证的SSE 必须 使用 bearer_token 相反。

带API密钥的SSE(正确)

注册配置(mcp1.json):

{
    "name": "db-mcp-server",
    "url": "http://:9092/sse",
    "transport": "sse",
    "bearer_token": "REPLACE_WITH_API_KEY"
}

注册:

mcpjungle register -c mcp1.json

不带API密钥的SSE

如果容器正在运行 API_KEY 未设置(身份验证已禁用):

{
    "name": "db-mcp-server",
    "url": "http://:9092/sse",
    "transport": "sse"
}

常见错误

以下配置将 401失败 因为 headers 在MCPJungle中,SSE传输被默默忽略:

{
    "name": "db-mcp-server",
    "url": "http://:9092/sse",
    "transport": "sse",
    "headers": {
        "Authorization": "Bearer REPLACE_WITH_API_KEY"
    }
}

这是MCPJungle SSE客户端实现中的一个限制(createSSEMcpServerConnutil.go)--那个 SSEConfig struct仅支持 urlbearer_token,而不是任意的标题。使用 bearer_token 相反。

注: 上游 FreePeak/db mcp服务器 目前仅支持 ssestdio 运输方式。流式HTTP(streamable_http)服务器尚不支持,因此仅使用 "transport": "sse" 在MCPJungle注册时。

Claude Code、Codex和类似客户端的快速兼容性说明

  • 如果您的客户端支持基于URL的MCP服务器,请首选HTTPS+SSE模板。
  • 如果您的客户端支持基于命令的MCP服务器,请使用STDIO模板。
  • 如果客户端不支持URL模式下的自定义标头,请将容器放置在注入身份验证的可信反向代理后面,或使用STDIO模式。

______________________________________________________________________

许可证

此存储库(构建脚本、Dockerfile、工作流和文档)根据 GNU通用公共许可证v3.0.

______________________________________________________________________

建在上面 FreePeak/db mcp服务器

______________________________________________________________________

😎 给我买杯咖啡☕︎

您的支持鼓励我继续创建/支持我的开源项目。 如果你在这个项目中发现了价值,你可以给我买杯咖啡,让我保持灵感。

目录标签

目录标签

多数据库支持数据分析ShellClaude本地部署数据库管理Docker镜像AI助手集成

支持客户端

Claude DesktopClaudeCursorVS Code

接入字段

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

stdio

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

token

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdiotoken部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP