MCP stack for Cursor agents
Four MCP servers connect Cursor to the self-hosted platform. Each covers a distinct domain — use the right server for each task.
Architecture
flowchart TB
Agent[Cursor Agent]
Agent --> PlaneMCP[plane HTTP]
Agent --> ForgejoMCP[forgejo stdio]
Agent --> WoodpeckerMCP[woodpecker stdio]
Agent --> InfraOpsMCP[infra-ops stdio]
PlaneMCP --> PlaneApp[Plane pm]
ForgejoMCP --> Forgejo[Forgejo git]
WoodpeckerMCP --> Woodpecker[Woodpecker ci]
InfraOpsMCP --> Scripts[Platform scripts VPS]
Agent routing guide
| Task |
MCP server |
| Create / move Plane ticket, plan cycle |
plane |
| Open PR, read issues, manage repos |
forgejo |
| Check pipeline, read CI logs, restart build |
woodpecker |
| Onboard app, sync to VPS, health checks, Kuma |
infra-ops |
Setup
- Copy
templates/cursor-mcp.json.example from the repo root to .cursor/mcp.json
- Fill tokens in
infra-devops/local/.env (never commit)
- Build infra-ops MCP:
npm run mcp:build --prefix mcp-server
- Restart Cursor or reload MCP servers
Servers
| Server |
Transport |
Details |
| Plane |
HTTP + OAuth |
Already deployed at mcp.* |
| Forgejo |
stdio (npx) |
@ric_/forgejo-mcp |
| Woodpecker |
stdio (npx) |
mcp-woodpecker |
| Infra-ops |
stdio (local) |
Custom script wrappers |
Verification checklist
After setup, verify each server:
- [ ] Plane — ask Cursor to create a test ticket in a project
- [ ] Forgejo — list repos in
infra org
- [ ] Woodpecker — get latest pipeline for
infra/devops
- [ ] Infra-ops — call
platform_health and confirm all services respond
- [ ] Docs — https://docs.rafaelgonzalezalbes.com loads after deploy
Security
- Tokens live in
local/.env only — reference them from .cursor/mcp.json env block on your machine
- Infra-ops destructive operations (deploy, backup) require explicit
confirm: true in v2
- Secret rotation and SOPS edit are not exposed via MCP in v1
- Worker design patterns (safe outputs, read-only defaults): Agent patterns to borrow
Troubleshooting
| Issue |
Fix |
| MCP server not listed |
Reload MCP in Cursor settings |
| forgejo/woodpecker npx fails |
Ensure Node 18+ and network access |
| infra-ops bash errors on Windows |
Install Git Bash; set INFRA_DEVOPS_DIR in mcp.json |
| plane OAuth loop |
Clear browser cookies for mcp.*; re-authorize |