MCP stdio server exposing 6 Skein tools for querying A2A multi-agent message flows and observability data
Six read-only tools with complete input schemas and reasonable descriptions. All tools follow verb_noun naming (get_*, list_*, query_*, export_*). Descriptions are 50-200 chars, meeting baseline. However, output schemas are undocumented, LLMs cannot plan downstream calls or extract fields reliably. Parameter descriptions are present but minimal (10-30 chars). No error handling guidance, no recovery paths. Tools are well-composed (single responsibility) and idempotent, but lack the depth expected of production tools.
Self-contained JSON export of a task: timeline, cascade, and agent cards. Suitable for attaching to a bug report. Set include_payloads=False to omit raw JSON-RPC bodies if they contain sensitive data.
Activity summary for one agent: message count, task count, failure rate.
List tasks that ended in failed/rejected/canceled state within the last `hours` hours. Returns JSON with task ids, error codes, error messages, and timestamps. Use this when the user asks 'what failed', 'recent failures', or 'what went wrong'.
Return the full ordered timeline (messages, state transitions, artifacts) for a given A2A task id. Returns 'null' if the task is unknown. Use this when the user wants to see what happened during a specific task.
List agents that exchanged messages within the last `since_minutes` minutes.
Group failures by error_code over the last `days` days. Useful for 'what's the most common failure pattern this week?'
Output schemas completely undocumented. Tools return JSON blobs (dicts, lists) with no field definitions. LLMs cannot plan downstream calls or extract required IDs for chaining.
Parameter descriptions are minimal (10-30 chars). 'hours' described as 'Number of hours to look back' lacks context: does it include partial hours? Is it wall-clock or activity time? Descriptions should be 50-200 chars with constraints.
No error handling guidance. Tools return 'null' on missing task_id (get_task_timeline, export_trace) with no recovery hint. LLM cannot distinguish 'task not found' from 'database error' or know to call list_active_agents or search.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
list_active_agents returns 'recent_message_count' but no task_count or failure_rate. get_agent_activity returns both. Inconsistent response structure forces LLM to call both tools for complete agent picture, wasting tokens.
No pagination support. get_recent_failures defaults limit=20, query_failure_patterns unbounded. Large result sets (100+ failures) will blow context window. Missing total_count, next_cursor, or offset parameters.