The server defines 8 tools with complete JSON Schema input definitions and basic descriptions. However, descriptions are often generic and lack guidance on when/why to use each tool. All tools follow verb_noun naming convention (list, create, update, delete, get). Parameters are typed and mostly described, but lack constraints like enums where appropriate (e.g., status field in update tools has no defined valid values). Output schemas are not documented, the code does not show return type specifications. Error handling is minimal with no recovery guidance. The server uses STDIO transport, which caps the protocol readiness score at 50 regardless of other factors.
No documented output schemas for any tool. LLMs cannot infer what fields to expect in responses, making downstream chaining error-prone and forcing agents to guess at return value structure.
Status and priority fields lack enum constraints and valid-value documentation. status in update tools accepts arbitrary strings with no guidance on what values are valid (e.g., 'active', 'draft', 'archived'?). This invites LLM hallucination.
Document return schemas for all tools. Example: 'Returns { projects: [{ id, name, identifier, description, start_date, end_date, status, created_at, updated_at }], total: number, page: number }'. Include which fields are required.
Convert status and priority fields to enums with explicit valid values. For projects, document: status: enum['active', 'draft', 'archived'] (or whatever Plane supports). For issues, priority: enum['urgent', 'high', 'medium', 'low', 'none'] is already done, apply same rigor to status.
Enhance tool descriptions with selection guidance. Example: 'Use claudeus_plane_issues__list to discover issues matching filters (state, priority, assignee). Use claudeus_plane_issues__get when you have a specific issue_id already and need full details.'
Add error recovery guidance to descriptions. Example for claudeus_plane_projects__delete: 'If the project is not found (404), call claudeus_plane_projects__list to verify the project exists. If permission denied (403), the API token lacks write permissions.'
Add a dry_run or confirm_before_delete parameter to claudeus_plane_projects__delete to prevent accidental permanent deletion. Example: '"dry_run": {"type": "boolean", "default": true, "description": "If true, validate but do not delete. Set to false only after confirming the action."}'
Clarify parameter format expectations in descriptions. For date fields, change 'YYYY-MM-DD' to: 'ISO 8601 date string (YYYY-MM-DD). Example: 2024-12-31. The tool rejects other formats like MM/DD/YYYY or timestamps.'
Score history
Overall score trend
↑ 45 points across a rubric change (v1 → v2)
50/100
Scored
Grade
Overall
Spec posture
Rubric
2026-09-22
D
50
2026-07-28+
v2
2026-03-09
F
5
-
v1
auth
source verified
72/100
Lists all projects in a Plane workspace. If no workspace is specified, lists projects from the default workspace.
Updates an existing project in a workspace. If no workspace is specified, uses the default workspace.
Tool descriptions lack guidance on when to use each tool vs. alternatives. For example, claudeus_plane_issues__list vs. claudeus_plane_issues__get are not distinguished by intent, descriptions should explain that list is for discovery/filtering and get is for a specific known issue ID.
No error handling guidance or recovery patterns documented. Agents have no instruction on how to handle a 404 (resource not found), 403 (permission denied), or API timeout. Recovery suggestions are absent.
STDIO-only transport. This server cannot be invoked from hosted/remote MCP clients (e.g., Claude.ai integration). It only works as a local subprocess, severely limiting deployment scenarios.
Destructive operations (delete) lack confirmation/dry-run support. claudeus_plane_projects__delete permanently removes a project with no safeguard against accidental invocation by an LLM.
Parameter descriptions for date fields do not explain format expectations clearly enough. start_date and target_date mention 'YYYY-MM-DD' but should explicitly note this is the ISO 8601 format and that the tool rejects other formats.
Add pagination guidance to claudeus_plane_issues__list. Document: 'Default page=1, page_size=100. Returns total count of matching issues. Use pagination to retrieve large result sets without exhausting context windows.'
Document which parameters are mutually exclusive. For example, in claudeus_plane_issues__list, if filtering by assignee and created_by simultaneously is not meaningful, state: 'Pass only one of assignee or created_by filter per call.'
Add tool annotation hints (readOnlyHint, destructiveHint, idempotentHint) to enable client-side safety warnings. Example: claudeus_plane_projects__delete should include destructiveHint=true.
Migrate from STDIO to Streamable HTTP transport. STDIO prevents hosted/remote integration with platforms like Claude.ai. HTTP enables broader deployment and integration with standard MCP clients.