makeplane / makeplane/plane-mcp-server

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

Open
#163 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
325
Forks
178
Avg merge
1d 12h
Merged PRs (30d)
2

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the project page tools, including create_page, list_pages, and get_features, and trace how PLANE_BASE_URL becomes their request paths. Compare those paths with the /api/v1 and /api routes reported for Plane CE v1.3.1; done means the page tools work against a supported self-hosted version or the required server/API version is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.