项目简介

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 的认证机制,保障服务器访问安全。

安装步骤

  1. 克隆仓库

    git clone https://github.com/metcalfc/atrax.git
    cd atrax
  2. 设置开发环境

    确保已安装 'direnv' 和 'npm'。

    direnv allow
    npm install
  3. 构建项目

    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': 服务器的标签,用于分类和管理 (可选)。

注意: MCP 客户端需要配置的是 Atrax 代理服务器 的地址和端口,而不是后端 MCP 服务器的配置。客户端通过 Atrax 代理服务器来访问所有聚合的 MCP 功能。

基本使用方法

  1. 启动 Atrax 代理服务器

    • 无认证启动: 'npm run serve'
    • Token 认证启动: 'npm run serve:auth' (需要配置 Token)
  2. 配置 MCP 客户端

    将 MCP 客户端连接到 Atrax 代理服务器的地址和端口。例如,对于 MCP Inspector 客户端,配置 SSE URL 为 'http://localhost:3000/sse' (假设 Atrax 运行在本地 3000 端口)。

  3. 访问聚合的 MCP 服务

    客户端通过 Atrax 代理服务器即可访问所有后端 MCP 服务器提供的资源、工具和 Prompt,无需单独配置每个后端服务器。

信息

分类

网页与API