A MCP server which proxies requests to a remote MCP server over SSE transport.
mcp-proxy is a pass-through proxy server that dynamically exposes remote MCP server capabilities. Tool definitions are generated at runtime from remote server capabilities, not statically defined. All 10 tools have basic descriptions and parameter schemas, but descriptions are minimal (10-50 chars, well below the 194-char baseline). Parameter descriptions are sparse or missing entirely. No output schemas are documented. Error handling is absent, no recovery guidance or categorization. The server acts as a transparent relay, which limits its ability to provide LLM-optimized descriptions. Tools like 'call_tool' and 'complete' are generic pass-throughs with vague semantics.
Call a tool on the remote MCP server
Request completion from the remote MCP server
Get a specific prompt from the remote MCP server
List available prompts from the remote MCP server
List available resources from the remote MCP server
List available tools from the remote MCP server
Read a specific resource from the remote MCP server
Set the logging level on the remote MCP server
Descriptions are uniformly minimal (10-50 chars), far below the 194-char baseline. Examples: 'List available prompts from the remote MCP server' (50 chars), 'Call a tool on the remote MCP server' (37 chars). LLMs cannot distinguish when to use similar tools or understand prerequisites.
Parameter descriptions are missing or trivial. 'get_prompt' has 'name' (string, no description) and 'arguments' (object, no description). 'call_tool' has 'name' and 'arguments' with no guidance on what arguments are expected. LLMs cannot infer parameter semantics.
No output schemas documented. Tools return opaque results from remote servers (e.g., 'result = await remote_app.list_tools()' wrapped in ServerResult). LLMs cannot plan downstream calls or extract required fields for chaining.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
Subscribe to updates for a specific resource from the remote MCP server
Unsubscribe from updates for a specific resource from the remote MCP server
No error handling or recovery guidance. Code catches exceptions but returns raw errors. LLMs receive no categorization (retryable vs fatal), no suggestions for next steps, and no invalid-value feedback for self-correction.
'call_tool' and 'complete' are generic pass-throughs with ambiguous semantics. 'call_tool' could invoke any remote tool with any arguments, no validation, no scope declaration, no permission checks. 'complete' references are opaque objects with no documentation.