多MCP服务器部署工具

一个简化在单个Docker容器中部署多个MCP服务器的工具,支持自定义环境配置和客户端集成。

  • by One-MCP
  • Dockerfile
  • 本地部署
  • 11 星标
  • 更新于
在 GitHub 查看 One-MCP/one-mcp

使用说明

一个MCP

在一个Docker容器中部署多个MCP服务器的简单方法。基于 多mcp.

入门指南

本地部署

docker pull ghcr.io/one-mcp/one-mcp:latest
docker run -p 7860:7860 one-mcp:latest

扩展图像

你可以在这个仓库中基于Dockerfile来添加你需要的东西。 例如,您可以使用 这样的Dockerfile 供…使用 GitHub MCP.

您还可以像这样初始化rust和java等环境:

FROM ghcr.io/one-mcp/one-mcp:latest

# initiate rust environment
RUN apk add --no-cache rust cargo

# initiate java environment
RUN apk add --no-cache openjdk17-jre

# normally run the service
COPY mcp.json /app/mcp.json
EXPOSE 7860
CMD . .venv/bin/activate && hypercorn src.main:app --bind 0.0.0.0:7860

在MCP客户端中使用

对于普通的MCP客户端,您可以使用下面的配置:

{
  "mcpServers": {
    "remote-mcp": {
      "autoApprove": [],
      "disabled": false,
      "timeout": 60,
      "type": "streamableHttp",
      "url": "https://example.com/mcp",
      "headers": {
        "X-MCP-Token": "123456"
      }
    }
  }
}

如果您的客户端不支持远程MCP服务器,或者您使用 认证 有些客户端不支持,请使用下面的配置:

{
  "mcpServers": {
    "mcp-proxy": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://example.com/sse",
        "--header",
        "Authorization: Bearer <your-auth-token>"
      ]
    }
  }
}

如果您使用的是Windows和Cline,可以尝试以下操作:

{
  "mcpServers": {
    "mcp-proxy": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "mcp-remote",
        "https://example.com/sse",
        "--header", "Authorization: Bearer <your-auth-token>"
      ]
    }
  }
}

额外提示

此工具将所有选定的MCP服务器聚合到一个服务器下,并使用命名空间,如 server_name::tool_name 以避免冲突,并允许多个服务器公开具有相同基名的工具。但对于某些MCP客户端,模型不使用命名空间名称,而是单独使用工具名称,这将导致错误。 您可以尝试使用这样的提示来避免这种情况:

When you trying to use MCP tools, please use the `mcp-proxy` as server name and takes the namespace for tool names and resource names, like:
   1. `github::add_issue_comment` instead of `add_issue_comment`
   2. `context7::resolve-library-id` instead of `resolve-library-id`

配置

您可以更改 mcp.json 文件以添加您想要的内容。 详细配置见 这里.

认证

此项目中的身份验证由控制 AUTH_TOKEN 环境变量:

  • 如果未设置AUTH_TOKEN环境变量:将禁用身份验证,并且可以在没有令牌的情况下访问所有API请求。
  • 如果设置了AUTH_TOKEN环境变量:将启用身份验证。所有受保护的API请求都必须在HTTP请求头中包含Bearer Token,并且此令牌必须与AUTH_Token环境变量的值完全匹配。

启用身份验证后,您需要在请求中包含Authorization标头,如下所示:

Authorization: Bearer YOUR_AUTH_TOKEN_VALUE

或者:

X-MCP-Token: <Your-AUTH_TOKEN>