A relay server and local agent for exposing selected serial hardware to paired relays. Terminates agent tunnels, serves the relay API, and hosts an MCP endpoint for LLM-host integration.
TunnelHW exposes 4 tools for relay credential management. All tools have descriptions (10-50 chars, below the 50-200 char baseline for LLM optimization) and input schemas with typed parameters. However, critical gaps undermine usability: (1) descriptions are minimal and lack WHEN/WHY context; (2) no output schemas documented; (3) parameter descriptions are terse (avg 40 chars vs 72 baseline); (4) no error handling guidance; (5) no tool annotations (readOnlyHint/destructiveHint); (6) no pagination or result limits despite list_agents potentially returning many items. The 'state-dir' parameter appears in all tools but is never explained, is it a path? A config key? This forces LLMs to guess. Risk labels (WRITE/READ_ONLY) exist but are not exposed in tool definitions, so agents cannot reason about side effects.
List paired agents
Mint a consumer (LLM-host / API) bearer token
Mint a single-use agent pairing token
Revoke an agent's credential
Minimal descriptions lack WHEN/WHY context. 'Mint a single-use agent pairing token' (40 chars) does not explain when to call it vs api-token, what it returns, or prerequisites. Baseline is 50-200 chars with actionable guidance.
No output schemas documented. LLMs cannot plan downstream calls or extract returned IDs. E.g., does pair-token return {token, expiry, agent_id}? Does agents return [{id, name, status}]?
Parameter 'state-dir' appears in all 4 tools but has vague description 'directory holding the relay's credential store'. Is it a filesystem path? A config key? Must it exist? Can it be relative? Ambiguity forces LLM guessing.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Risk labels exist in metadata but are not exposed in tool definitions, so agents cannot reason about side effects or retry safety.
agents tool has no pagination or result limit. If hundreds of agents are paired, returning all in one response blows context window. No limit, offset, or cursor parameters.