Plane Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Plane Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol server for [Plane](https://plane.so) (self-hosted or Cloud). It lets an LLM client — Claude Desktop, Claude Code, Cursor, etc. — fully drive your Plane workspace: discover projects, and create / read / update / delete / re-organize work items, states, labels, cycles, modules, and comments.
Verified against a self-hosted instance atplane.nzminds.com(workspacenzmt).
| Resource | Tools |
|---|---|
| Projects | list_projects, find_project, get_project, create_project, update_project, delete_project |
| Work items | list_work_items, get_work_item, get_work_item_by_number, search_work_items, create_work_item, update_work_item, set_work_item_status, delete_work_item |
| States (statuses) | list_states, find_state, create_state, update_state, delete_state |
| Labels | list_labels, create_label, update_label, delete_label |
| Cycles (sprints) | list_cycles, get_cycle, create_cycle, update_cycle, delete_cycle, list_cycle_work_items, add_work_items_to_cycle, remove_work_item_from_cycle |
| Modules | list_modules, get_module, create_module, update_module, delete_module, list_module_work_items, add_work_items_to_module, remove_work_item_from_module |
| Comments | list_comments, add_comment, update_comment, delete_comment |
| Members | list_members, find_member |
Workspace (slug, e.g. "nzmt")
└─ Project (UUID) ← discover with list_projects
├─ Work Items / Issues ← the tickets; have a UUID + human number (TRAVELXS-391)
├─ States ← the statuses (Backlog/Todo/In Progress/Done…), each a UUID
├─ Labels ← UUIDs
├─ Cycles ← time-boxed sprints
└─ Modules ← feature groupingsEverything in a request body is a UUID, not a name. So the normal flow is:
list_projects → pick a project UUID.list_states → map "In Progress" → its UUID. list_members / list_labels likewise.set_work_item_status).Most tools take an optional project_id; if omitted they fall back to PLANE_DEFAULT_PROJECT_ID from your .env.
See [SETUP.md](SETUP.md) for step-by-step instructions (Profile Settings → Personal Access Tokens).
cp .env.example .env
# edit .env: PLANE_BASE_URL, PLANE_API_KEY, PLANE_WORKSPACE_SLUGRequires Python ≥ 3.10.
python -m pip install -e .(or with uv: uv pip install -e .)
plane-mcp # or: python -m plane_mcpIt speaks MCP over stdio, so you normally don't run it by hand — your MCP client launches it.
Add to your MCP config (claude_desktop_config.json, or via claude mcp add):
{
"mcpServers": {
"plane": {
"command": "plane-mcp",
"env": {
"PLANE_BASE_URL": "https://plane.nzminds.com",
"PLANE_API_KEY": "plane_api_xxxxxxxx",
"PLANE_WORKSPACE_SLUG": "nzmt"
}
}
}
}Or, if you'd rather rely on the .env file, drop the env block and use the absolute interpreter:
{
"mcpServers": {
"plane": {
"command": "python",
"args": ["-m", "plane_mcp"],
"cwd": "d:/Govind/Plane MCP"
}
}
}Claude Code one-liner:
claude mcp add plane -- python -m plane_mcp429 with backoff.delete_* tools (project, work item, state, label, cycle, module, comment) are disabled by default. Set PLANE_ALLOW_DELETE=true in .env to expose them. Relationship removals (remove_work_item_from_cycle / _module) are always available since they're reversible./cycle-issues/ and /module-issues/ (the public docs say work_items, which 404s on self-hosted). This server uses the verified paths.src/plane_mcp/
├── config.py # env loading & validation
├── client.py # async HTTP client: pagination, 429 retry, errors
├── server.py # FastMCP instance + tool registration
├── __main__.py # entry point (stdio)
└── tools/ # one module per resource
├── projects.py issues.py states.py labels.py
├── cycles.py modules.py comments.py members.pyMIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.