Token导航 LogoToken导航TokenDH.com
MCP Compose logo
运维云端未说明官方级别未说明来源级核验

MCP Compose

MCP Server

Run and manage MCP servers as Docker containers with a unified HTTP endpoint. Inspired by Docker compose.

工具数

0

提示词数

0

GitHub Stars

55

资源数

0
容器编排DockerClaudeClaude DesktopClaude

安装说明

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

作者 / 组织

phildougherty

提供方

phildougherty

最后核验

2026/5/18 04:03

快速接入

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

详细介绍

MCP-Compose

![codecov](https://codecov.io/gh/phildougherty/mcp-compose) ![Go Report Card](https://goreportcard.com/report/github.com/phildougherty/mcp-compose) ![License: AGPL v3](https://www.gnu.org/licenses/agpl-3.0) ![Release](https://github.com/phildougherty/mcp-compose/releases)

使用Docker Compose部署模型上下文协议(Model Context Protocol, MCP)服务器。通过统一配置、HTTP代理和容器编排来运行多个MCP服务器。

MCP-Compose Demo

特点/特性

  • Docker Compose 风格的 YAML 配置
  • 带有自动协议转换功能的HTTP代理(STDIO → HTTP)
  • 原生支持 Docker 和 Podman
  • 会话管理和连接池
  • 内置仪表板和监控功能
  • OpenAPI规范生成

安装

git clone https://github.com/phildougherty/mcp-compose.git
cd mcp-compose
make build

# Add to PATH
sudo cp build/mcp-compose /usr/local/bin/
# OR
export PATH="$PWD/build:$PATH"

快速入门

交互式设置

mcp-compose init

按照提示创建您的配置。

手动设置

创建 mcp-compose.yaml:

version: '1'
servers:
  filesystem:
    protocol: stdio
    command: npx
    args:
      - "-y"
      - "@modelcontextprotocol/server-filesystem"
      - "/tmp"
    capabilities: [resources, tools]

启动服务器:

mcp-compose up

启动HTTP代理:

mcp-compose proxy --port 9876

测试它:

curl http://localhost:9876/api/servers

工作实例

基础 - 文件系统 + 内存

version: '1'
servers:
  filesystem:
    protocol: stdio
    command: npx
    args:
      - "-y"
      - "@modelcontextprotocol/server-filesystem"
      - "${HOME}"
    capabilities: [resources, tools]
    volumes:
      - "${HOME}:${HOME}:ro"

  memory:
    protocol: stdio
    command: npx
    args:
      - "-y"
      - "@modelcontextprotocol/server-memory"
    capabilities: [resources, tools]

使用网页搜索

添加 Brave 搜索(需要从 https://brave.com/search/api/ 获取 API 密钥):

  brave-search:
    protocol: stdio
    command: npx
    args:
      - "-y"
      - "@modelcontextprotocol/server-brave-search"
    capabilities: [tools]
    env:
      BRAVE_API_KEY: "${BRAVE_API_KEY}"
export BRAVE_API_KEY="your-api-key"
mcp-compose up

示例/ 以进行更多配置。

命令

服务管理

mcp-compose up                 # Start all services
mcp-compose up filesystem      # Start specific service
mcp-compose down               # Stop all services
mcp-compose down filesystem    # Stop specific service
mcp-compose restart            # Restart all services
mcp-compose ps                 # List service status
mcp-compose logs filesystem    # View logs

系统服务

系统服务是基础设施组件(代理、仪表板、任务调度器、内存)。

mcp-compose system up          # Start system services
mcp-compose system down        # Stop system services
mcp-compose system ps          # List system services
mcp-compose system status      # Health overview
mcp-compose system logs proxy  # View system logs

代理

mcp-compose proxy --port 9876              # Start proxy
mcp-compose proxy --api-key $(openssl rand -hex 32)  # With authentication

仪表盘

mcp-compose dashboard          # Start web dashboard
# Access at http://localhost:3111

配置

mcp-compose init               # Interactive setup wizard
mcp-compose validate           # Validate config file
mcp-compose create-config --type claude  # Generate client config

配置参考

基本结构

version: '1'

# Optional: proxy authentication
proxy_auth:
  enabled: true
  api_key: "${MCP_API_KEY}"

servers:
  my-server:
    protocol: string           # stdio, http, sse
    command: string            # Executable (e.g., npx, python, node)
    args: [string]             # Command arguments
    capabilities: [string]     # tools, resources, prompts, sampling
    env:                       # Environment variables
      KEY: value
    volumes:                   # Volume mounts
      - "host:container:mode"

协议类型

STDIO(标准输入输出) (对于NPM包最常见的情况):

servers:
  my-server:
    protocol: stdio
    command: npx
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]

HTTP(超文本传输协议)

servers:
  my-server:
    protocol: http
    http_port: 8080

上海证券交易所 (服务器发送事件):

servers:
  my-server:
    protocol: sse
    http_port: 8080
    sse_path: /events

卷挂载

volumes:
  - "/host/path:/container/path:ro"   # Read-only
  - "/host/path:/container/path:rw"   # Read-write
  - "${HOME}/code:/workspace:ro"      # Environment variables

环境变量

在你的配置中:

env:
  API_KEY: "${MY_API_KEY}"

在你的shell中:

export MY_API_KEY="secret"
mcp-compose up

安全

永远不要将机密信息存储在配置文件中。请使用环境变量:

# Generate secure keys
export MCP_API_KEY=$(openssl rand -hex 32)
export OAUTH_CLIENT_SECRET=$(openssl rand -hex 32)

配置中的引用:

proxy_auth:
  api_key: "${MCP_API_KEY}"

客户集成

Claude Desktop(可译为“Claude桌面版”或根据具体语境简化为“Claude桌面”)

生成配置:

mcp-compose create-config --type claude --output ./claude-config

将内容复制到Claude桌面设置中。

直接HTTP

# List tools
curl -X POST http://localhost:9876/filesystem \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

# Call tool
curl -X POST http://localhost:9876/filesystem \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc":"2.0",
    "id":1,
    "method":"tools/call",
    "params":{
      "name":"read_file",
      "arguments":{"path":"/tmp/test.txt"}
    }
  }'

故障排除

检查服务状态

mcp-compose ps
mcp-compose system status

查看日志

mcp-compose logs filesystem
mcp-compose system logs proxy

验证配置

mcp-compose validate

常见问题

端口已被使用:

lsof -i :9876
mcp-compose proxy --port 9877  # Use different port

容器无法启动:

mcp-compose logs my-server     # Check logs
docker ps -a                   # Check container status

认证错误:

echo $MCP_API_KEY              # Verify key is set

要求

  • Docker 20.10+ 或 Podman 3.0+
  • Linux、macOS 或带有 WSL2 的 Windows
  • Go 1.19+(用于从源代码构建)

建筑

┌──────────────────────────────┐
│     MCP-Compose Proxy        │
│  (HTTP API + Authentication) │
└──────────────┬───────────────┘
               │
        ┌──────┼──────┐
        │      │      │
    ┌───▼──┐ ┌─▼──┐ ┌▼───┐
    │ FS   │ │ Mem│ │Search│
    │STDIO │ │HTTP│ │ SSE  │
    └──────┘ └────┘ └──────┘

许可证

GNU Affero 通用公共许可证 v3.0 - 请参阅 许可证.

链接

目录标签

目录标签

容器编排DockerClaudedeveloper-toolsGo本地部署HTTP代理Podman服务器管理

支持客户端

Claude DesktopClaude

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP