Skip to main content

mcp-remixer

A proxy for MCP servers that lets you add custom tools, hide existing ones, and aggregate multiple upstream servers into a single interface.

Features

  • Aggregate multiple MCP servers - Combine multiple MCP servers into one
  • Automatic tool name resolution - Handles conflicting tool names across upstream stream (e.g., server_a.search vs server_b.search)
  • Add custom tools - Write Python functions that become MCP tools
  • Hide tools - Filter out tools you don't want exposed
  • Chain tools - Custom tools can call upstream tools
  • Graceful degradation - Optional upstreams won't block startup
  • Environment variable support - Use .env files and ${VAR} expansion
  • Audit logging - Log all MCP transactions to JSON files for compliance and debugging

Installation

# Clone the repository
git clone https://github.com/DavidJBianco/MCP-Remixer.git
cd MCP-Remixer

# Install dependencies
uv sync

Quick Example

# mcp-remixer.yaml
upstreams:
  filesystem:
    transport: stdio
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/docs"]

hidden:
  tools:
    - "write_file"  # Hide this tool from clients

custom_tools:
  - "./tools/my_tools.py"

# Optional: Enable audit logging
audit:
  enabled: true
  log_file: ./audit.jsonl
  truncate: true  # Truncate large fields (recommended)
  max_content_length: 1024  # Per-field limit in bytes
# tools/my_tools.py
from mcp_remixer import tool, UpstreamClient

@tool(description="Read and summarize a file")
async def summarize_file(path: str, upstream: UpstreamClient):
    result = await upstream.call_tool("read_file", {"path": path})
    content = result.content[0].text
    return f"Summary: {content[:100]}..."
uv run mcp-remixer --config mcp-remixer.yaml

Documentation

Using with Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "my-remix": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/MCP-Remixer", "mcp-remixer", "--config", "/path/to/mcp-remixer.yaml"]
    }
  }
}

Architecture

┌─────────────────────────────────────────────────────────────┐
│                      MCP Client (Claude)                     │
└─────────────────────────────┬───────────────────────────────┘
                              │ stdio
┌─────────────────────────────▼───────────────────────────────┐
│                       mcp-remixer                            │
│  • Merge tools from upstreams                                │
│  • Apply prefixes / resolve collisions                       │
│  • Filter hidden tools                                       │
│  • Register custom tools                                     │
│  • Route tool calls to correct destination                   │
└─────────────────────────────────────────────────────────────┘
        │ stdio               │ sse/http            │ http
┌───────▼───────┐  ┌─────────▼────────┐  ┌────────▼────────┐
│  filesystem   │  │    remote_api    │  │  cloud_service  │
│    server     │  │     server       │  │     server      │
└───────────────┘  └──────────────────┘  └─────────────────┘

Development

# Install dev dependencies
uv sync --dev

# Run tests
uv run pytest

# Run with coverage
uv run pytest --cov=mcp_remixer --cov-report=html

License

MIT

Metadata

Release files for iflow-mcp_davidjbianco-mcp-remixer 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_davidjbianco-mcp-remixer 0.1.0
File Size Uploaded
iflow_mcp_davidjbianco_mcp_remixer-0.1.0.tar.gz 125.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_davidjbianco-mcp-remixer 0.1.0
File Interpreter ABI Platform
iflow_mcp_davidjbianco_mcp_remixer-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 154.6 kB

Release files / iflow_mcp_davidjbianco_mcp_remixer-0.1.0.tar.gz

Download URL iflow_mcp_davidjbianco_mcp_remixer-0.1.0.tar.gz
Size 125.0 kB
Tags Source
SHA-256 checksum
How to use checksums
77bf1cbd8053aa2d6b5d3c22f6dd9be08936fae196e3e8f07e1f029f91154acd
BLAKE2b-256 checksum
How to use checksums
47899b7a2e961c2adfbf7929dd14d01b5dad02be179d83d82243bfdc50cb0e74
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / iflow_mcp_davidjbianco_mcp_remixer-0.1.0-py3-none-any.whl

Download URL iflow_mcp_davidjbianco_mcp_remixer-0.1.0-py3-none-any.whl
Size 29.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0bba4574d03e7f77d19feea62e3bdc5b49aff159bacae4b4990523ec5c69caa4
BLAKE2b-256 checksum
How to use checksums
7435835b64e6998299a761927008f464111aedc959e629202e7a33d2ec6171b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page