Skip to content

Bug: Project page tools 404 against self-hosted Plane CE v1.3.1 because pages are not under /api/v1 #163

Description

@maroil

Summary

When the MCP server is pointed at a self-hosted Plane CE v1.3.1 instance, the project page tools fail with 404 Page not found, even though Pages is enabled on the project and works on the Plane instance itself.

This looks like an endpoint prefix mismatch: the MCP server appears to use the current external API endpoint:

/api/v1/workspaces/{workspace_slug}/projects/{project_id}/pages/

but Plane CE v1.3.1 registers project page routes under:

/api/workspaces/{slug}/projects/{project_id}/pages/

Environment

  • Plane server: Community Edition v1.3.1 Docker images (makeplane/plane-backend:v1.3.1)
  • Deployment: self-hosted Docker Compose
  • MCP usage: configured against the self-hosted Plane instance via PLANE_BASE_URL
  • Workspace slug: valid; other MCP tools work against the same workspace

What works

The same MCP setup can read projects successfully:

  • list_projects works
  • retrieve_project works
  • the target project returns page_view: true

Pages also work on the Plane instance itself. I verified page creation through the Plane server code path, and it returned 201 Created; the page was linked to the expected project.

What fails

The page-related MCP tools fail for the same project:

create_page(project_id=...) -> HTTP 404: Not Found: Page not found.
list_pages(project_id=...)  -> HTTP 404: Not Found: Page not found.
get_features(project_id=...) also returned the same 404 in this setup.

Route checks

I checked unauthenticated requests only to distinguish route existence from auth failures. On this instance:

GET /api/v1/workspaces/<workspace>/projects/<project_id>/          -> 401
GET /api/v1/workspaces/<workspace>/projects/<project_id>/work-items/ -> 401
GET /api/v1/workspaces/<workspace>/projects/<project_id>/pages/    -> 404
GET /api/workspaces/<workspace>/projects/<project_id>/pages/       -> 401

So /api/v1 exists for other project endpoints, but not for project pages in this Plane CE release. The app API route for pages does exist.

I also checked the URL resolver inside the Plane backend container:

v1_pages    0
api_pages   11
v1_projects 50

Example registered routes include:

api/workspaces/<str:slug>/projects/<uuid:project_id>/pages/
api/workspaces/<str:slug>/projects/<uuid:project_id>/pages/<uuid:page_id>/
api/workspaces/<str:slug>/projects/<uuid:project_id>/pages-summary/

Expected behavior

Project page tools should work against a supported self-hosted Plane CE instance, or the MCP docs should state the minimum Plane server version/API surface required for page tools.

Potential fixes could be either:

  • detect/fallback to /api/workspaces/.../pages/ for self-hosted CE versions that do not expose project pages under /api/v1; or
  • document that page tools require a newer Plane server/API than CE v1.3.1, if that is intended.

Related

This looks similar in shape to #126, but for project pages on CE v1.3.1 rather than work-items/milestones on older self-hosted versions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions