Trading edge discovery MCP server. Provides tools for browsing validated trading edges, researching trading ideas, discovering edges autonomously, and managing trading strategy validation across futures, equities, and crypto markets.
VARRD MCP server has 10 tools with mixed definition quality. Strengths: most tools have descriptions (8/10 with substantive text), clear naming conventions (verb_noun style), and documented parameters with types. Weaknesses: descriptions vary widely in detail and LLM-optimization; several tools lack comprehensive schema documentation; parameters missing constraints (enums, ranges); no visible error handling guidance; no output schemas documented; security/permission model unclear. Schema completeness is moderate, parameters have type declarations but lack depth constraints, enums, and validation rules. This server lands in the 'Fair' range, functional but with noticeable gaps that would require agent workarounds.
Get personalized market briefing with current trading edges and relevant news.
Buy credits with USDC on Base network. Two-step process: call without payment_intent_id to get deposit address, send USDC, then call with payment_intent_id to confirm. Free to call, no credits consumed.
Check credit balance. Free, no credits consumed. Also auto-detects completed payments.
Autonomous discovery of trading edges. VARRD searches across markets to find statistically validated trading edges matching your topic/criteria. Costs credits.
Get full details for a specific strategy. Returns formula, metrics, and version history. Trade levels may be stale (from last test); use scan() for fresh levels on firing strategies.
Output schemas not documented. Tools like varrd_edges, research, discover, and scan return complex structured responses (widgets, context objects, trade_setup, edge_verdict) visible in examples, but no schema documentation provided to LLMs. Forces LLMs to infer output structure from examples, causing parse errors.
No input validation constraints or enums. Parameters like 'status' (firing/pending/active), 'direction' (LONG/SHORT), 'test_type', and 'search_mode' accept free-form strings with no enum constraints. LLMs will hallucinate invalid values; no guidance on valid options.
No error handling or recovery guidance. Tools silently fail or return errors without suggesting next steps. E.g., if buy_credits fails to receive USDC, no guidance on retry, timeout, or fallback. If search returns no results, no suggestion to broaden query or try discover().
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 67 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 17 | - | v1 |
Talk to VARRD AI for multi-turn research conversation. Typical flow: start with trading idea (no session_id), then continue conversation by passing returned session_id. Check context.has_edge and context.next_actions to determine when to stop and what to say next. Costs credits.
Reset a broken research session. Free, no credits consumed.
Scan saved strategies against current market data. Returns firing status and trade levels for strategies matching filter criteria.
Search saved strategies by keyword or natural language. Returns results ranked by relevance.
Browse VARRD's validated edge library. Three tiers: depth=0 (free) shows markets and status only; depth=1 ($0.50) provides 15-min snapshot with direction, stats, trade levels; depth=2 ($1/edge or $5/all) provides full audit trail with methodology, formula, and performance.
Incomplete parameter descriptions. 'briefing' has {} input but no description of what it returns or when to call it vs edges(). 'reset_session' describes the parameter but not the consequence of calling it (data loss? session purge?). 'buy_credits' two-step flow is described but lacks clarity on payment state transitions and timeout behavior.
Missing idempotency and side-effect declarations. Tools like buy_credits and research consume credits (state-changing), but no documentation of retry safety or idempotence. LLMs cannot reason about whether to retry on failure or how many times to call.
Pagination and result limits not declared. Tools like varrd_edges and search may return many results, but no limit parameter, pagination guidance, or max-result documentation. Risk of context window exhaustion.
No permission or authentication model visible. Tools like buy_credits, reset_session, and research invoke state changes, but no scope declarations (e.g., 'write:credits', 'admin:session') or permission gates documented. Audit trail model unclear.
Confusing two-step flow in buy_credits. Requires two calls with conditional state management (first call without payment_intent_id returns address; second call with payment_intent_id confirms). No documentation of timeout, polling strategy, or state transitions. LLMs will struggle to chain calls correctly.
Generic description for 'briefing'. Only 'Get personalized market briefing with current trading edges and relevant news.' No guidance on what differentiates it from edges(depth=0), when to call it, or what response structure to expect.
Parameter naming inconsistencies. Tools use 'edge_id' (varrd_edges) vs bare 'hypothesis_id' (get_hypothesis). These appear to be the same resource but use different names, forcing LLMs to reason about identity mapping. Similarly, 'market' vs 'markets' (array vs string) in different tools creates confusion.