Deploy¶
UML-MCP runs in four shapes. Pick the one that fits your environment, then jump to the matching guide.
-
Hosted (zero install)
Use the live Vercel endpoint via Streamable HTTP, or add the published Smithery server to your client.
-
Local stdio
Run
python server.pyfrom a clone. Cursor or Claude Desktop manage the process for you. Required foroutput_dirand full local control. -
Docker
Self-contained stack with optional bundled Kroki and PlantUML. Use it for shared infra, air-gapped networks, or CI runners.
-
Custom HTTP
Run the FastAPI app directly with
uvicornorfastmcp run, behind your own reverse proxy. MCP HTTP is mounted at/mcp.
Decision tree¶
flowchart TD
Start([How will users reach UML-MCP?]) --> Q1{One-click install?}
Q1 -- yes --> Smithery[Publish on Smithery, point at your Vercel URL]
Q1 -- no --> Q2{Need files on disk?}
Q2 -- yes --> Q3{IDE-driven?}
Q3 -- yes --> Stdio[Local stdio: server.py via Cursor / Claude]
Q3 -- no --> Docker[Docker compose with output volume]
Q2 -- no --> Q4{Bring own infra?}
Q4 -- yes --> Custom[uvicorn / fastmcp run + reverse proxy]
Q4 -- no --> Vercel[Hosted Vercel HTTP MCP at /mcp] Per-deployment specifics¶
| Concern | Hosted (Vercel) | Local stdio | Docker | Custom HTTP |
|---|---|---|---|---|
| Transport | HTTP /mcp | stdio | HTTP /mcp | HTTP /mcp |
File writes (output_dir) | No (read-only) | Yes | Yes (volume mount) | Yes |
| Local Kroki / PlantUML | No | Optional | Bundled | Optional |
| Auth / OAuth | Vercel Deployment Protection or open | None | None | Your choice |
| Best for | Public + Smithery distribution | IDE work, debugging | Air-gapped, shared infra | Behind your reverse proxy |
MCP route
All HTTP deployments serve MCP at /mcp, never the domain root. Health endpoint is /health on the FastAPI app.
Connecting clients¶
| Client | Setup guide |
|---|---|
| Cursor | Cursor integration |
| Claude Desktop | Claude Desktop integration |
| Smithery (any registered client) | Vercel & Smithery |
For the rendering fallback chain (Kroki → PlantUML → Mermaid.ink), see Fallback strategy.