Environment
- Plane: self-hosted Community Edition (CE)
plane-mcp-server: 0.2.10
- Transport: stdio, authenticated via Personal Access Token (PAT)
Problem
The list_projects MCP tool always returns a 404, even though the workspace and PAT are valid and other project tools (create/update/delete) work fine against the same workspace.
Root cause
In plane/api/projects.py, Projects.list_lite() (called by the list_projects MCP tool) requests:
GET /api/v1/workspaces/{slug}/projects-lite/
This route does not exist on self-hosted CE and returns 404.
By contrast, Projects.create() (called by the create_project MCP tool, which works correctly) requests:
POST /api/v1/workspaces/{slug}/projects
which returns 200.
Confirmation independent of MCP
Reproduced directly with a raw HTTP call (no MCP involved), using the same PAT:
GET /api/v1/workspaces/{slug}/projects-lite/ → 404 {"error": "Page not found."}
GET /api/v1/workspaces/{slug}/projects/ → 200 (returns paginated project list)
This confirms the 404 is not an auth, membership, or slug issue — the /projects-lite route itself is unavailable on CE, while the plain /projects route works correctly and returns the expected paginated response.
Additional detail
The same SDK class (Projects) already has an unused list() method that targets the working /projects endpoint (as opposed to list_lite()'s /projects-lite). It appears the CE-compatible route is already implemented in the SDK, but the list_projects MCP tool is wired to the incompatible list_lite() method instead.
Suggested fix
- Fall back to
/projects when /projects-lite returns 404 (e.g. detect 404 and retry against the list() method), or
- Make the list route configurable/selectable for self-hosted CE instances (since
/projects-lite may be a Cloud-only or newer-API-version route not present on CE deployments).
Environment
plane-mcp-server: 0.2.10Problem
The
list_projectsMCP tool always returns a 404, even though the workspace and PAT are valid and other project tools (create/update/delete) work fine against the same workspace.Root cause
In
plane/api/projects.py,Projects.list_lite()(called by thelist_projectsMCP tool) requests:This route does not exist on self-hosted CE and returns 404.
By contrast,
Projects.create()(called by thecreate_projectMCP tool, which works correctly) requests:which returns 200.
Confirmation independent of MCP
Reproduced directly with a raw HTTP call (no MCP involved), using the same PAT:
This confirms the 404 is not an auth, membership, or slug issue — the
/projects-literoute itself is unavailable on CE, while the plain/projectsroute works correctly and returns the expected paginated response.Additional detail
The same SDK class (
Projects) already has an unusedlist()method that targets the working/projectsendpoint (as opposed tolist_lite()'s/projects-lite). It appears the CE-compatible route is already implemented in the SDK, but thelist_projectsMCP tool is wired to the incompatiblelist_lite()method instead.Suggested fix
/projectswhen/projects-litereturns 404 (e.g. detect 404 and retry against thelist()method), or/projects-litemay be a Cloud-only or newer-API-version route not present on CE deployments).