MCP Server for Gossip Protocol Epidemic State Sync Skill - implements decentralized anti-entropy gossip dissemination for spreading agent beliefs, observations, and key-value state updates across swarms with logarithmic convergence time
This server has significant definition quality gaps. Tool names lack clear action verbs (publish_state, step_sync are vague). Descriptions are present but generic (10-50 chars, well below the 50-200 char LLM-optimized baseline). Parameter descriptions exist but lack constraints, ranges, or format guidance. No output schemas are documented. Error handling is minimal, responses are bare dicts with no recovery guidance. The 'value' parameter accepts 'any' type with no validation or format hints. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear semantic differences (publish_state and step_sync are destructive writes; check_convergence is read-only).
Check the convergence ratio of a key-value pair across all nodes in the network
Publish state to a node in the gossip network by setting a key-value pair
Execute one or more rounds of gossip protocol synchronization across the network
Tool names lack clear action verbs. 'publish_state' and 'step_sync' are vague; LLMs cannot infer intent from names alone. Should be 'set_node_state' and 'run_gossip_rounds' or similar.
Descriptions are too short (10-50 chars) and lack context. 'Publish state to a node...' does not explain WHEN to use this vs alternatives, what happens on retry, or whether it's idempotent. Baseline for LLM-optimized descriptions is 50-200 chars.
No output schemas documented. Callers cannot predict response structure. Should document: {status, node, key, value} for publish_state; {status, rounds, total_applied} for step_sync; {key, convergence_ratio, nodes_matching} for check_convergence.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
Parameter 'value' accepts 'any' type with no validation, format hints, or constraints. LLMs will pass arbitrary types. Should specify: 'JSON-serializable value (string, number, boolean, object, array). Will be stored as-is and compared by equality in convergence checks.'
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). check_convergence is read-only; publish_state and step_sync are destructive writes. Annotations guide agent planning and retry logic.