A CLI proxy for MCP servers with configurable tool transformations
Project description
MCP Tool Transform Proxy
A Python CLI that proxies remote MCP servers while applying configurable tool transformations (name, description, arguments). Sits transparently between MCP clients (like Claude Desktop) and remote MCP servers.
Installation
pip install mcp-transform-proxy
Quick Start
- Create a configuration file:
{
"mcpServers": {
"myserver": {
"url": "https://my-mcp-server.example.com/mcp",
"tools": {
"original_tool": {
"description": "Enhanced description with context about when to use this tool"
}
}
}
}
}
- Run the proxy:
mcp-transform-proxy --config config.json
Configuration
Full Configuration Example
{
"proxy": {
"name": "MyToolProxy",
"transport": "stdio",
"port": 8080
},
"mcpServers": {
"weather": {
"url": "https://weather-api.example.com/mcp",
"transport": "sse",
"tools": {
"get_weather": {
"name": "check_weather",
"description": "Check current weather. Use when user asks about weather.",
"arguments": {
"units": {
"default": "metric",
"hide": true
},
"location": {
"name": "city",
"description": "City name to check"
}
}
},
"internal_tool": {
"enabled": false
}
}
}
}
}
Configuration Reference
Proxy Settings
| Field | Type | Default | Description |
|---|---|---|---|
name |
string | "MCP Transform Proxy" | Name of the proxy server |
transport |
"stdio" | "http" | "stdio" | Transport mode |
port |
integer | 8080 | HTTP port (only used with http transport) |
Server Settings
| Field | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | URL of the upstream MCP server |
transport |
"streamable-http" | "sse" | No | Transport for upstream connection |
tools |
object | No | Tool transformations (keyed by tool name) |
Tool Transformations
| Field | Type | Default | Description |
|---|---|---|---|
name |
string | null | Rename the tool |
description |
string | null | Replace tool description |
enabled |
boolean | true | Set to false to hide the tool |
arguments |
object | {} | Argument transformations |
Argument Transformations
| Field | Type | Default | Description |
|---|---|---|---|
name |
string | null | Rename the argument |
description |
string | null | Replace argument description |
default |
any | null | Set a default value |
hide |
boolean | false | Hide argument from clients |
Tool Name Prefixing
FastMCP's composite proxy automatically prefixes tool names with the server name. For example, if you have a server named weather with a tool get_forecast, the prefixed name will be weather_get_forecast.
When configuring tool transforms, use the original tool name (without prefix) in your config - the proxy handles prefixing internally.
CLI Options
Usage: mcp-transform-proxy [OPTIONS]
Options:
-c, --config PATH Path to JSON config file (required)
-t, --transport TEXT Override transport mode (stdio or http)
-p, --port INTEGER Override HTTP port
--version Show version
--help Show this message and exit
Development
# Clone the repository
git clone https://github.com/bbrowning/mcp-transform-proxy.git
cd mcp-transform-proxy
# Create virtual environment
python -m venv .venv
source .venv/bin/activate
# Install in development mode
pip install -e ".[dev]"
# Run tests
pytest
# Run linter
ruff check .
# Run type checker
mypy src
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_transform_proxy-0.1.0.tar.gz.
File metadata
- Download URL: mcp_transform_proxy-0.1.0.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e8116d1ba716227018ed2bbbaacc20d241fca78a1bf80deaebff3e9b40775ee
|
|
| MD5 |
1527a8c809eac6deefcaec07bc5434b3
|
|
| BLAKE2b-256 |
42a1ccf4971e1f7c9a90043e863b231ff62c69737286242a31b3ae6c203d1411
|
File details
Details for the file mcp_transform_proxy-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcp_transform_proxy-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
915face09136e70f38bf1935ee58353db9d5ea74656e758b0b579323b5a417bc
|
|
| MD5 |
fdee53ff1a676af78fe98b76360d407d
|
|
| BLAKE2b-256 |
fca5ad1dd790e0cc5250b381d124832c937c652653fe2b8dc9b6c83b8f747a58
|