Skip to main content
Glama

VARRD — Statistically Validated Trading Edges + AI Research Engine

varrd_edges

Read-onlyIdempotent

THE PRIMARY TOOL — start here. FREE at depth=0, always safe to call.

Live feed of THIS USER'S OWN statistically validated trading edges — the ones on their account — running 24/7 against real market data. See which of YOUR edges are firing right now, get trade levels, or audit the full methodology. Scoped to the connected account: if the user has no edges yet, this returns none (it is NOT a general/shared library).

THREE TIERS: depth=0 (FREE — call this first): See which of YOUR edges are firing right now, pending bar close, or actively in trades. Markets and status only — no direction, no stats. Get a sense of what's live. depth=1 ($0.50): Unlock direction, occurrence count, EV/trade, stop-loss, take-profit, hold horizon, and current entry prices for ALL active edges in one request. depth=2 ($1 per edge, $5 for all): Full methodology — the actual formula, setup code, how the edge was discovered, edge decay analysis, complete performance analytics (Sharpe, drawdown, equity curve, profit factor). Machine-readable so any AI can audit the statistical rigor. Includes drill-down sections (free after purchase): setup_code, horizons, analytics, occurrences, and view (interactive chart link for your user, 15 min).

Every edge in this library is Bonferroni-corrected, tested against both zero returns and market baseline, with K-tracking to prevent p-hacking. Out-of-sample validated. Full transparency.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
depthNo0=free (markets + status), 1=$0.50 (direction, stats, trade levels for ALL active edges), 2=$1/edge or $5/all (full methodology + performance). Cheaper than a coffee.
marketNoFilter by market symbol (e.g. 'ES', 'GC'). Omit to see all.
statusNoFilter by status: 'firing', 'pending', 'active', or omit for all.
edge_idNoSpecific edge ID for depth 1 or 2 detail. Omit to see all edges.
sectionNoDrill into a specific section of a depth=2 edge (free after purchase). Options: setup_code, horizons, analytics, occurrences, view. Omit to get the overview directory.
directionNoFilter by direction: 'LONG' or 'SHORT'.
timeframeNoFilter by timeframe: '60min', '120min', '240min', '480min', 'daily', 'weekly'.
asset_classNoFilter by asset class: 'futures', 'equities', 'crypto'.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "text": {
      -      "description": "Formatted edge data (depth 0/1) or directory overview (depth 2)",
      -      "type": "string"
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  2. Changed9 schema fields changed
    • removedOutput schema / description
      Removed value: -"Response format varies by depth — always delivered as formatted plain text designed for AI reading. Drill deeper only when needed.\n\ndepth=0: Market directory grouped by status (FIRING/PENDING/ACTIVE) with edge IDs.\ndepth=1: One-line summary per edge — direction, win rate, EV, stop/target, hold period, entry date, inline status tags.\ndepth=2 + edge_id: Full methodology card — TRADE (entry/exit/stops), PERFORMANCE (WR/EV/p-value/post-discovery), INTEGRITY (K/discovery date/lookahead/beats market), DISCOVERY (explanation), FORMULA (DSL expression), plus a menu of drill-down sections.\ndepth=2 + section: Section drill-down (free after purchase) — setup_code (full DSL code), horizons (per-horizon table), analytics (SQN/Kelly/Monte Carlo/drawdown/regime/decay), occurrences (every signal with date+return), view (interactive chart URL, 15 min).\ndepth=2 no edge_id: Card overview of every edge."
    • removedOutput schema / properties / depth
      Removed value: -{
      -  "enum": [
      -    0,
      -    1,
      -    2
      -  ],
      -  "type": "integer"
      -}
    • removedOutput schema / properties / edge_count
      Removed value: -{
      -  "description": "Number of edges in response",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / edge_id
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / response_type
      Removed value: -{
      -  "description": "directory=depth 0, snapshot=depth 1, edge_card=depth 2 single, section=drill-down, library_overview=depth 2 all",
      -  "enum": [
      -    "directory",
      -    "snapshot",
      -    "edge_card",
      -    "section",
      -    "library_overview",
      -    "error",
      -    "empty"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / section
      Removed value: -{
      -  "description": "Which section (only for section drill-downs)",
      -  "enum": [
      -    "setup_code",
      -    "horizons",
      -    "analytics",
      -    "occurrences",
      -    "view"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / summary
      Removed value: -{
      -  "properties": {
      -    "active": {
      -      "type": "integer"
      -    },
      -    "firing": {
      -      "type": "integer"
      -    },
      -    "pending": {
      -      "type": "integer"
      -    }
      -  },
      -  "type": "object"
      -}
    • changedOutput schema / properties / text / description
      Previous value: -"Formatted plain text — the primary response. Read this."New value: +"Formatted edge data (depth 0/1) or directory overview (depth 2)"
    • removedOutput schema / required
      Removed value: -[
      -  "response_type",
      -  "text"
      -]
  3. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "description": "Response format varies by depth — always delivered as formatted plain text designed for AI reading. Drill deeper only when needed.\n\ndepth=0: Market directory grouped by status (FIRING/PENDING/ACTIVE) with edge IDs.\ndepth=1: One-line summary per edge — direction, win rate, EV, stop/target, hold period, entry date, inline status tags.\ndepth=2 + edge_id: Full methodology card — TRADE (entry/exit/stops), PERFORMANCE (WR/EV/p-value/post-discovery), INTEGRITY (K/discovery date/lookahead/beats market), DISCOVERY (explanation), FORMULA (DSL expression), plus a menu of drill-down sections.\ndepth=2 + section: Section drill-down (free after purchase) — setup_code (full DSL code), horizons (per-horizon table), analytics (SQN/Kelly/Monte Carlo/drawdown/regime/decay), occurrences (every signal with date+return), view (interactive chart URL, 15 min).\ndepth=2 no edge_id: Card overview of every edge.",
      +  "properties": {
      +    "depth": {
      +      "enum": [
      +        0,
      +        1,
      +        2
      +      ],
      +      "type": "integer"
      +    },
      +    "edge_count": {
      +      "description": "Number of edges in response",
      +      "type": "integer"
      +    },
      +    "edge_id": {
      +      "type": "string"
      +    },
      +    "response_type": {
      +      "description": "directory=depth 0, snapshot=depth 1, edge_card=depth 2 single, section=drill-down, library_overview=depth 2 all",
      +      "enum": [
      +        "directory",
      +        "snapshot",
      +        "edge_card",
      +        "section",
      +        "library_overview",
      +        "error",
      +        "empty"
      +      ],
      +      "type": "string"
      +    },
      +    "section": {
      +      "description": "Which section (only for section drill-downs)",
      +      "enum": [
      +        "setup_code",
      +        "horizons",
      +        "analytics",
      +        "occurrences",
      +        "view"
      +      ],
      +      "type": "string"
      +    },
      +    "summary": {
      +      "properties": {
      +        "active": {
      +          "type": "integer"
      +        },
      +        "firing": {
      +          "type": "integer"
      +        },
      +        "pending": {
      +          "type": "integer"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "text": {
      +      "description": "Formatted plain text — the primary response. Read this.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "response_type",
      +    "text"
      +  ],
      +  "type": "object"
      +}
  4. Changed3 schema fields changed
    • addedInput schema / properties / asset_class
      Added value: +{
      +  "description": "Filter by asset class: 'futures', 'equities', 'crypto'.",
      +  "enum": [
      +    "futures",
      +    "equities",
      +    "crypto"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / direction
      Added value: +{
      +  "description": "Filter by direction: 'LONG' or 'SHORT'.",
      +  "enum": [
      +    "LONG",
      +    "SHORT"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / timeframe
      Added value: +{
      +  "description": "Filter by timeframe: '60min', '120min', '240min', '480min', 'daily', 'weekly'.",
      +  "type": "string"
      +}
  5. Changed1 schema field changed
    • addedInput schema / properties / section
      Added value: +{
      +  "description": "Drill into a specific section of a depth=2 edge (free after purchase). Options: setup_code, horizons, analytics, occurrences, view. Omit to get the overview directory.",
      +  "type": "string"
      +}
  6. Changed1 schema field changed
    • changedInput schema / properties / depth / description
      Previous value: -"0=free (markets + status), 1=$2 (direction, stats, trade levels for ALL active edges), 2=$5 (full methodology + performance for ALL active edges). One payment unlocks everything at that depth."New value: +"0=free (markets + status), 1=$0.50 (direction, stats, trade levels for ALL active edges), 2=$1/edge or $5/all (full methodology + performance). Cheaper than a coffee."
  7. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint, idempotentHint, and destructiveHint, and the description agrees fully. It adds substantial behavioral context: free at depth 0, always safe to call, pricing tiers, account scoping, validation methodology, and drill-down behavior after purchase. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the most important instruction ('start here') and organized clearly into tiers and validation notes. It is longer than minimal, with some redundant marketing phrases like 'Full transparency' and repeated validation claims, but the structure makes the content scannable and decision-relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 optional parameters, no output schema, and multi-tier pricing, the description is remarkably complete: it covers scoping, pricing, return contents per depth, filter semantics, no-edge behavior, and output sections. An agent has enough context to call the tool correctly and set user expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds real value by explaining the business semantics of depth tiers, what each tier unlocks, and the drill-down sections, which helps an agent choose parameters. It does not deeply elaborate on market, status, or timeframe syntax, but the schema already covers those.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with a specific verb+resource: it is a live feed of the user's own statistically validated trading edges, scoped to the connected account. It clearly distinguishes itself from a general/shared library and tells the agent this is the primary starting point.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Strong when-to-use guidance is present: 'THE PRIMARY TOOL — start here' and 'call this first', plus a clear exclusion that if the user has no edges it returns none and is not a general library. However, it does not explicitly name sibling tools as alternatives or explain when to prefer varrd_ai, search, or get_hypothesis.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.