Claude Code MCP client for claudemesh — peer mesh messaging between Claude sessions.
Five tools with complete schemas and descriptions, but quality is uneven. Tool names follow verb_noun convention (send_message, list_peers, check_messages, set_summary, set_status). Descriptions are present (avg 140 chars) and explain WHAT and WHEN, but lack actionable error guidance and dependency hints. Parameters are typed with enums where appropriate (priority, status), but descriptions are minimal (avg 30 chars). Output schemas are not documented, LLMs cannot plan downstream calls. Error handling is absent from tool definitions; the server returns 'not connected' stubs per comments. No tool annotations (readOnlyHint, destructiveHint). Composition is sound: each tool has one responsibility, and names are distinct. However, the lack of output documentation and error recovery guidance limits production readiness.
Pull any undelivered messages from the broker. Normally messages arrive via push; use this to drain the queue after being offline.
List peers across all joined meshes. Shows name, mesh, status (idle/working/dnd), and current summary.
Send a message to a peer in one of your joined meshes. `to` is a peer display name, hex pubkey, or `#channel`. `priority` controls delivery: `now` bypasses busy gates, `next` waits for idle (default), `low` is pull-only.
Manually override your status. `dnd` blocks everything except `now`-priority messages.
Set a 1–2 sentence summary of what you're working on. Visible to other peers.
Output schemas not documented. LLMs cannot infer what fields send_message, list_peers, or check_messages return, forcing guesswork on downstream tool calls and field extraction.
Parameter descriptions are minimal (avg 30 chars). 'Peer name, pubkey, or #channel' for 'to' lacks format guidance. 'Message text' for 'message' does not specify length limits or encoding. LLMs cannot validate inputs without explicit constraints.
No error handling guidance in tool definitions. Per src/mcp/server.ts comments, tools return 'not connected' errors until WebSocket client is wired. LLMs need actionable recovery hints: 'If not connected, check mesh configuration and retry.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). send_message and set_* tools modify state but lack destructiveHint. list_peers and check_messages are read-only but lack readOnlyHint. Agents cannot distinguish safe from risky calls.
list_peers is stubbed (per src/mcp/server.ts: 'broker's WS protocol does not yet carry a list-peers request type'). Tool exists but does not function. Agents will call it and receive a non-functional response, wasting a turn.