Cross-provider LLM consultation MCP server. First impl of Trellis DSM-26 AngularTechnique substrate.
Three tools with complete schemas and descriptions. Tool names follow verb_noun pattern (consult_*, list_*). Descriptions are substantive (150-250 chars) and explain WHEN to use each tool. However, parameter descriptions lack actionable constraints (e.g., no min/max for timeout_s, no guidance on synthesis_mode trade-offs). Output schema is documented in code but not exposed to LLM via tool definition. Error handling is minimal, no recovery guidance or categorization. Missing tool annotations (readOnlyHint, idempotentHint). consult_ensemble has complex semantics (privacy_tier filtering, synthesis modes) that need clearer parameter documentation.
Dispatch prompt to N providers in parallel; return ONE synthesized response + convergence/divergence signals. This is the default tool for cross-provider architectural review and second-opinion calls. Implements Trellis DSM-26 AngularTechnique substrate.
Send a prompt to ONE LLM provider; return its response. Use for ad-hoc cross-provider checks. For default operation, prefer consult_ensemble (synthesizes across providers).
Return inventory of configured providers, their availability, default models, and cost rates. Use to discover what's wired up.
Parameter descriptions lack actionable constraints. 'timeout_s' has no min/max guidance; 'synthesis_mode' enum lacks explanation of when to use each mode (convergence vs majority vs weighted). LLMs cannot infer trade-offs.
Output schema not documented in tool definitions. LLMs see only tool names/descriptions; they cannot plan downstream calls without knowing what fields consult_ensemble returns (synthesized_response, convergence_score, etc.). Responses are JSON-serialized but structure is opaque to the agent.
No error handling guidance. If a provider fails or times out, the tool returns JSON with an 'error' field, but the LLM has no recovery path. Should include: 'If provider unavailable, try consult_ensemble with different providers' or 'Retryable: timeout, increase timeout_s or reduce max_tokens'.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | <=2025-11-25 | v2 |
Missing tool annotations. All three tools are read-only and idempotent, but inputSchema lacks readOnlyHint and idempotentHint. Agents cannot distinguish safe tools from destructive ones without explicit hints.
privacy_tier parameter description is verbose but lacks clarity on practical impact. 'local_only = Jan only' is clear, but 'opt_out_only' definition ('providers documented as not training on inputs') is vague. Should specify: which providers qualify, and what happens if none match the filter.