Chunk 1: MCP host plumbing - McpClientManager lazy-spawn singleton

↗ view on GitHub · Gadoes · 2026-05-02 · 8af29ffc

- Added spike-mcp-host.ts POC: validates StdioClientTransport + server-filesystem stdio server (14 tools, listTools + callTool both pass)
- Implemented McpClientManager singleton with lazy-spawn, 15-min idle TTL, per-server request queue (max 10), auto-reconnect with exponential backoff, permanently_failed state after 3 failures, and dispose() for SIGTERM/SIGINT cleanup
- Added types.ts with McpServerConfig, McpToolDefinition, McpServerState, McpCallResult, McpHealthResult
- Installed @modelcontextprotocol/server-filesystem, vitest, @vitest/coverage-v8
- All 10 Vitest tests pass (cold-start, warm reuse, idle disposal, reconnect, permanently_failed, queue throttle, dispose, health check)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Repository Gadoes/dispumike
Author Gadoes <62180984+Gadoes@users.noreply.github.com>
Authored
Parents 735c9261
Stats 4 files changed , +3213 , -247
Part of MCP Host Plumbing & Agent Loop Integration

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-8af29ffc.md from inside the repo you want the change in.

⬇ Download capture-commit-8af29ffc.md