sysdesign
MCP System Design — live architecture + scaffolding
A web app you drive through Claude over MCP. Prompt Claude to design a system → the browser draws the architecture live (interactive D3 nodes & edges). Say "develop" → Claude scaffolds a minimal Python + Docker MVP into a folder.
┌─────────┐ MCP (stdio) ┌───────────────────────┐ SSE ┌─────────┐
│ Claude │ ───────────────▶ │ server.py │ ───────▶ │ Browser │
│ (client)│ visualize_... │ MCP tools + FastAPI │ /events │ D3 UI │
└─────────┘ scaffold_... │ + shared state │ └─────────┘
└───────────────────────┘
│ writes
▼
generated/<project>/ (FastAPI services + Docker)What's inside
File | Role |
| MCP server (stdio) + embedded FastAPI web server + SSE endpoint |
| Turns a design into FastAPI services + Dockerfiles + docker-compose |
| Thread-safe shared state watched by the SSE stream |
| D3 force-graph UI, live via |
MCP tools Claude can call
visualize_architecture(title, components, connections)— draw the diagram.components:[{id, label, type?, description?}](typecolors the node:service,queue,db/store,sse,cache,gateway).connections:[{source, target, label?}].scaffold_implementation(project_name, base_port=8001)— generate the MVP from whatever is currently on screen. Writes togenerated/<project_name>/.get_current_design()— return the design currently displayed.
Run it
1. Start the web UI
pip install -r requirements.txt
APP_MODE=web python server.py # UI at http://localhost:8765or with Docker:
docker compose up --build # UI at http://localhost:87652. Connect Claude to the MCP server
Add to your MCP client config (e.g. Claude Desktop claude_desktop_config.json).
This launches the server over stdio; the web UI comes up automatically on 8765.
{
"mcpServers": {
"sysdesign": {
"command": "python",
"args": ["/absolute/path/to/mcp-sysdesign/server.py"]
}
}
}Note: the MCP client owns stdio, so let it launch
server.py(defaultAPP_MODE=mcpruns MCP and the web UI). Don't also runAPP_MODE=webon the same port, or 8765 will be taken.
3. Use it
Open http://localhost:8765, then in Claude:
"Design a URL crawler system that stores page text keyed by URL, with an SSE monitoring channel."
Claude calls visualize_architecture(...) and the graph appears. Then:
"develop"
Claude calls scaffold_implementation("crawler") and generated/crawler/
appears with runnable services:
cd generated/crawler && docker compose up --buildNotes / MVP scope
SSE (not WebSocket) powers the live UI: it's a one-way server→browser push, which is exactly what a live diagram needs, and it auto-reconnects.
The scaffold is a skeleton — each service builds, starts, and can reach its declared dependencies over the Docker network. Business logic is left as TODO.
State is in-memory (single process). Restarting the server clears the diagram.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/uttam-in/mcp-system-design'
If you have feedback or need assistance with the MCP directory API, please join our Discord server