
Agent
一个统一的 Model Context Protocol 服务器实现,将多个 MCP 服务器聚合为一个。
概述
1MCP - 一个适用于所有场景的MCP服务器
一个统一的模型上下文协议服务器实现,将多个MCP服务器聚合到一个接口中。
概述
1MCP(One MCP)旨在简化与AI助手的工作方式。无需为不同的客户端(如Claude Desktop、Cherry Studio、Cursor、Roo Code、Claude等)配置多个MCP服务器,1MCP提供了一个单一的、统一的服务器,具有以下功能:
- 将多个MCP服务器聚合到一个统一的接口中
- 通过消除冗余的服务器实例减少系统资源使用
- 简化不同AI助手之间的配置管理
- 提供一种标准化的方式让AI模型与外部工具和资源交互
- 支持动态配置重载而无需重启服务器
- 处理优雅关闭和资源清理
快速开始
要使Cursor能够使用已经在Claude Desktop中配置的现有MCP服务器,请按照以下步骤操作:
- 使用Claude Desktop配置文件运行1MCP服务器:
bash
npx -y @1mcp/agent --config ~/Library/Application\ Support/Claude/claude_desktop_config.json
- 将1MCP服务器添加到您的Cursor配置文件(
~/.cursor/mcp.json
)中:
json
{
"mcpServers": {
"1mcp": {
"type": "http",
"url": "http://localhost:3050/sse"
}
}
}
- 开始使用!
使用方法
您可以直接使用npx
运行服务器:
bash
# 基本用法(使用SSE传输启动服务器)
npx -y @1mcp/agent
# 使用现有的Claude Desktop配置
npx -y @1mcp/agent --config ~/Library/Application\ Support/Claude/claude_desktop_config.json
# 使用stdio传输而不是SSE
npx -y @1mcp/agent --transport stdio
# 显示所有可用选项
npx -y @1mcp/agent --help
可用选项:
--transport, -t
: 选择传输类型("stdio"或"sse",默认: "sse")--config, -c
: 使用特定的配置文件--port, -P
: 更改SSE端口(默认:3050)--host, -H
: 更改SSE主机(默认:localhost)--tags, -g
: 通过标签过滤服务器(参见下面的“标签”部分)--help, -h
: 显示帮助
使用环境变量的例子:
bash
# 使用环境变量
ONE_MCP_PORT=3051 ONE_MCP_TAGS=network,filesystem npx -y @1mcp/agent
# 或者在您的shell配置中
export ONE_MCP_PORT=3051
export ONE_MCP_TAGS=network,filesystem
npx -y @1mcp/agent
Docker
您也可以使用Docker运行1MCP:
bash
# 拉取最新镜像
docker pull ghcr.io/1mcp-app/agent:latest
# 使用SSE传输(默认)运行
docker run -p 3050:3050 ghcr.io/1mcp-app/agent
# 使用自定义配置文件运行
docker run -p 3050:3050 -v /path/to/config.json:/config.json ghcr.io/1mcp-app/agent --config /config.json
# 使用stdio传输运行
docker run -i ghcr.io/1mcp-app/agent --transport stdio
可用镜像标签:
latest
: 最新稳定版本vX.Y.Z
: 特定版本(例如v1.0.0
)sha-<commit>
: 特定提交
环境变量
您可以使用前缀为ONE_MCP_
的环境变量来配置1MCP:
ONE_MCP_TRANSPORT
: 传输类型("stdio"或"sse",默认: "sse")ONE_MCP_PORT
: SSE端口(默认:3050)ONE_MCP_HOST
: SSE主机(默认: "localhost")ONE_MCP_CONFIG
: 配置文件路径ONE_MCP_TAGS
: 以逗号分隔的标签列表,用于过滤服务器
使用环境变量的例子:
bash
docker run -p 3051:3051 \
-e ONE_MCP_PORT=3051 \
-e ONE_MCP_TAGS=network,filesystem \
ghcr.io/1mcp-app/agent
标签的理解
标签帮助您控制哪些MCP服务器可供不同的客户端使用。可以将标签视为描述每个服务器功能的标签。
如何使用标签
- 在您的服务器配置中:为每个服务器添加标签以描述其功能
json
{
"mcpServers": {
"web-server": {
"command": "uvx",
"args": ["mcp-server-fetch"],
"tags": ["network", "web"],
"disabled": false
},
"file-server": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "~/Downloads"],
"tags": ["filesystem"],
"disabled": false
}
}
}
- 在以stdio模式启动1MCP时:您可以按标签过滤服务器
bash
# 仅启动带有"network"标签的服务器
npx -y @1mcp/agent --transport stdio --tags "network"
# 启动带有"network"或"filesystem"标签的服务器
npx -y @1mcp/agent --transport stdio --tags "network,filesystem"
- 在使用SSE传输时:客户端可以请求具有特定标签的服务器
json
{
"mcpServers": {
"1mcp": {
"type": "http",
"url": "http://localhost:3050/sse?tags=network" // 仅连接到具备网络功能的服务器
}
}
}
示例标签:
network
: 用于执行网络请求的服务器filesystem
: 用于处理文件操作的服务器memory
: 用于提供内存/存储的服务器shell
: 用于运行shell命令的服务器db
: 用于处理数据库操作的服务器
配置
全局配置
服务器会自动在全局位置管理配置:
- macOS/Linux:
~/.config/1mcp/mcp.json
- Windows:
%APPDATA%/1mcp/mcp.json
配置文件格式
json
{
"mcpServers": {
"mcp-server-fetch": {
"command": "uvx",
"args": [
"mcp-server-fetch"
],
"disabled": false
},
"server-memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
],
"disabled": false
}
}
}
工作原理
系统架构
|sse| MCP
A2 -->|sse| MCP
A3 -->|sse| MCP
A4 -->|sse| MCP
MCP --> |sse| S1
MCP --> |stdio| S2
MCP --> |stdio| S3">graph TB
subgraph "AI Assistants"
A1[Claude Desktop]
A2[Cursor]
A3[Cherry Studio]
A4[Roo Code]
end
subgraph "1MCP Server"
MCP[1MCP Agent]
end
subgraph "MCP Servers"
S1[Server 1]
S2[Server 2]
S3[Server 3]
end
A1 -->|sse| MCP
A2 -->|sse| MCP
A3 -->|sse| MCP
A4 -->|sse| MCP
MCP --> |sse| S1
MCP --> |stdio| S2
MCP --> |stdio| S3
请求流程
sequenceDiagram
participant Client as AI Assistant
participant 1MCP as 1MCP Server
participant MCP as MCP Servers
Client->>1MCP: 发送MCP请求
activate 1MCP
1MCP->>1MCP: 验证请求
1MCP->>1MCP: 加载配置
1MCP->>MCP: 转发请求
activate MCP
MCP-->>1MCP: 响应
deactivate MCP
1MCP-->>Client: 转发响应
deactivate 1MCP
开发
安装依赖项:
bash
pnpm install
构建服务器:
bash
pnpm build
开发时自动重建:
bash
pnpm watch
运行服务器:
bash
pnpm dev
调试
使用MCP Inspector,这是一个包脚本:
bash
pnpm inspector
Inspector将提供一个URL,以便您在浏览器中访问调试工具。