项目简介
Atrax 是一个 Model Context Protocol (MCP) 代理服务器,它充当 LLM 客户端和多个后端 MCP 服务器之间的桥梁。通过 Atrax,您可以将多个独立的 MCP 服务器整合到一个统一的访问入口,简化客户端配置和管理,并实现资源的聚合和统一访问。Atrax 自身并不直接提供资源、工具或 Prompt,而是作为代理,将客户端的请求转发到后端的 MCP 服务器,并将响应返回给客户端。
主要功能点
- MCP 服务器聚合: 将多个独立的 MCP 服务器整合为一个统一的接口。
- 资源聚合: 汇聚来自多个 MCP 服务器的资源,并支持配置冲突解决策略。
- 透明代理: 向客户端呈现统一的 MCP 服务器接口,客户端无需感知后端服务器的复杂性。
- 协议兼容: 严格遵循 MCP 协议规范。
- 多种传输协议: 支持 STDIO, HTTP/SSE 和 Docker 等多种传输方式。
- 增强的错误处理: 提供详细的错误报告和上下文信息。
- Web 集成: 通过 HTTP/SSE 传输支持浏览器和 Web 应用客户端。
- 认证支持: 支持基于 Token 的认证机制,保障服务器访问安全。
安装步骤
-
克隆仓库
git clone https://github.com/metcalfc/atrax.git cd atrax -
设置开发环境
确保已安装 'direnv' 和 'npm'。
direnv allow npm install -
构建项目
npm run build
服务器配置
Atrax 作为 MCP 代理服务器,其配置主要用于指定需要代理的后端 MCP 服务器信息。配置文件通常为 'atrax.config.json'。以下是一个配置示例,用于定义两个后端 MCP 服务器:
{ "port": 3000, "host": "localhost", "auth": { "type": "none" }, "mcpServers": { "memory-server": { "transportType": "stdio", "command": "node", "args": ["./examples/servers/scripts/memory-server.js"], "description": "内存知识图谱服务器", "tags": ["knowledge-graph"] }, "echo-server": { "transportType": "stdio", "command": "node", "args": ["./examples/servers/scripts/echo-server.js"], "description": "回声测试服务器", "tags": ["test"] } } }
配置参数说明:
- 'port': Atrax 代理服务器监听的端口号。
- 'host': Atrax 代理服务器绑定的主机地址。
- 'auth': 认证配置,例如 "none" 表示不启用认证。
- 'mcpServers': 后端 MCP 服务器配置,使用服务器名称作为键值。
- 'server name' (例如: "memory-server", "echo-server"): 后端 MCP 服务器的名称,用于在 Atrax 中唯一标识和管理该服务器。
- 'transportType': MCP 服务器的传输类型,例如 "stdio" (标准输入输出)。
- 'command': 启动 MCP 服务器的命令,例如 "node"。
- 'args': 传递给启动命令的参数数组,例如 '["./examples/servers/scripts/memory-server.js"]'。
- 'description': 服务器的描述信息 (可选)。
- 'tags': 服务器的标签,用于分类和管理 (可选)。
- 'server name' (例如: "memory-server", "echo-server"): 后端 MCP 服务器的名称,用于在 Atrax 中唯一标识和管理该服务器。
注意: MCP 客户端需要配置的是 Atrax 代理服务器 的地址和端口,而不是后端 MCP 服务器的配置。客户端通过 Atrax 代理服务器来访问所有聚合的 MCP 功能。
基本使用方法
-
启动 Atrax 代理服务器
- 无认证启动: 'npm run serve'
- Token 认证启动: 'npm run serve:auth' (需要配置 Token)
-
配置 MCP 客户端
将 MCP 客户端连接到 Atrax 代理服务器的地址和端口。例如,对于 MCP Inspector 客户端,配置 SSE URL 为 'http://localhost:3000/sse' (假设 Atrax 运行在本地 3000 端口)。
-
访问聚合的 MCP 服务
客户端通过 Atrax 代理服务器即可访问所有后端 MCP 服务器提供的资源、工具和 Prompt,无需单独配置每个后端服务器。
信息
分类
网页与API