MCP server for integrating with Plane project management tool, enabling creation and management of work items
Two tools with basic descriptions and minimal parameter documentation. GetAllWorkItemsStatuses has no input parameters (empty schema), CreateWorkItem has three string parameters with descriptions but no type constraints, enums, or validation guidance. No output schemas documented. Descriptions are present but generic (194-char baseline suggests room for improvement). No error handling guidance, no idempotency markers, no security considerations. Tool names follow verb_noun pattern (positive), but lack specificity about what 'work item' means in context.
This tool allows for the creation of a work item in Plane with the given state.
Get all possible statuses that a work item could be created in. These statuses denote where a work item would be in a typical Kanban flow. The state ids returned can be used for other tools such as creating work items.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., work_item_id for chaining). GetAllWorkItemsStatuses returns serialized JSON with unknown structure; CreateWorkItem returns work item object with undocumented fields.
stateId parameter lacks validation guidance. No enum of valid state IDs, no format specification, no example. LLMs will guess or hallucinate invalid IDs. Description says 'derived from GetAllWorkItemsStatuses' but does not specify the exact field name or structure to extract.
No error handling or recovery guidance. Code calls response.EnsureSuccessStatusCode() which throws on HTTP errors, but tool does not catch or translate these into actionable LLM guidance. A 401 (auth failure) or 404 (invalid state) will crash with no recovery hint.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
CreateWorkItem is a write operation but has no confirmation step, dry-run option, or idempotency marker. Agents cannot safely retry on ambiguous failures without risking duplicate work items. No tool annotation (destructiveHint) present.
Parameter descriptions lack format/constraint details. 'name' and 'description' are free-form strings with no length limits, character restrictions, or examples. LLMs may pass empty strings, extremely long text, or special characters that break the API.