MCP server for a Plane CE instance enabling management of pages (via direct database and live converter) and work items through Plane's REST API, with multi-workspace support.
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find.
Install from
M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.
process.env. You'll be asked to provide them before it can run.MCP_TRANSPORT— http http (streamable 0.0.0.0:8300/mcp, GitHub OAuth) or stdio (on-box, auth-free)DATABASE_URL— pages (+ SERVICE_USER_ID to write) direct Postgres + live converterSERVICE_USER_ID— pages DATABASE_URL (+ to write) direct Postgres + live converterPLANE_BASE_URL— work items + PLANE_API_KEY public REST APIPLANE_API_KEY— work items PLANE_BASE_URL + public REST APIPUBLIC_BASE_URL— http auth; public origin, e.g. https://planemcp.<domain> (no /mcp)ALLOWED_GITHUB_LOGINS— http auth; comma-separated GitHub logins allowed (case-insensitive); empty is rejectedPLANE_WEB_URL— ${PAGES_MCP_WEB_URL:-http://localhost}GITHUB_CLIENT_ID— / GITHUB_CLIENT_SECRET — http auth; per-environment GitHub OAuth appGITHUB_CLIENT_SECRET— GITHUB_CLIENT_ID / — http auth; per-environment GitHub OAuth appJWT_SIGNING_KEY— http auth; long secret, stable across restarts (≥12 chars)STORAGE_ENCRYPTION_KEY— http auth; encrypts OAuth state at rest (Fernet)REDIS_URL— http auth; OAuth state store, e.g. redis://plane-redis:6379/0TOKEN_EXPIRY_SECONDS— 604800 http auth; FastMCP access-token lifetime (7 days)WORKSPACE_SLUG— is a default, not a fixture. Every tool takes an optionalMCP_HOST— / MCP_PORT / MCP_PATH 0.0.0.0 / 8300 / /mcp http bindMCP_PORT— MCP_HOST / / MCP_PATH 0.0.0.0 / 8300 / /mcp http bindMCP_PATH— MCP_HOST / MCP_PORT / 0.0.0.0 / 8300 / /mcp http bindLOG_LEVEL— INFO page content never logged above DEBUG; DEBUG also prints the OAuth claim keys once[](https://m8ven.ai/mcp/jbresolin-plane-pages-mcp-nnix57)