返回市场
一麦普

一麦普

作者:One-MCP10 星标更新:2025-06-15

项目介绍

One MCP

一种在单个Docker容器中部署多个MCP服务器的简便方法。基于multi-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

# 初始化rust环境
RUN apk add --no-cache rust cargo

# 初始化java环境
RUN apk add --no-cache openjdk17-jre

# 正常运行服务
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客户端,模型不会使用命名空间名称,而是单独使用工具名称,这会导致错误。 你可以尝试使用以下提示来避免这种情况:

当你尝试使用MCP工具时,请使用`mcp-proxy`作为服务器名称,并对工具名称和资源名称采取命名空间,例如:
   1. 使用`github::add_issue_comment`而不是`add_issue_comment`
   2. 使用`context7::resolve-library-id`而不是`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>