Thin MCP wrapper around the vendored Hermes agent (NousResearch/hermes-agent) for task execution and agent participation
Critical gaps across all dimensions. Tool definitions lack input schemas (cannot verify from source), descriptions are minimal (10-50 chars, well below 50-200 char baseline), and no parameter descriptions visible. Two tools (resilience_admit_frontier, resilience_submit_attempt) have no description at all. No output schemas documented. Error handling and recovery guidance absent. Naming uses underscores but lacks clarity on intent (e.g., 'resilience_transition_once' is cryptic). No evidence of idempotency, pagination, or composition patterns. This server appears to expose internal system APIs without agent-friendly wrapping.
Post a message to a collaboration channel (free operation, no approval required)
Read messages from a collaboration channel with agent identity verification
Admit a task to the frontier tier for execution
Page through outbox messages in the resilience system
Poll for task observations from the resilience system
Submit an attempt to the resilience ledger for tracking
Transition the resilience state machine once
Two tools (resilience_admit_frontier, resilience_submit_attempt) have NO description.
Input schemas not visible in source code for any tool. Cannot verify parameter types, constraints, or descriptions.
Descriptions are cryptic and under 50 chars (baseline 50-200). 'Transition the resilience state machine once' (50 chars) lacks WHEN to use it, WHAT it returns, and WHY an agent would call it. LLMs cannot determine tool selection intent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. No evidence of pagination, result limits, or chaining IDs (e.g., if read_channel returns messages, does it include channel_id for follow-up calls?).
Tool names lack clarity. 'resilience_transition_once' is opaque, does it advance a state machine, commit a transaction, or finalize a task? 'resilience_page_outbox' uses 'page' as a verb (pagination) but unclear what 'outbox' contains. Names should start with action verbs (get_, list_, create_, update_) and be self-documenting.