
one-mcp/one-mcp
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
An easy way to deploy multiple MCP servers in one Docker container.
概要
An easy way to deploy multiple MCP servers in one Docker container. Based on multi-mcp. You can based the Dockerfile in this repo to add things you need. For example, you can use such a Dockerfile for the use of GitHub MCP. You can also initialize environments like rust and java like this: For normal MCP client, you can use config below: If your client does not support remote MCP server, or if you used authentication that some clients does not support, please use config below: If you are using Windows and Cline, you can try this: This tool aggregates all of your selected MCP servers under one server, and used namespace like server_name::tool_name to avoid conflicts and allow multiple servers to expose tools with the same base name. But for some MCP clients, the model does not use the namespaced name, but uses tool name standalone, which will cause error. You can try to use such a prompt to avoid that: You can change the mcp.json file to add what you want.
README
以下は原文 README の抜粋です。原文を見る。
One MCP
An easy way to deploy multiple MCP servers in one Docker container. Based on multi-mcp.
Getting Started
Local Deploy
docker pull ghcr.io/one-mcp/one-mcp:latest
docker run -p 7860:7860 one-mcp:latest
Extend the Image
You can based the Dockerfile in this repo to add things you need. For example, you can use such a Dockerfile for the use of GitHub MCP.
You can also initialize environments like rust and java like this:
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
Use in your MCP client
For normal MCP client, you can use config below:
{
"mcpServers": {
"remote-mcp": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "https://example.com/mcp",
"headers": {
"X-MCP-Token": "123456"
}
}
}
}
If your client does not support remote MCP server, or if you used authentication that some clients does not support, please use config below:
{
"mcpServers": {
"mcp-proxy": {
"command": "npx",
"args": [
"mcp-remote",
"https://example.com/sse",
"--header",
"Authorization: Bearer "
]
}
}
}
If you are using Windows and Cline, you can try this:
{
"mcpServers": {
"mcp-proxy": {
"command": "cmd",
"args": [
"/c",
"npx",
"mcp-remote",
"https://example.com/sse",
"--header", "Authorization: Bearer "
]
}
}
}
Extra prompts
This tool aggregates all of your selected MCP servers under one server, and used namespace like server_name::tool_name to avoid conflicts and allow multiple servers to expose tools with the same base name. But for some MCP clients, the model does not use the namespaced name, but uses tool name standalone, which will cause error.
You can try to use such a prompt to avoid that:
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`
Configuration
You can change the mcp.json file to add what you want.
The detailed configuration can be found here.
Authentication
Authentication in this project is controlled by the AUTH_TOKEN environment variable:
インストール
npx mcp-remote https://example.com/sse --header Authorization: Bearer <your-auth-token>設定
{
"mcpServers": {
"remote-mcp": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"type": "streamableHttp",
"url": "https://example.com/mcp",
"headers": {
"X-MCP-Token": "123456"
}
}
}
}