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.searchvsserver_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
.envfiles 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
- Quick Start Guide - Get running in 5 minutes
- Configuration Reference - All config options explained
- Custom Tools Guide - Writing your own tools
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)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_davidjbianco_mcp_remixer-0.1.0.tar.gz | 125.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|