Shipwright MCP server — Model Context Protocol service for agent integration
Shipwright MCP exposes 9 task-management tools with complete JSON schemas and basic descriptions. All tools have input schemas with type definitions and examples. However, descriptions are minimal (10-30 chars), parameter descriptions are absent or generic, and output schemas are not documented. Error handling guidance is missing. The server follows verb_noun naming (tasks_list, tasks_create) but lacks LLM-optimized descriptions that explain WHEN to use each tool and what to expect. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels (READ_ONLY, WRITE, DESTRUCTIVE). Parameter constraints are present (enums for 'state', 'kind', 'ready', 'hitl') but lack inline descriptions explaining their meaning.
Bulk insert tasks
Atomically claim a task
Create a task
Delete a task
Get distinct session and repo values
Get a task by ID
Touch heartbeatAt on a claimed task
List tasks
All tool descriptions are under 30 characters ('List tasks', 'Create a task', 'Get a task by ID'). No explanation of WHEN to use each tool, what it returns, or how it differs from similar tools.
No parameter descriptions. Parameters like 'status', 'state', 'ready', 'hitl', 'kind' have no inline documentation explaining their meaning or valid values. LLMs cannot infer that 'state' is an enum of ['open','closed','in_progress','ready','blocked'] without explicit description text.
Output schemas are not documented. No specification of what fields tasks_list, tasks_get, tasks_create return. LLMs cannot plan downstream calls or extract required IDs (e.g., task_id for tasks_update) without knowing response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Update a task
No tool annotations despite clear risk levels. tasks_delete is DESTRUCTIVE, tasks_list is READ_ONLY, tasks_claim is WRITE. MCP spec supports readOnlyHint, destructiveHint, idempotentHint annotations, these are missing, preventing clients from applying appropriate safeguards.
tasks_update and tasks_delete accept only 'id' parameter but do not document what fields can be updated or what the deletion consequence is. tasks_update schema is incomplete, no properties defined for what to update. tasks_delete lacks confirmation or dry-run pattern.