Documentation
¶
Overview ¶
Command launcher-server is a tiny HTTP MCP server used as the child process in the e2e test for spec 046 (local launcher for HTTP/SSE upstreams). It is NOT a production MCP implementation — it speaks just enough of the protocol for mcpproxy's StreamableHTTP transport to complete the initialize handshake and answer a tools/list call.
Why: the unit + integration tests in internal/upstream/launcher cover the spawn / WaitForURL / Stop semantics in isolation. To prove the feature actually works end-to-end — that a `mcpproxy serve` boot launches this binary, connects to it via HTTP, completes the MCP handshake, and reaps it on disable / restart / shutdown — we need a real upstream the e2e harness can drive. Anything more complex than "implement initialize + tools/list + tools/call" is out of scope.
Usage: launcher-server --port N [--addr 127.0.0.1] [--quiet]
On SIGTERM/SIGINT the HTTP listener is gracefully shut down (5s deadline) and the process exits with code 0. Heartbeat lines are printed to stdout once per second by default so the per-server log in mcpproxy demonstrably captures the child's output. --quiet suppresses the heartbeat.