Skip to main content

Stateless HTTP proxy that exposes any REST API as an MCP tool

Project description

MCPlex

License: MIT Python 3.11+ CI MCP

A stateless HTTP proxy that exposes any REST API as an MCP tool — no SDK, no wrapper library, no per-connector code.

MCPlex sits between AI coding agents (Claude Code, Cursor, Codex) and your backend REST APIs. Agents discover tools via the standard MCP tools/list handshake and call them via tools/call. MCPlex translates those calls into HTTP requests to your backend.

The key idea: connectors are YAML, not Python. Adding a new tool means adding a few lines of config — method, URL path, parameter mapping. The generic HTTP proxy handler does the rest.

What It's Meant to Do

Engineering teams build internal AI tools — incident responders, CI diagnosers, policy checkers, DORA metric dashboards. Each tool ships with its own UI or CLI. Adoption is low because engineers won't learn N different interfaces.

MCPlex changes the distribution model: one MCP server, all tools. Agents discover everything on startup. Engineers never leave their editor.

The repo includes 4 public connectors (ai-code-guardian, ci-doctor, sprint-intelligence, ai-incident-commander) as a concrete demonstration — 9 tools across 4 systems, all exposed through a single /mcp endpoint.

What It Is Not

  • Not an AI framework. MCPlex contains zero LLM calls, zero prompts, zero model dependencies. It is a pure HTTP proxy.
  • Not an MCP SDK. MCPlex implements the MCP wire protocol directly. Backend tools never import an MCP library or add an MCP dependency.
  • Not a replacement for backend APIs. MCPlex does not transform data or add business logic. It proxies calls to your existing REST endpoints.

Architecture

                    config.yaml
                         │
              ┌──────────▼──────────┐
              │  Tool Registry      │
              │  name → route       │
              └──────────┬──────────┘
                         │
              ┌──────────▼──────────┐
              │  HTTP Proxy Handler │
              │  (generic — reads   │
              │   method, path,     │
              │   param_mapping     │
              │   from config)      │
              └────┬────┬────┬──────┘
                   │    │    │
             ┌─────▼┐ ┌▼───┐┌▼────┐
             │ API A│ │API B││API C│
             └──────┘ └────┘└─────┘
  1. On startup, MCPlex reads config.yaml and builds a tool registry.
  2. Each type: http connector generates an async proxy handler.
  3. An agent connects and calls tools/list — MCPlex returns the catalog.
  4. The agent calls tools/call — MCPlex maps MCP parameters to HTTP parameters and makes the request.
  5. The backend response is returned as an MCP tool result.

Two transport modes, auto-detected by the Accept header:

Accept header Response format
application/json JSON-RPC over HTTP POST
text/event-stream Server-Sent Events (Streamable HTTP)

Quick Start

pip install mcplex

# Copy and edit environment (for docker-compose)
cp .env.example .env

# Start with default config
mcplex serve --config config.yaml

Connect Claude Code: claude --mcp http://localhost:8000/mcp

Included Connectors

4 MIT-licensed public repos, wired as MCP tools via thin API adapters (see Integration Guide for the pattern):

Connector Repo Tools
guardian ai-code-guardian guardian_check_policy, guardian_get_coverage
ci-agent ci-doctor ci_diagnose_failure, ci_get_pipeline_history
sprintsense sprint-intelligence dora_get_metrics, dora_get_trend
incident-cmdr ai-incident-commander incident_query_active, incident_query_history, incident_get_timeline

Total: 9 MCP tools across 4 AI systems (3 real repos + 1 test-bench mock).

Docs

Doc Description
Integration Guide How to connect repos via MCP API adapters
Specification Architecture, transport, connector design
PRD Product requirements and user stories
Sprint Plan (WBS) Work breakdown and epics
Config Reference YAML schema for connectors
E2E Test Plan & Results Test plan, 9/9 results, 15 screenshots
Code Review Internal code review

Roadmap

Shipped (v0.3.0)

  • Generic HTTP proxy connector (YAML-driven)
  • Streamable HTTP + SSE auto-detect
  • 4 public repo integrations
  • Docker compose deployment
  • 41 unit tests, 9 E2E tests passing

Next

  • OSS readiness: issue templates, CODE_OF_CONDUCT, SECURITY.md
  • GitHub Actions CI
  • Contributing guide
  • Claude Code demo recording

Future (v1.0.0)

  • OAuth 2.0 / OIDC authorization
  • Write tool approval flow
  • Unified audit logging
  • PyPI publish
  • Rate limiting and config hot-reload

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcplex_backplane-0.3.0.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcplex_backplane-0.3.0-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file mcplex_backplane-0.3.0.tar.gz.

File metadata

  • Download URL: mcplex_backplane-0.3.0.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for mcplex_backplane-0.3.0.tar.gz
Algorithm Hash digest
SHA256 3fe2e0be7566e5c64f8acdd70948b5bb1786cb45505fbb45ba151c5063761f75
MD5 c0082d9544d28b94bad909420dbb2e6a
BLAKE2b-256 01038c401b652c46620aaa68bfef509a801d3d7fea436757013ab754fc5df674

See more details on using hashes here.

File details

Details for the file mcplex_backplane-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcplex_backplane-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 37b2954ae7f0cf9fb095fa0916bf7dc57a1197d5cc2eaa6a5829e90f500c60ac
MD5 c3e4febd9594980bacd3a67346d2762b
BLAKE2b-256 56573d38d01f755e5b14cf78717e900e72fd912d546f0e31da8872c239462c30

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page