Atrax logo

Atrax

by metcalfc

Atrax is a proxy for Model Context Protocol (MCP) servers that aggregates multiple MCP servers and presents them as a single unified interface. It funnels resources from multiple servers into one.

View on GitHub

Last updated: N/A

Atrax: MCP Server Aggregation Proxy v0.1.0

              .  .               __
             .|  |.      _____ _/  |_____________  ___  ___
             ||  ||      \__  \\   __\_  __ \__  \ \  \/  /
             \\()//       / __ \|  |  |  | \// __ \_>    <
             .={}=.      (____  /__|  |__|  (____  /__/\_ \
            / /`'\ \          \/                 \/      \/
            ` \  / '
               `'           MCP PROXY FOR THE WEB v0.1.0

Atrax is a proxy for Model Context Protocol (MCP) servers that aggregates multiple MCP servers and presents them as a single unified interface. The name comes from the funnel-web spider, reflecting how it funnels resources from multiple servers into one.

Features

  • Resource Aggregation: Combine resources from multiple servers with configurable conflict resolution
  • Transparent Proxying: Present a unified MCP server interface to clients
  • Protocol Compliance: Strict adherence to the MCP protocol specification
  • Modular Design: Clear separation of concerns between components
  • Multiple Transport Types: Support for STDIO, HTTP/SSE, and Docker transports
  • Enhanced Error Handling: Detailed error reporting with contextual information
  • Web Integration: HTTP/SSE transport for browser and web-based clients
  • Authentication Support: Token-based authentication for securing server access

Quick Start

# Clone the repository
git clone https://github.com/yourusername/atrax.git
cd atrax

# Setup development environment
direnv allow  # Sets up Python venv and pre-commit
npm install

# Build the project
npm run build

# Run the server (no authentication)
npm run serve

# Run with token authentication
npm run serve:auth

# Run smoke tests
npm run test:smoke

Documentation Map

Examples

The examples/ directory contains example server implementations:

  • Memory server: A simple MCP server that stores a knowledge graph in memory
  • Echo server: A basic MCP server that echoes back requests
  • HTTP Echo server: An MCP server that uses HTTP/SSE transport to communicate

Run examples with:

# STDIO-based servers
npm run memory-server
npm run echo-server

# HTTP/SSE-based server
npm run http-echo-server

# Client examples
npm run echo-client      # Connect to STDIO Echo server
npm run memory-client    # Connect to STDIO Memory server
npm run http-echo-client # Connect to HTTP/SSE Echo server

License

MIT