subagentservers

.com mcp server
2 of 3 servers are pure stdio

stdio vs. stdio+HTTP: why this repo mixes both

subagentjobs-mcp and engineering-coworker both run over plain MCP stdio -- a parent process (a Docker MCP Toolkit gateway, or Claude Desktop's own MCP client) spawns the binary and speaks newline-delimited JSON-RPC 2.0 over stdin/stdout. This is the simplest, most portable MCP transport and is what both of these binaries' own source is written against (rmcp::transport::io::stdio() in engineering-coworker/src/main.rs).

a2a-bridge is different: it is not itself invoked as a stdio MCP server by a client. It's a standalone axum HTTP process (bound via the A2A_ADDR env var, default 0.0.0.0:8080) that, on each incoming A2A tasks/send HTTP request, spawns subagentjobs-mcp as a short-lived stdio child process, sends it an initialize + tools/call JSON-RPC pair over that child's stdin, reads the response off its stdout, and kills the child -- a stateless spawn-and-read bridge, by its own source comment, "for production use, consider keeping the process alive and multiplexing calls with rmcp's ClientSession."

Source: crates/a2a-bridge/src/main.rs (call_mcp_tool, handle_tasks_send), crates/engineering-coworker/src/main.rs (rmcp::transport::io::stdio()).