多协议服务器容器

一个Docker镜像,包含多个Model-Context-Protocol (MCP)服务器,并通过统一入口点暴露它们,适用于需要快速部署多种协议服务器的场景。

  • by erhardtconsulting
  • Dockerfile
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 erhardtconsulting/mcp-collection

使用说明

MCP‑Collection

一个Docker镜像,它提供多个模型上下文协议(MCP)服务器,并通过统一的入口点公开它们。


✨ 亮点

  • 一张图片–多台服务器:在运行时通过单个参数选择所需的MCP服务器。
  • 开箱即用的远程准备:捆绑 超级通道 桥接服务器 stdio HTTP/SSE或WebSocket的接口。
  • Kubernetes优先:内置健康端点、非root用户和微型无发行版运行时层(≤80MB)。
  • 确定性构建:Python依赖项已锁定 uv.lock;不需要或不允许运行时安装。

🚀 入门

# pull the multi‑arch image
docker pull ghcr.io/erhardtconsulting/mcp‑collection:1.0.0

# list available MCP servers (shows help)
docker run --rm ghcr.io/erhardtconsulting/mcp‑collection

# run the Git server with extra flags for the underlying 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-collection
├── root
     ├──docker-entrypoint.sh # selects & validates the server, launches supergateway
     ├── .venv/              # isolated Python environment for all MCP servers
     ├── node_modules/       # isolated Node environment for all MCP servers
     ├── pyproject.toml      # dependency list for Python MCP servers
     └── package.json        # dependency list for Node MCP servers

入口点执行以下步骤:

  1. 激活虚拟环境(.venv).
  2. 阅读a 固定白名单 (ALLOWED_SERVERS).
  3. 验证用户提供的服务器名称。
  4. 经理 supergateway --stdio "<server> [extra‑args]".

☸️ 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
---
apiVersion: v1
kind: Service
metadata:
  name: mcp-collection
spec:
  selector: {app: mcp-collection}
  ports:
  - port: 80
    targetPort: 8080

将服务与Ingress或Gateway API资源配对,以将其对外公开。


🛡 安全说明

  • 容器以非根UID运行(1000:1000).
  • 之后不再保留外壳 exec,减少攻击面。
  • 使用反向代理或API‑网关来强制执行TLS和身份验证。

🤝 贡献

  1. 分叉回购
  2. 在中添加或更新MCP服务器 root/app/package.json/root/app/pyproject.toml 和 entrypoint.sh.
  3. 跑 make test 当地。
  4. 打开PR;GitHub Actions将整理、构建和扫描图像。

📜 许可证

根据MIT许可证发布-请参阅 LICENSE 了解详情。

重要:MIT许可证仅对作为执行环境的此容器有效。对于打包的MCP服务器,请检查其许可证。


MCP‑Collection 由以下人员维护 erhardt咨询有限公司 –快乐的黑客!