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
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_projectsworksretrieve_projectworks- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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