Model Context Protocol (stdio) server for 5dive. Exposes the 5dive agent-fleet CLI (tasks, agents, digest) as MCP tools.
5dive MCP demonstrates solid fundamentals: all 6 tools are explicitly registered with complete input schemas, clear descriptions, and well-structured parameters. Naming follows verb_noun convention consistently (task_create, task_show, task_list, agent_send, agent_list, digest_get). Descriptions are concise and action-oriented (average ~120 chars), answering what the tool does and when to use it. All parameters have descriptions and type constraints. However, output schemas are entirely undocumented, the code shows the CLI returns JSON but provides no schema guidance to LLMs about response structure, cardinality, or fields. Error handling is present (rejects with readable messages) but lacks recovery guidance, errors do not suggest next steps or classify retryability. Composition is clean: each tool has one responsibility, names are unambiguous, and parameter inputs align well with expected outputs (e.g., task_create returns an id that task_show accepts). The server lacks security annotations (no destructiveHint/readOnlyHint on tools), which is a gap for an agent-accessible tool that modifies state.
List every agent on the box: name, type, channels, model, and live state.
Send a message to another agent on the fleet by name (inter-agent comms). The recipient receives it in-session.
Get the fleet's daily standup digest (activity, token burn, health). Pass window=7d for the weekly view.
Create a task in the shared 5dive task queue. Returns the new task's id (e.g. DIVE-N). Use for filing work for an agent or human on the fleet.
List tasks in the shared queue. Defaults to open tasks in priority order; filter by status or assignee.
Fetch full detail for one task by id (numeric or DIVE-N): status, priority, body, result, subtasks, and blockers.
Output schemas completely undocumented. No guidance on response structure, field types, cardinality, or how downstream tools should parse results. LLMs cannot reason about chaining tools without documented output.
Error responses lack recovery guidance. Code rejects with readable messages (e.g., '5dive: error (CODE)') but does not indicate whether to retry, what the user should fix, or what tool to call next. Per pattern:recovery-guide, errors must be actionable.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). task_create and agent_send modify state and should be marked destructive; task_show, task_list, agent_list, digest_get are read-only. Annotations enable LLMs to reason about safety and retry logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 62 | 2026-07-28+ | v2 |
task_list description does not document pagination limits or behavior. If the CLI returns unbounded results, LLMs could request thousands of tasks and exhaust context. Per pattern:paginated-result, large result lists need page/offset/limit guidance.
task_create description does not document the return format. Does it return {id: 'DIVE-123'} or a full task object? task_show hint in the description ('Returns the new task's id (e.g. DIVE-N)') implies a scalar, but no schema confirms this for downstream planning.