eswat2 MCP Server
The personal knowledge base for Richard Hess (eswat2), exposed as an MCP server. Covers 40+ years of software engineering history: biography, shipped projects, research explorations, YAML UI specs, gallery screenshots, and archival vault content.
Stack: Python · MCP Python SDK · FastAPI · uvicorn
Port: 9100 (local) · Deployed on Vercel
MCP Tools
Discovery is layered — start small, drill down:
list_namespaces— compact summary of all namespaces with entry counts; cheapest first-contact calllist_uris(namespace?)— full URI registry, optionally scoped to one namespace (e.g.namespace="projects")read_uri— retrieve content for any namespace URIsearch_by_tag— find entries by tag across all namespaceslist_tags— list all tags with entry countsget_graph— full URI relationship graph with top hubs and bridges
Namespaces
| Namespace | Content |
|---|---|
profile:// |
Identity, biography, journeys, resume |
projects:// |
Shipped platforms, tools, and personal projects |
research:// |
PoCs, explorations, and hypothesis-driven experiments |
specs:// |
Reference YAML specs for the YAML-Driven Reactive UI Platform |
gallery:// |
Screenshots of shipped projects and YAML-driven UI components |
vault:// |
Archival historical context: AI winter, Lisp machines, Teknowledge, WINTERP, Taligent |
eswat2:// |
Server-level resources — eswat2://manifest (server info, endpoints, tools) |
Rendered HTML
/render?uri={namespace}://{slug} server-renders any KB entry as standalone HTML — no client-side JS required. It's the read path for browsers and for LLM clients that want display-ready markup instead of raw JSON. A handful of high-traffic entries also get curated pretty-URL aliases: /about, /resume, /colophon, /projects.
Every rendered page carries a sidebar nav (namespace groups + all site pages) built as pure HTML/CSS — a checkbox-hack toggle and native <details> elements, zero <script>. The nav brand links to /render?uri=eswat2://manifest, so the manifest is always one click away from any page.
Client Integration
All clients require the server running on localhost:9100 (or Vercel URL for remote access).
| Client | Transport | Config |
|---|---|---|
| Claude Code | HTTP native | claude mcp add eswat2 --transport http http://localhost:9100/mcp |
| Claude Desktop | stdio via mcp-remote | { "command": "npx", "args": ["mcp-remote", "http://localhost:9100/mcp"] } |
| Perplexity / stdio-only | stdio via mcp-remote | npx mcp-remote http://localhost:9100/mcp |
Write-up
Building a High-Quality Personal MCP Knowledge Base with Multiple Interfaces (June 2026) is the public overview of this project — namespace architecture, the Python stack, and the several interfaces built on one compiled knowledge base. It was drafted by Grok working from the deployed server's own endpoints. It predates the /render HTML layer, the /architecture page, and MCP going live in production, so read it as a snapshot rather than current documentation. See profile://colophon for the up-to-date build notes.