A Model Context Protocol server for Plane integration, providing tools to interact with Plane project management system
The Plane MCP server defines 3 tools with schemas and descriptions, but exhibits significant gaps in parameter-level documentation, output schema specification, and error handling guidance. Tool naming is action-oriented (workitem, workitem_type, get_pql_reference) and appropriate. Descriptions exist but are generic and lack depth about when/why to use each tool, dependencies, or return value structure. Parameters have type definitions but most lack detailed descriptions explaining constraints, formats, or allowed values. No output schemas are documented for any tool. Error handling and recovery guidance are absent. The middleware stack (PlaneLoggingMiddleware, CoerceArguments, ValidateActionArguments) suggests validation occurs, but tool-level error recovery patterns are not evident in the source. Overall structure is solid but execution falls short of production quality.
Returns comprehensive Plane Query Language (PQL) reference documentation for composing complex work item queries
Tool for managing work items in Plane projects (create, retrieve, update, delete, list operations)
Tool for resolving work item types in Plane projects
No documented output schemas for any tool. LLMs cannot predict response structure, chain tool calls, or extract relevant fields. Required for production quality.
Parameter descriptions are minimal or absent. 'action' parameter in workitem and workitem_type has brief description but lacks context about side effects (e.g., create/update/delete are destructive). 'pql' parameter lacks format/syntax documentation.
Tool descriptions are too generic (45 - 55 chars) and lack specificity about when/why to use each tool. 'Tool for managing work items' does not explain: When should I call this vs workitem_type? What are the side effects of 'create' vs 'update'? Are calls idempotent? Violates pattern:tool-description baseline of 50 - 200 chars with actionable context.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 60 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
No error handling or recovery guidance in tool definitions. LLMs cannot determine if failures are retryable, user-fixable, or fatal. Middleware validates inputs (ValidateActionArguments) but this is not surfaced in tool descriptions.
'action' parameter is a free-form string with no enum constraint. Accepts 'create, retrieve, update, delete, list' but LLMs may hallucinate other values. Should declare enum: ["create", "retrieve", "update", "delete", "list"].
'detail' parameter in get_pql_reference accepts 'brief' or 'full' but not declared as enum. Should constrain as enum: ["brief", "full"].
Parameters like 'type_id' and 'project_id' are documented as 'UUID of...' but lack guidance on how to obtain these IDs. If an LLM only has project names, it must discover a lookup tool; this dependency is not stated.
Optional parameters not explicitly marked. Schema shows 'name', 'type_id', 'pql' but does not declare required vs optional, forcing LLMs to guess which can be omitted.