Skip to content

list_projects fails on self-hosted Plane v1.3.1 because projects-lite endpoint returns 404 #169

Description

@neo-clon

Summary

plane-mcp-server==0.2.10 appears to call projects-lite when executing list_projects. On a self-hosted Plane v1.3.1 instance, that endpoint does not exist, so list_projects fails with HTTP 404. Pinning the MCP server back to plane-mcp-server==0.2.9 fixes the issue because it uses the regular projects endpoint.

Environment

  • Plane MCP server: plane-mcp-server==0.2.10
  • Plane SDK dependency from PyPI package: plane-sdk==0.2.19
  • Plane self-hosted version: v1.3.1
  • Transport: stdio via uvx
  • Authentication: API key / PAT configured with PLANE_API_KEY
  • Workspace slug: existing workspace slug, redacted here

Observed behavior

Running the MCP tool:

list_projects({"per_page": 10, "order_by": "name"})

eventually fails with:

HTTP 404: Not Found: Page not found.

The authenticated REST API itself is working:

GET /api/v1/users/me/                              -> 200
GET /api/v1/workspaces/<workspace-slug>/projects/  -> 200
GET /api/v1/workspaces/<workspace-slug>/projects-lite/ -> 404

The Plane self-hosted v1.3.1 backend routes expose workspaces/<slug>/projects/, but not workspaces/<slug>/projects-lite/.

Expected behavior

list_projects should work against current self-hosted Plane v1.3.1, either by:

  • using /api/v1/workspaces/<slug>/projects/, or
  • falling back to /projects/ when /projects-lite/ returns 404, or
  • documenting that plane-mcp-server==0.2.10 requires a newer Plane backend than self-hosted v1.3.1.

Workaround

Pinning the MCP server to 0.2.9 works:

{
  "mcpServers": {
    "plane": {
      "command": "uvx",
      "args": ["plane-mcp-server==0.2.9", "stdio"],
      "env": {
        "PLANE_BASE_URL": "https://<self-hosted-plane>",
        "PLANE_API_KEY": "<redacted>",
        "PLANE_WORKSPACE_SLUG": "<workspace-slug>"
      }
    }
  }
}

Direct SDK test with plane-mcp-server==0.2.9 returned the expected project list from /projects/.

Notes

This looks like a regression introduced after 0.2.9, where the projects resource switched from the regular projects endpoint to projects-lite.

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