@team-attention/mcproxy
v0.1.0
Published
MCP Proxy with tool filtering for Claude Code
Readme
mcproxy
MCP Proxy with tool filtering for Claude Code. Intercepts MCP server requests and filters tools based on configuration to reduce token consumption.
Installation
# Run directly with npx
npx @team-attention/mcproxy <upstream-command>
# Or install globally
npm install -g @team-attention/mcproxyUsage
Basic Usage
Wrap your MCP server command with mcproxy:
mcproxy npx -y @modelcontextprotocol/server-filesystem /path/to/dirWith Claude Code (.mcp.json)
Configure your .mcp.json to use mcproxy as a wrapper:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y", "@team-attention/mcproxy",
"--",
"npx", "-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"
]
},
"linear": {
"command": "npx",
"args": [
"-y", "@team-attention/mcproxy",
"--",
"npx", "-y", "mcp-remote", "https://mcp.linear.app/mcp",
"--header", "Authorization: Bearer ${LINEAR_API_KEY}"
]
}
}
}Configuration
mcproxy automatically creates a .mcproxy.json file to manage tool settings:
{
"version": "1.0",
"servers": {
"[email protected]": {
"tools": {
"list_issues": true,
"create_issue": true,
"delete_issue": false
}
}
}
}- Tools are auto-registered on first use with
enabled: true - Set a tool to
falseto disable it - Server key is derived from
serverInfo.name@versionin MCP initialize response
How It Works
Claude Code <-> mcproxy (stdio) <-> MCP Server (subprocess)
|
.mcproxy.json (tool config)- mcproxy intercepts the MCP
initializeresponse to get server name - On
tools/listresponse, it filters out disabled tools - On
tools/callrequest, it blocks disabled tool calls
Options
--config <path> Path to workspace root for .mcproxy.json (default: current directory)Debugging
Set DEBUG=1 to enable verbose logging:
DEBUG=1 mcproxy npx -y @some/mcp-serverLicense
MIT
