18 tools. One server.
Runs as a child process, communicates over stdio · JSON-RPC. Plug it into Claude Desktop, Claude Code, or the companion client below.
Two modes. One interface.
Node.js + Express backend, vanilla HTML/JS frontend — no framework. Spawns the MCP server as a child process over stdio.
→ Claude calls db_query (subscribers table)
→ Claude calls db_query (order by created_at desc, limit 1)
→ Claude synthesises and replies in plain English
POST /api/tool
{
"tool": "db_query",
"args": { "table": "site_analytics", "limit": 10 }
}
Because understanding beats using.
Claude Desktop will connect to any MCP server in two config lines. But building the client yourself — spawning the child process, wiring the stdio transport, implementing the agentic loop — means you understand exactly how the protocol works and where to extend it. That's the point of this project.