README
🚀 MCP‑Collection
MCP‑Collection 是一个 Docker 镜像,它将多个 Model‑Context‑Protocol (MCP) 服务器打包在一起,并通过统一入口点对外提供服务,方便用户使用和管理。
🚀 快速开始
拉取镜像
# 拉取多架构镜像
docker pull ghcr.io/erhardtconsulting/mcp‑collection:1.0.0
列出可用服务器
# 列出可用的 MCP 服务器(显示帮助信息)
docker run --rm ghcr.io/erhardtconsulting/mcp‑collection
运行特定服务器
# 运行 Git 服务器,并通过额外参数传递给底层 CLI
docker run --rm -p 8080:8080 \
ghcr.io/erhardtconsulting/mcp‑collection mcp-server-fetch --test
包含的 MCP 服务器
| 包名 |
|---------------------|
| mcp-maven-deps |
| mcp-searxng |
| mcp-server-calculator |
| mcp-server-fetch |
| mcp-server-puppeteer |
| mcp-server-qdrant |
| mcp-server-time |
| mcp-yahoo-finance |
| npm-search-mcp-server |
✨ 主要特性
- 一个镜像 – 多个服务器:运行时通过一个参数选择所需的 MCP 服务器。
- 远程就绪,开箱即用:内置的 supergateway 将服务器的
stdio接口桥接到 HTTP/SSE 或 WebSocket。 - Kubernetes 首先考量:内置健康端点、非 root 用户和极小的 distroless 运行时层(≤80MB)。
- 确定性构建:使用
uv.lock锁定 Python 依赖,不允许运行时安装或允许。
🐳 镜像布局
/mcp-collection
├── root
├── docker-entrypoint.sh # 选择并验证服务器,启动 supergateway
├── .venv/ # 所有 MCP 服务器的隔离 Python 环境
├── node_modules/ # 所有 MCP 服务器的隔离 Node 环境
├── pyproject.toml # Python MCP 服务器依赖列表
└── package.json # Node MCP 服务器依赖列表
入口点执行以下步骤:
- 激活虚拟环境(
.venv)。 - 阅读一个固定白名单 (
ALLOWED_SERVERS)。 - 验证用户提供的服务器名称。
- 执行
supergateway --stdio "<server> [额外参数]"。
☸️ Kubernetes 部署示例
apiVersion: apps/v1
kind: Deployment
metadata:
name: mcp-collection
spec:
selector:
matchLabels: {app: mcp-collection}
template:
metadata:
labels: {app: mcp-collection}
spec:
containers:
- name: mcp
image: ghcr.io/erhardtconsulting/mcp-collection:1.0.0
args: ["mcp-server-kubernetes"]
ports:
- containerPort: 8080
⚠️ 安全注意事项
- 镜像默认以非 root 用户运行。
- 不允许 shell 访问,确保容器安全。
📋 贡献指南
- 欢迎 fork 和 pull request!
- 提交前,请阅读 CONTRIBUTING.md。
Scan to join WeChat group