使用说明
一个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>
