Everything needed to run a local Penpot instance with the MCP server that Vectis CLI connects to.
| Tool | Purpose |
|---|---|
| Docker + Docker Compose | Run Penpot containers |
| pnpm | Install MCP server dependencies |
| Git | Clone the Penpot MCP server |
cd docs/penpot-setup
bash start-penpot.shWait ~1 minute on first run, then open http://localhost:9001. Create an account and a design file.
bash setup-mcp.shThis clones the Penpot repo (shallow) and installs MCP server dependencies.
bash start-mcp.sh- Open a design file in Penpot (http://localhost:9001)
- Main menu → Plugins
- Enter:
http://localhost:4400/manifest.json→ Install - Open the plugin panel
- Click "Connect to MCP server"
- Keep the plugin panel open (it bridges MCP ↔ Penpot)
cd ../.. # back to vectis-cli root
bun run dev
/doctor # verify everything is connected| Port | Protocol | Service |
|---|---|---|
| 9001 | HTTP | Penpot UI |
| 1080 | HTTP | Mailcatcher (dev email viewer) |
| 4400 | HTTP | MCP Plugin server |
| 4401 | HTTP | MCP Streamable HTTP endpoint (/mcp) |
| 4402 | WebSocket | MCP live events |
# Stop Penpot containers
bash stop-penpot.sh
# Stop MCP server: Ctrl+C in its terminal| File | Purpose |
|---|---|
docker-compose.yaml |
Penpot services (frontend, backend, postgres, valkey, exporter, mailcatcher) |
setup-mcp.sh |
Clone Penpot repo + install MCP dependencies (run once) |
start-mcp.sh |
Start MCP server (plugin + HTTP + WebSocket) |
start-penpot.sh |
Start Penpot Docker containers |
stop-penpot.sh |
Stop Penpot Docker containers |
Penpot won't start: Make sure Docker is running. Check docker compose -p penpot logs for errors.
MCP server errors: Ensure pnpm is installed. Re-run setup-mcp.sh to reinstall dependencies.
Plugin won't connect: The plugin panel must stay open in Penpot. If it disconnects, close and reopen the plugin.
/doctor fails in Vectis: Check that both Penpot (port 9001) and MCP server (port 4401) are running.