Sera FX Agent thinking MCP — read-only analytical compositors over Sera APIs. Provides higher-level FX intelligence: corridor health, vol surface, basis term structure, prediction-market edge, derivative premium decomposition, triangular arb radar.
Two read-only analytical tools with clear, domain-specific descriptions (145 - 180 chars each, within baseline 194 avg). Input schemas present with Zod validation and parameter descriptions. However, output schemas are NOT documented, responses are inferred from code (JSON text blobs, no typed field definitions visible). Error handling returns text status strings ('RED', 'AMBER', 'GREEN') but lacks actionable recovery guidance. Tool names use verb_noun pattern (fx_corridor_pulse, fx_arb_radar) but are domain-specific rather than generic action verbs (get_, search_), which is acceptable for specialized tools. No parameter validation constraints (enums, ranges) visible in schema definitions. Composition is sound, each tool has one responsibility.
Scan a basket of fiat currencies for triangular arbitrage opportunities. For every (A,B,C) triple, compute rate(A,B)*rate(B,C)*rate(C,A). Deviation from 1.0 in bps is the implied edge. Read-only — does not execute.
Snapshot the live health of a Sera FX corridor: executable rate, spread vs reference, depth at the requested size, GREEN/AMBER/RED grade. Read-only — does not execute.
Output schemas not documented. Tool responses return JSON text blobs without typed field definitions. LLMs cannot plan downstream operations or extract structured data reliably.
Error handling lacks recovery guidance. Status strings ('RED', 'AMBER', 'GREEN') and error reasons ('unknown token', 'min_output_zero') do not tell the LLM what to do next or whether to retry.
No input validation constraints visible. Parameters like 'notional' (number) and 'min_edge_bps' (number) lack min/max bounds. LLMs can pass negative, zero, or absurdly large values.
Tool names are domain-specific (fx_*) rather than action verbs (get_, search_). While acceptable for specialized tools, they reduce discoverability and LLM inference of intent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Parameter 'currencies' in fx_arb_radar accepts array but no min/max length constraints visible. LLMs could pass 1 currency (invalid for triangular arb) or 1000+ (performance risk).