Easy MCP Proxy
Allows searching Confluence as one of multiple knowledge sources in unified concurrent search queries.
Allows searching GitHub code as one of multiple knowledge sources in unified concurrent search queries.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Easy MCP ProxyCreate a composite tool that searches code and docs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Easy MCP Proxy
An MCP proxy server that aggregates tools from multiple upstream MCP servers and exposes them through tool views β filtered, transformed, and composed subsets of tools.
Status: Experimental
π Full Documentation | π Tutorial | π Reference
Quick Start
1. Install
uv pip install -e .2. Create a config file
# config.yaml
mcp_servers:
filesystem:
command: npx
args: [-y, "@modelcontextprotocol/server-filesystem", /home/user/documents]
tool_views:
default:
tools:
filesystem:
read_file: {}
list_directory: {}3. Run the proxy
# For Claude Desktop (stdio)
mcp-proxy serve --config config.yaml
# For HTTP clients
mcp-proxy serve --config config.yaml --transport http --port 80004. Use with Claude Desktop
Local (stdio) β runs the proxy as a subprocess:
{
"mcpServers": {
"proxy": {
"command": "uv",
"args": ["run", "mcp-proxy", "serve", "--config", "/path/to/config.yaml"]
}
}
}Remote (HTTP) β connect to a proxy running on a server:
{
"mcpServers": {
"proxy": {
"type": "http",
"url": "https://your-proxy-server.example.com/mcp",
"headers": {
"Authorization": "Bearer your-auth-token"
}
}
}
}This requires authentication to be configured on the proxy. See mcp-proxy serve --help for auth options.
Related MCP server: Master MCP Server
Example Use Cases
Reduce Tool Count with Search Mode
Too many tools overwhelming your LLM? Expose hundreds of tools through three meta-tools:
tool_views:
everything:
exposure_mode: search
include_all: trueThis creates everything_search_tools (find tools), everything_describe_tool
(inspect one exact schema), and everything_call_tool (validate and call by
name). The LLM searches, describes, then callsβno need to list every tool.
Create Domain-Specific Interfaces
Wrap generic filesystem tools into a purpose-built "skills library" interface:
mcp_servers:
skills:
command: npx
args: [-y, "@modelcontextprotocol/server-filesystem", /home/user/skills]
tools:
read_file:
name: get_skill # Rename for clarity
parameters:
path:
rename: skill_name # Domain-specific parameter name
description: "Skill file path (e.g., 'python/debugging.md')"
directory_tree:
name: browse_skills
parameters:
path:
hidden: true # Hide implementation detail
default: "." # Always start at rootSearch Multiple Sources Concurrently
Create a unified search that queries all your knowledge sources at once:
tool_views:
unified:
composite_tools:
search_everything:
description: "Search code, docs, and memory simultaneously"
inputs:
query: { type: string, required: true }
parallel:
code:
tool: github.search_code
args: { query: "{inputs.query}" }
docs:
tool: confluence.search
args: { query: "{inputs.query}" }
memory:
tool: memory.search
args: { text: "{inputs.query}" }Keep Large Outputs Bounded by Default
Large tool outputs (file contents, search results, minified JSON, JSONL, logs) can overwhelm LLM context. Easy MCP Proxy measures every proxied tool result after the upstream server responds. Oversized results are cached and the model receives a bounded preview with navigation metadata.
Safe output handling is enabled by default. Use output_cache to tune limits or explicitly disable it for trusted local debugging:
output_cache:
enabled: true
ttl_seconds: 3600
max_inline_tokens: 3000
max_line_chars: 1200
retrieval_default_line_count: 100
retrieval_max_line_count: 500
retrieval_max_chars: 12000
cache_secret: "${CACHE_SECRET}"
cache_base_url: "https://your-proxy.example.com"The LLM gets a preview plus a retrieval token. It can request line windows with
preview_cached_output, character windows with range_cached_output, or JSON
slices with query_cached_output. retrieve_cached_output and /cache/{token}
return bounded content by default; append download=1 or full=1 to the signed
HTTP URL for explicit full-content processing outside the model context.
This enables Recursive Language Model (RLM) patterns where agents pass file
references instead of file contents, dramatically reducing context usage while
maintaining full access to the data.
What Can It Do?
Aggregate multiple MCP servers (stdio or HTTP) into one endpoint
Filter which tools are exposed from each server
Rename tools and parameters for clearer interfaces
Bind parameter defaults or hide implementation details
Compose concurrent tools that fan out to multiple upstreams
Cache large outputs to reduce context window usage
Transform with pre/post hooks for logging, validation, or modification
Serve via stdio (Claude Desktop) or HTTP with multi-view routing
See the Use Cases Guide for detailed examples of each capability.
Documentation
Introduction β Overview and concepts
Tutorial β Step-by-step getting started guide
Use Cases β Problem-driven feature exploration
Reference β Complete feature and CLI documentation
Tool discovery β Schemas, safe calls, CLI, web registry, and rollout
Development
uv pip install -e ".[dev]"
make check # Lint
make test # Run tests (requires 100% coverage)License
AGPL-3.0 β See LICENSE
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceProxies to all of a user's MCPs and allows them to expose dynamic toolsets of tools from those servers to improve context and tool-usage.8150156TypeScriptMIT
- Flicense-quality-maintenanceAggregates multiple MCP servers behind a single, secure endpoint with unified tool/resource discovery, OAuth authentication, and resilient request routing. Enables users to manage and interact with multiple MCP backends through one centralized interface with load balancing and circuit breakers.2
- Alicense-qualityDmaintenanceAggregates multiple MCP services into a single unified interface with self-configuration capabilities, enabling dynamic addition and removal of tools via conversation.6070MIT
- Alicense-qualityDmaintenanceAggregates tools from multiple MCP servers, acting as a proxy to provide unified access to various AI agents and tools.143MIT
Related MCP Connectors
34 production API tools over one hosted MCP endpoint.
327 tools, 92 providers. Pay per call via x402 + MPP. One MCP endpoint.
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/abrookins/easy-mcp-proxy'
If you have feedback or need assistance with the MCP directory API, please join our Discord server