Skip to main content
Glama

VARRD — Statistically Validated Trading Edges + AI Research Engine

Server Details

Validated trading edges across futures, equities, crypto. Live signals, full audit trail.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
varrdinc/varrd
GitHub Stars
24
Server Listing
Varrd

Available Tools

9 tools
autonomous_varrd_aiAInspect

Point VARRD's autonomous AI in a direction and let it discover edges for you. Give it a topic and it draws from one of the most comprehensive market structure knowledge graphs ever built — containing ideologies and theories, not statistics — so it generates genuinely novel hypotheses rather than overfitting to what already worked.

BEST FOR: Exploring a space broadly. Give it 'momentum on grains' and it might test wheat seasonal patterns, corn spread reversals, or soybean crush ratio momentum. It propagates from your seed idea into related concepts you might not think of.

Returns a complete result — edge or no edge, stats, trade setup. Each call tests ONE hypothesis through the full pipeline (~$0.25/idea). Call again for another idea.

Use 'varrd_ai' instead when YOU have a specific idea to test and want full control over each step.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesResearch topic or trading idea (e.g. 'BTC 240min short setups', 'momentum on grains', 'mean reversion after VIX spikes').
contextNoPrior conversation context — recent user queries to use as research inspiration. Optional.
marketsNoFocus on specific markets (e.g. ['ES', 'NQ']). Omit for VARRD to choose.
test_typeNoType of statistical test. Default: event_study.event_study
search_modeNofocused = stay close to topic. explore = creative freedom. Default: focused.focused
asset_classesNoLimit to specific asset classes. Default: all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
textNoFull research result with edge verdict
contextNohas_edge, edge_verdict, workflow_state
widgetsNoChart, test results, trade setup
session_idNo

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false), the description adds crucial behavioral details: each call tests exactly ONE hypothesis, costs ~$0.25/idea, and propagates from the seed idea into related concepts. It also explains the output: 'edge or no edge, stats, trade setup.' These are not present in the schema, providing genuine transparency.

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 well-structured with clear sections ('BEST FOR', 'Returns', alternative tool). It is slightly verbose with marketing phrases like 'comprehensive market structure knowledge graphs ever built', but every sentence carries information. Front-loaded with the core purpose, and examples aid comprehension. A minor trim could improve conciseness, but it is not wasteful.

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?

Given the tool's complexity (6 parameters, output schema exists, annotations present), the description provides sufficient context for an AI agent to decide when to invoke it. It covers what the tool does, example usage, cost, output summary, and the distinction from a sibling tool. The output schema handles return values, so no further elaboration is needed. This is a complete description.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds illustrative meaning to the 'topic' parameter via the 'momentum on grains' example, but does not enhance understanding of other parameters like 'context', 'markets', 'test_type', or 'search_mode'. It does not contradict or significantly add beyond the schema descriptions, so a 3 is appropriate.

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?

The description clearly states the tool's purpose: 'Point VARRD's autonomous AI in a direction and let it discover edges for you.' It explains that it generates and tests hypotheses, and explicitly distinguishes this from the sibling tool 'varrd_ai' for controlled testing. The verb 'discover' and resource 'edges' make the primary function unambiguous.

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

Usage Guidelines5/5

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

It explicitly says 'BEST FOR: Exploring a space broadly' and provides concrete examples of when to use it. It also gives a clear exclusion criterion: 'Use 'varrd_ai' instead when YOU have a specific idea to test and want full control over each step.' This is textbook usage guidance.

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

buy_creditsAInspect

Buy credits for the edge library and AI research. Default $5 minimum. Free — no credits consumed to call this.

TWO PAYMENT METHODS: card (default): Returns a Stripe Checkout link for your user to click and pay. After payment, call check_balance to confirm credits were added. crypto: USDC on Base. Fully autonomous — no human needed. Three steps: 1. buy_credits(payment_method='crypto') → returns deposit address + payment_intent_id 2. Send USDC to the deposit address (use your wallet tool) 3. buy_credits(payment_intent_id='pi_...') → confirms payment, credits added instantly If you have wallet access, this is the fastest path — fully machine-to-machine.

ParametersJSON Schema
NameRequiredDescriptionDefault
amount_centsNoAmount in cents (default 500 = $5.00). Minimum $5.
payment_methodNoPayment method: 'card' (default, Stripe Checkout) or 'crypto' (USDC on Base).card
payment_intent_idNoFor crypto: Stripe PaymentIntent ID from a previous buy_credits call. Pass after sending USDC to confirm.

Output Schema

ParametersJSON Schema
NameRequiredDescription
depositNoUSDC deposit address for crypto payment
checkout_urlNoStripe Checkout link for card payment
current_balance_centsNo

TDQS

A5/5.0
Behavior5/5

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

Discloses that the tool is free (no credits consumed), returns a Stripe Checkout link for card, and provides a deposit address and payment_intent_id for crypto. It also explains the two-step confirmation behavior, offering context beyond the annotations.

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

Conciseness5/5

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

The description is well-organized with clear headings and numbered steps, making it scannable. Every sentence provides actionable information without waste.

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?

Covers the full payment lifecycle, including fallback to check_balance, exact call sequence for crypto, and the condition of instant credit addition after confirmation. Given the complexity of a payment tool, this is complete.

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

Parameters5/5

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

The schema already describes all three parameters, but the description adds operational meaning by explaining the two-phase crypto flow (first with payment_method='crypto', then with payment_intent_id to confirm) and the default amount_cents. This makes the parameters' roles clear in context.

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?

The description clearly states the tool 'Buys credits for the edge library and AI research' and details the two payment methods. It also distinguishes itself from the sibling check_balance by referencing it for post-payment confirmation.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: card for user-mediated Stripe payment, crypto for autonomous machine-to-machine flow when wallet access is available. It also instructs the agent to call check_balance after card payment, naming a sibling alternative.

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

check_balanceA
Read-onlyIdempotent
Inspect

Check your credit balance and see available credit packs. Free — no credits consumed. Also auto-detects completed payments — call this after your user pays via a checkout link to confirm credits were added. If payment went through, the response includes recovered_cents.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
credit_packsNoAvailable credit packs for purchase
balance_centsNoCurrent credit balance in cents
recovered_centsNoCredits recovered from completed payments (if any)

TDQS

A4.9/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint, idempotentHint, destructiveHint), the description adds valuable context: 'Free — no credits consumed' and the auto-detection behavior with 'recovered_cents' in the response. This enriches the agent's understanding of side effects and return values.

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

Conciseness5/5

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

Three focused sentences, each earning its place: first states the core purpose, second addresses cost, third provides a critical usage scenario and expected response. No redundancy or filler.

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?

The description fully covers the tool's purpose, usage context, and important behavioral nuances. With output schema available and annotations present, no additional explanation is needed for a zero-parameter tool.

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?

The tool has zero parameters and the schema is empty, so there's nothing to explain. Baseline for 0 params is 4, and the description appropriately mentions the response field 'recovered_cents' which aligns with the output schema.

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?

The description uses specific verbs ('Check', 'see', 'auto-detects') and clearly identifies the resource ('credit balance', 'credit packs', 'completed payments'). It distinguishes from siblings like buy_credits by focusing on checking and payment confirmation, not purchasing.

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

Usage Guidelines5/5

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

Explicitly states the tool is free and safe to use, and gives a concrete scenario ('call this after your user pays via a checkout link to confirm credits were added'). This provides clear when-to-use guidance and implies alternatives like buy_credits for purchasing.

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

get_briefedA
Read-only
Inspect

Get a personalized market news briefing based on your validated edge library. Profiles your strategies, searches today's news for the instruments and setups you actually trade, and writes a concise digest connecting each headline to your specific book.

Each news item includes a ↳ line tying it to your actual positions and edges (e.g. 'your ES momentum setups', 'your GC mean-reversion edge').

Requires at least 5 strong edges in your library. Costs credits.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
newsNoPersonalized market news digest
profileNoTrader profile based on edge library
strong_countNoNumber of strong edges in library

TDQS

A4.7/5.0
Behavior5/5

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

The description goes beyond the annotations by disclosing important behavioral traits: it 'Costs credits', requires a specific prerequisite ('at least 5 strong edges'), and explains the process ('Profiles your strategies, searches today's news...'). It also describes the output format with '↳ lines'. These details are not present in the annotations and add significant transparency.

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

Conciseness5/5

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

The description is concise and well-structured: the first sentence gives the main purpose, the second explains the output detail, and the third states prerequisites and cost. Every sentence adds value, and there is no wasted text.

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?

Given that the tool has no parameters and an output schema exists, the description is complete. It covers the core behavior, prerequisites, cost, and what the user can expect in the output. No gaps are apparent.

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?

The tool has zero parameters, so the baseline for parameter semantics is 4. The description adds no param-specific information because there are no params, which is acceptable; schema coverage is 100% by default.

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?

The description clearly states the tool's function: 'Get a personalized market news briefing based on your validated edge library.' The verb 'get' plus the resource 'briefing' is specific and distinguishes it from sibling tools like general 'search' or 'varrd_ai'. It also explains the unique value proposition of tying headlines to the user's positions and edges.

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?

The description provides clear context for when to use the tool: it requires 'at least 5 strong edges in your library' and is intended for a personalized briefing. However, it does not explicitly mention alternatives or when not to use it, so it falls just short of the 'explicit when/when-not' benchmark.

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

get_hypothesisA
Read-onlyIdempotent
Inspect

Get full detail for a specific hypothesis/strategy. Returns formula, entry/exit rules, direction, performance metrics (win rate, Sharpe, profit factor, max drawdown), version history, and trade levels. Everything an agent needs to understand and act on a strategy.

ParametersJSON Schema
NameRequiredDescriptionDefault
hypothesis_idYesThe hypothesis ID — from varrd_edges (any depth), search, or scan results.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNo
formulaNo
win_rateNo
directionNo
hypothesis_idNo
horizon_resultsNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations cover read-only, idempotent, non-destructive behavior. The description adds meaningful context beyond that by enumerating exactly what is returned—formula, entry/exit rules, direction, performance metrics, version history, trade levels. 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.

Conciseness5/5

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

Three short sentences with the action front-loaded in the first sentence, a concise enumeration of return contents in the second, and a purpose statement in the third. No wasted words or repetition.

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 single-parameter read-only tool with full annotations and an output schema, the description is complete. It explains what the tool returns, when to use it, and where the ID comes from. Nothing critical is missing for an agent to select and invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%; the hypothesis_id parameter is well described with its source (varrd_edges, search, scan results). The description does not add parameter-specific guidance beyond referring to a specific hypothesis/strategy, so baseline 3 is appropriate.

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?

The description clearly states a specific verb and resource: getting full detail for a specific hypothesis/strategy. It lists concrete return fields and distinguishes itself from sibling tools like search or varrd_edges by focusing on retrieval of complete details for a known ID.

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?

The description provides clear context: use when you already have a hypothesis_id from varrd_edges, search, or scan results and need full strategy details to understand and act. It does not explicitly name alternatives or when-not-to-use, but the intended context is unambiguous.

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

reset_sessionA
DestructiveIdempotent
Inspect

Kill a broken research session and start fresh. Use this when a session gets stuck, produces errors, or enters a bad state. Free — no credits consumed. After resetting, call research without a session_id to start a new clean session.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesThe session_id to reset.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resetNo
messageNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already mark the tool as destructive and idempotent. The description adds valuable behavioral context beyond these hints: it notes the operation is free ('Free — no credits consumed') and that the old session is effectively discarded, letting the agent plan accordingly.

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

Conciseness5/5

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

The description is three sentences long, front-loaded with the purpose, and each sentence earns its place: what it does, when to use it, cost, and next step. No filler or redundancy.

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?

Given the tool's simplicity (one required parameter), existing annotations, and an output schema, the description is complete. It covers when to use, cost implications, and the aftermath, leaving no critical gaps.

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 coverage is 100%, so the parameter description already explains session_id. The description adds context by specifying this is a 'research session' and explains that the next call should omit session_id, giving the parameter semantic meaning beyond the schema's generic wording.

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?

The description opens with 'Kill a broken research session and start fresh' — a specific verb and resource that clearly states what the tool does. It distinguishes reset_session from sibling tools like search or buy_credits by focusing on session lifecycle management.

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

Usage Guidelines5/5

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

It explicitly states when to use the tool ('when a session gets stuck, produces errors, or enters a bad state') and provides a clear next step ('call research without a session_id'). The guidance is practical and unambiguous, covering the primary use case and follow-up action.

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

varrd_aiAInspect

Talk to VARRD AI (~$0.25/turn). Describe any trading idea in plain language and the system handles everything — loading decades of market data, charting your pattern, running statistical tests, backtesting with stops, and generating exact trade setups.

MULTI-TURN: First call creates a session. Keep calling with the same session_id, following context.next_actions each time.

  1. Your idea -> VARRD charts pattern

  2. 'test it' -> statistical test (event study or backtest)

  3. 'show me the trade setup' -> exact entry/stop/target prices

HYPOTHESIS INTEGRITY (critical): VARRD tests ONE hypothesis at a time — one formula, one setup. Never combine multiple setups into one formula or ask to 'test all' — each idea must be tested as a separate hypothesis for the statistics to be valid. Say 'start a new hypothesis' between ideas to reset cleanly.

  • ALLOWED: Test the SAME setup across multiple markets ('test this on ES, NQ, and CL') — same formula, different data.

  • NOT ALLOWED: Test multiple DIFFERENT formulas/setups at once — each is a separate hypothesis requiring its own chart-test-result cycle. If ELROND council returns 4 setups, test each one separately: chart setup 1 -> test -> results -> 'start new hypothesis' -> chart setup 2 -> etc.

KEY CAPABILITIES you can ask for:

  • 'Use the ELROND council on [market]' -> 8 expert investigators

  • 'Optimize the stop loss and take profit' -> SL/TP grid search

  • 'Test this on ES, NQ, and CL' -> multi-market testing

  • 'Simulate trading this with 1.5 ATR stop' -> backtest with stops

EDGE VERDICTS in context.edge_verdict after testing:

  • STRONG EDGE: Significant vs zero AND vs market baseline

  • MARGINAL: Significant vs zero only (beats nothing, but real signal)

  • PINNED: Significant vs market only (flat returns but different from market)

  • NO EDGE: Neither significant test passed

TERMINAL STATES: Stop when context.has_edge is true (edge found) or false (no edge — valid result). Always read context.next_actions.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesYour trading idea, research question, or instruction (e.g. 'test it', 'show trade setup').
session_idNoSession ID from a previous call. Omit to start a new research session.

Output Schema

ParametersJSON Schema
NameRequiredDescription
textNoAI response text
contextNoWorkflow state, edge verdict, next actions
widgetsNoChart, event study, backtest, or trade setup widgets
session_idNoSession ID for multi-turn conversation

TDQS

A4.7/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint=false, openWorldHint=true), the description discloses cost (~$0.25/turn), the multi-turn session state, the 'ONE hypothesis at a time' constraint, edge verdict categories, and terminal states. This is rich behavioral context not captured in structured fields.

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

Conciseness5/5

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

Though lengthy, the description is sectioned logically (MULTI-TURN, HYPOTHESIS INTEGRITY, KEY CAPABILITIES, EDGE VERDICTS, TERMINAL STATES) and every sentence carries functional guidance for a complex tool. It is front-loaded with the core purpose and then details the workflow without fluff.

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 complex multi-turn tool, the description covers the full lifecycle: session creation, hypothesis testing, allowed/not-allowed patterns, verdict interpretation, and stopping criteria. It references context fields (has_edge, next_actions, edge_verdict) and assumes an output schema, so the agent is fully equipped to use the tool correctly.

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 coverage is 100%, but the description adds value by giving concrete message examples ('test it', 'show me the trade setup') and clarifying session_id behavior (omit to start new). This supports the schema without redundancy, though it doesn't define parameter constraints beyond what's already present.

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?

The description opens with a clear statement: "Talk to VARRD AI... Describe any trading idea in plain language and the system handles everything..." It enumerates specific capabilities (charting, statistical tests, backtesting, trade setups) and distinguishes from siblings by emphasizing interactive multi-turn research rather than autonomous execution.

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?

The description provides an explicit multi-turn protocol, including 'First call creates a session. Keep calling with the same session_id, following context.next_actions each time.' It also gives allowed/not-allowed examples for hypothesis testing, but doesn't explicitly reference sibling tools as alternatives, so it lacks explicit when-not/alternatives.

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

varrd_edgesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON 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'.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and the description is fully consistent — the tool is a safe, non-destructive audit surface. Beyond that, the description adds genuinely useful behavioral context the annotations cannot: the cost model per tier ($0.50/$1/$5), the account scoping, and the statistical methodology (Bonferroni-corrected, out-of-sample, K-tracking). This adds value above the structured annotations.

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

Conciseness3/5

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

The description is well-structured with headers and front-loads the critical 'start here, FREE at depth=0' information. However, it is verbose — pricing is repeated across tiers, and closing lines like 'Machine-readable so any AI can audit the statistical rigor' and 'Full transparency' add marketing flourish rather than operational content. It could be tightened without losing meaning.

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, paid tiers, and no output schema, this description is thorough: it defines what each depth returns, how pricing works, what is scoped to the user, the filterable dimensions, and the drill-down sections. Combined with the annotations carrying the safety profile and the schema covering all parameters at 100%, nothing an agent needs to call it correctly is missing.

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 coverage is 100%, so the baseline is 3. The description substantially enriches the 'depth' parameter by explaining exactly what each tier returns and its price, which the schema's enum alone does not convey. The remaining parameters (market, status, edge_id, section, direction, timeframe, asset_class) are adequately documented in the schema itself, so no additional compensation is needed there.

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?

The description opens with 'THE PRIMARY TOOL — start here' and names the specific verb+resource: a live feed of THIS USER'S OWN statistically validated trading edges. It distinguishes itself by explicitly stating what it is NOT ('it is NOT a general/shared library'), which separates it cleanly from the sibling 'search' and AI assistant tools.

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?

The three-tier structure gives explicit when-to-use guidance ('depth=0 (FREE — call this first)'), and the scoping exclusion ('NOT a general/shared library') rules out the wrong use case. It doesn't name a specific sibling as an alternative (e.g., directing to varrd_ai for general questions), but the 'start here' primacy plus clear tier semantics is strong practical routing guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool update
    • Changedget_hypothesis1 field changed
      • changedInput schema / properties / hypothesis_id / description
        Previous value: -"The hypothesis ID (from search or scan results)."New value: +"The hypothesis ID — from varrd_edges (any depth), search, or scan results."
  2. 1 tool update
    • Changedvarrd_edges1 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
  3. 9 tool updates
    • Changedautonomous_varrd_ai6 fields changed
      • addedOutput schema / properties / context / description
        Added value: +"has_edge, edge_verdict, workflow_state"
      • removedOutput schema / properties / context / properties
        Removed value: -{
        -  "edge_verdict": {
        -    "description": "STRONG_EDGE, MARGINAL, PINNED, or NO_EDGE",
        -    "type": "string"
        -  },
        -  "has_edge": {
        -    "type": [
        -      "boolean",
        -      "null"
        -    ]
        -  },
        -  "workflow_state": {
        -    "type": "string"
        -  }
        -}
      • changedOutput schema / properties / text / description
        Previous value: -"Full research result — read this for the finding"New value: +"Full research result with edge verdict"
      • addedOutput schema / properties / widgets / description
        Added value: +"Chart, test results, trade setup"
      • removedOutput schema / properties / widgets / items
        Removed value: -{
        -  "properties": {
        -    "data": {
        -      "type": "object"
        -    },
        -    "type": {
        -      "enum": [
        -        "chart",
        -        "event_study",
        -        "backtest",
        -        "trade_setup",
        -        "research",
        -        "stop_optimizer",
        -        "sltp_config",
        -        "parallel_event_study",
        -        "batch_event_study"
        -      ],
        -      "type": "string"
        -    }
        -  },
        -  "type": "object"
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "session_id",
        -  "text",
        -  "context"
        -]
    • Changedbuy_credits10 fields changed
      • removedOutput schema / description
        Removed value: -"Response varies by payment path. Card: returns checkout_url for user. Crypto step 1: returns deposit address + payment_intent_id. Crypto step 2 (confirm): returns status + new balance."
      • changedOutput schema / properties / checkout_url / description
        Previous value: -"Stripe Checkout link (card payment)"New value: +"Stripe Checkout link for card payment"
      • changedOutput schema / properties / deposit / description
        Previous value: -"Crypto deposit details (USDC on Base)"New value: +"USDC deposit address for crypto payment"
      • removedOutput schema / properties / deposit / properties
        Removed value: -{
        -  "address": {
        -    "type": "string"
        -  },
        -  "amount_usdc": {
        -    "type": "string"
        -  },
        -  "chain": {
        -    "type": "string"
        -  },
        -  "network": {
        -    "type": "string"
        -  },
        -  "token": {
        -    "type": "string"
        -  }
        -}
      • removedOutput schema / properties / error
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / instructions
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / new_balance_cents
        Removed value: -{
        -  "description": "Balance after credit (confirm only)",
        -  "type": "integer"
        -}
      • removedOutput schema / properties / payment_intent_id
        Removed value: -{
        -  "description": "For crypto: pass back to confirm payment",
        -  "type": "string"
        -}
      • removedOutput schema / properties / purchase_amount_cents
        Removed value: -{
        -  "type": "integer"
        -}
      • removedOutput schema / properties / status
        Removed value: -{
        -  "description": "Payment confirmation status (confirm only)",
        -  "enum": [
        -    "credited",
        -    "already_credited",
        -    "pending",
        -    "failed"
        -  ],
        -  "type": "string"
        -}
    • Changedcheck_balance6 fields changed
      • addedOutput schema / properties / credit_packs / description
        Added value: +"Available credit packs for purchase"
      • removedOutput schema / properties / credit_packs / items
        Removed value: -{
        -  "properties": {
        -    "amount_cents": {
        -      "type": "integer"
        -    },
        -    "label": {
        -      "type": "string"
        -    }
        -  },
        -  "type": "object"
        -}
      • removedOutput schema / properties / lifetime_added_cents
        Removed value: -{
        -  "type": "integer"
        -}
      • removedOutput schema / properties / note
        Removed value: -{
        -  "description": "Payment confirmation message (only if credits recovered)",
        -  "type": "string"
        -}
      • changedOutput schema / properties / recovered_cents / description
        Previous value: -"Credits recovered from completed payments (only if payment detected)"New value: +"Credits recovered from completed payments (if any)"
      • removedOutput schema / required
        Removed value: -[
        -  "balance_cents"
        -]
    • Changedget_briefed6 fields changed
      • removedOutput schema / description
        Removed value: -"Personalized market briefing connecting today's news to your edge library."
      • removedOutput schema / properties / briefing
        Removed value: -{
        -  "description": "Personalized market news digest",
        -  "type": "string"
        -}
      • removedOutput schema / properties / markets
        Removed value: -{
        -  "description": "Markets covered",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • addedOutput schema / properties / news
        Added value: +{
        +  "description": "Personalized market news digest",
        +  "type": "string"
        +}
      • changedOutput schema / properties / profile / description
        Previous value: -"Trader profile derived from edge library"New value: +"Trader profile based on edge library"
      • addedOutput schema / properties / strong_count / description
        Added value: +"Number of strong edges in library"
    • Changedget_hypothesis17 fields changed
      • removedOutput schema / properties / beats_market
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / created_at
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / direction / enum
        Removed value: -[
        -  "LONG",
        -  "SHORT"
        -]
      • removedOutput schema / properties / entry_offset
        Removed value: -{
        -  "type": "integer"
        -}
      • removedOutput schema / properties / ev_per_trade
        Removed value: -{
        -  "type": "number"
        -}
      • removedOutput schema / properties / explanation
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / formula / description
        Removed value: -"DSL boolean expression"
      • removedOutput schema / properties / has_edge
        Removed value: -{
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / market
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / performance
        Removed value: -{
        -  "description": "Precomputed analytics (if available from scanner)",
        -  "type": "object"
        -}
      • removedOutput schema / properties / profit_factor
        Removed value: -{
        -  "type": "number"
        -}
      • removedOutput schema / properties / selected_horizon
        Removed value: -{
        -  "type": "integer"
        -}
      • removedOutput schema / properties / setup_code
        Removed value: -{
        -  "description": "Full DSL code that computes the pattern",
        -  "type": "string"
        -}
      • removedOutput schema / properties / sharpe
        Removed value: -{
        -  "type": "number"
        -}
      • removedOutput schema / properties / test_type
        Removed value: -{
        -  "enum": [
        -    "event_study",
        -    "backtest"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / properties / versions
        Removed value: -{
        -  "type": "array"
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "hypothesis_id",
        -  "name"
        -]
    • Changedreset_session3 fields changed
      • removedOutput schema / properties / message / description
        Removed value: -"Confirmation message with next steps"
      • removedOutput schema / properties / reset / description
        Removed value: -"Always true on success"
      • removedOutput schema / required
        Removed value: -[
        -  "reset",
        -  "message"
        -]
    • Changedsearch5 fields changed
      • addedOutput schema / properties / method / description
        Added value: +"Search method: embedding or keyword"
      • removedOutput schema / properties / method / enum
        Removed value: -[
        -  "embedding",
        -  "keyword"
        -]
      • addedOutput schema / properties / results / description
        Added value: +"Matching strategies with win rate, Sharpe, similarity"
      • removedOutput schema / properties / results / items
        Removed value: -{
        -  "properties": {
        -    "direction": {
        -      "type": "string"
        -    },
        -    "has_edge": {
        -      "type": "boolean"
        -    },
        -    "hypothesis_id": {
        -      "type": "string"
        -    },
        -    "market": {
        -      "type": "string"
        -    },
        -    "name": {
        -      "type": "string"
        -    },
        -    "similarity": {
        -      "description": "Cosine similarity (embedding search only)",
        -      "type": "number"
        -    },
        -    "win_rate": {
        -      "type": "number"
        -    }
        -  },
        -  "type": "object"
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "results",
        -  "query"
        -]
    • Changedvarrd_ai9 fields changed
      • addedOutput schema / properties / context / description
        Added value: +"Workflow state, edge verdict, next actions"
      • removedOutput schema / properties / context / properties
        Removed value: -{
        -  "edge_verdict": {
        -    "description": "STRONG_EDGE, MARGINAL, PINNED, or NO_EDGE",
        -    "type": "string"
        -  },
        -  "has_edge": {
        -    "description": "true=edge found, false=no edge, null=still researching",
        -    "type": [
        -      "boolean",
        -      "null"
        -    ]
        -  },
        -  "next_actions": {
        -    "description": "Follow these to continue",
        -    "items": {
        -      "type": "string"
        -    },
        -    "type": "array"
        -  },
        -  "workflow_state": {
        -    "type": "string"
        -  }
        -}
      • removedOutput schema / properties / errors
        Removed value: -{
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • changedOutput schema / properties / session_id / description
        Previous value: -"Session ID — pass back to continue the conversation"New value: +"Session ID for multi-turn conversation"
      • changedOutput schema / properties / text / description
        Previous value: -"AI response text — read this for the research result"New value: +"AI response text"
      • removedOutput schema / properties / token_usage
        Removed value: -{
        -  "properties": {
        -    "input_tokens": {
        -      "type": "integer"
        -    },
        -    "output_tokens": {
        -      "type": "integer"
        -    }
        -  },
        -  "type": "object"
        -}
      • changedOutput schema / properties / widgets / description
        Previous value: -"Visual widgets — charts, statistical test results, trade setups, optimization results"New value: +"Chart, event study, backtest, or trade setup widgets"
      • removedOutput schema / properties / widgets / items
        Removed value: -{
        -  "properties": {
        -    "data": {
        -      "type": "object"
        -    },
        -    "type": {
        -      "description": "chart=candlestick with pattern markers, event_study=forward return analysis, backtest=SL/TP simulation, trade_setup=entry/stop/target card, research=ELROND expert council results, stop_optimizer=SL/TP grid search, parallel/batch_event_study=multi-market results",
        -      "enum": [
        -        "chart",
        -        "event_study",
        -        "backtest",
        -        "trade_setup",
        -        "research",
        -        "stop_optimizer",
        -        "sltp_config",
        -        "parallel_event_study",
        -        "batch_event_study"
        -      ],
        -      "type": "string"
        -    }
        -  },
        -  "type": "object"
        -}
      • removedOutput schema / required
        Removed value: -[
        -  "session_id",
        -  "text",
        -  "context"
        -]
    • Changedvarrd_edges9 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"
        -]
  4. 1 tool update
    • Changedcheck_balance1 field changed
      • removedOutput schema / properties / enforcement_enabled
        Removed value: -{
        -  "type": "boolean"
        -}
  5. 9 tool updates
    • Changedautonomous_varrd_ai1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "context": {
        +      "properties": {
        +        "edge_verdict": {
        +          "description": "STRONG_EDGE, MARGINAL, PINNED, or NO_EDGE",
        +          "type": "string"
        +        },
        +        "has_edge": {
        +          "type": [
        +            "boolean",
        +            "null"
        +          ]
        +        },
        +        "workflow_state": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "session_id": {
        +      "type": "string"
        +    },
        +    "text": {
        +      "description": "Full research result — read this for the finding",
        +      "type": "string"
        +    },
        +    "widgets": {
        +      "items": {
        +        "properties": {
        +          "data": {
        +            "type": "object"
        +          },
        +          "type": {
        +            "enum": [
        +              "chart",
        +              "event_study",
        +              "backtest",
        +              "trade_setup",
        +              "research",
        +              "stop_optimizer",
        +              "sltp_config",
        +              "parallel_event_study",
        +              "batch_event_study"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "session_id",
        +    "text",
        +    "context"
        +  ],
        +  "type": "object"
        +}
    • Changedbuy_credits1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "description": "Response varies by payment path. Card: returns checkout_url for user. Crypto step 1: returns deposit address + payment_intent_id. Crypto step 2 (confirm): returns status + new balance.",
        +  "properties": {
        +    "checkout_url": {
        +      "description": "Stripe Checkout link (card payment)",
        +      "type": "string"
        +    },
        +    "current_balance_cents": {
        +      "type": "integer"
        +    },
        +    "deposit": {
        +      "description": "Crypto deposit details (USDC on Base)",
        +      "properties": {
        +        "address": {
        +          "type": "string"
        +        },
        +        "amount_usdc": {
        +          "type": "string"
        +        },
        +        "chain": {
        +          "type": "string"
        +        },
        +        "network": {
        +          "type": "string"
        +        },
        +        "token": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "error": {
        +      "type": "string"
        +    },
        +    "instructions": {
        +      "type": "string"
        +    },
        +    "new_balance_cents": {
        +      "description": "Balance after credit (confirm only)",
        +      "type": "integer"
        +    },
        +    "payment_intent_id": {
        +      "description": "For crypto: pass back to confirm payment",
        +      "type": "string"
        +    },
        +    "purchase_amount_cents": {
        +      "type": "integer"
        +    },
        +    "status": {
        +      "description": "Payment confirmation status (confirm only)",
        +      "enum": [
        +        "credited",
        +        "already_credited",
        +        "pending",
        +        "failed"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedcheck_balance1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "balance_cents": {
        +      "description": "Current credit balance in cents",
        +      "type": "integer"
        +    },
        +    "credit_packs": {
        +      "items": {
        +        "properties": {
        +          "amount_cents": {
        +            "type": "integer"
        +          },
        +          "label": {
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "enforcement_enabled": {
        +      "type": "boolean"
        +    },
        +    "lifetime_added_cents": {
        +      "type": "integer"
        +    },
        +    "note": {
        +      "description": "Payment confirmation message (only if credits recovered)",
        +      "type": "string"
        +    },
        +    "recovered_cents": {
        +      "description": "Credits recovered from completed payments (only if payment detected)",
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "balance_cents"
        +  ],
        +  "type": "object"
        +}
    • Changedget_briefed1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "description": "Personalized market briefing connecting today's news to your edge library.",
        +  "properties": {
        +    "briefing": {
        +      "description": "Personalized market news digest",
        +      "type": "string"
        +    },
        +    "markets": {
        +      "description": "Markets covered",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "profile": {
        +      "description": "Trader profile derived from edge library",
        +      "type": "string"
        +    },
        +    "strong_count": {
        +      "type": "integer"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedget_hypothesis1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "beats_market": {
        +      "type": "boolean"
        +    },
        +    "created_at": {
        +      "type": "string"
        +    },
        +    "direction": {
        +      "enum": [
        +        "LONG",
        +        "SHORT"
        +      ],
        +      "type": "string"
        +    },
        +    "entry_offset": {
        +      "type": "integer"
        +    },
        +    "ev_per_trade": {
        +      "type": "number"
        +    },
        +    "explanation": {
        +      "type": "string"
        +    },
        +    "formula": {
        +      "description": "DSL boolean expression",
        +      "type": "string"
        +    },
        +    "has_edge": {
        +      "type": "boolean"
        +    },
        +    "horizon_results": {
        +      "type": "array"
        +    },
        +    "hypothesis_id": {
        +      "type": "string"
        +    },
        +    "market": {
        +      "type": "string"
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "performance": {
        +      "description": "Precomputed analytics (if available from scanner)",
        +      "type": "object"
        +    },
        +    "profit_factor": {
        +      "type": "number"
        +    },
        +    "selected_horizon": {
        +      "type": "integer"
        +    },
        +    "setup_code": {
        +      "description": "Full DSL code that computes the pattern",
        +      "type": "string"
        +    },
        +    "sharpe": {
        +      "type": "number"
        +    },
        +    "test_type": {
        +      "enum": [
        +        "event_study",
        +        "backtest"
        +      ],
        +      "type": "string"
        +    },
        +    "versions": {
        +      "type": "array"
        +    },
        +    "win_rate": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "hypothesis_id",
        +    "name"
        +  ],
        +  "type": "object"
        +}
    • Changedreset_session1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "message": {
        +      "description": "Confirmation message with next steps",
        +      "type": "string"
        +    },
        +    "reset": {
        +      "description": "Always true on success",
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "reset",
        +    "message"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "method": {
        +      "enum": [
        +        "embedding",
        +        "keyword"
        +      ],
        +      "type": "string"
        +    },
        +    "query": {
        +      "type": "string"
        +    },
        +    "results": {
        +      "items": {
        +        "properties": {
        +          "direction": {
        +            "type": "string"
        +          },
        +          "has_edge": {
        +            "type": "boolean"
        +          },
        +          "hypothesis_id": {
        +            "type": "string"
        +          },
        +          "market": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "similarity": {
        +            "description": "Cosine similarity (embedding search only)",
        +            "type": "number"
        +          },
        +          "win_rate": {
        +            "type": "number"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "results",
        +    "query"
        +  ],
        +  "type": "object"
        +}
    • Changedvarrd_ai1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "context": {
        +      "properties": {
        +        "edge_verdict": {
        +          "description": "STRONG_EDGE, MARGINAL, PINNED, or NO_EDGE",
        +          "type": "string"
        +        },
        +        "has_edge": {
        +          "description": "true=edge found, false=no edge, null=still researching",
        +          "type": [
        +            "boolean",
        +            "null"
        +          ]
        +        },
        +        "next_actions": {
        +          "description": "Follow these to continue",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "workflow_state": {
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "errors": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "session_id": {
        +      "description": "Session ID — pass back to continue the conversation",
        +      "type": "string"
        +    },
        +    "text": {
        +      "description": "AI response text — read this for the research result",
        +      "type": "string"
        +    },
        +    "token_usage": {
        +      "properties": {
        +        "input_tokens": {
        +          "type": "integer"
        +        },
        +        "output_tokens": {
        +          "type": "integer"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "widgets": {
        +      "description": "Visual widgets — charts, statistical test results, trade setups, optimization results",
        +      "items": {
        +        "properties": {
        +          "data": {
        +            "type": "object"
        +          },
        +          "type": {
        +            "description": "chart=candlestick with pattern markers, event_study=forward return analysis, backtest=SL/TP simulation, trade_setup=entry/stop/target card, research=ELROND expert council results, stop_optimizer=SL/TP grid search, parallel/batch_event_study=multi-market results",
        +            "enum": [
        +              "chart",
        +              "event_study",
        +              "backtest",
        +              "trade_setup",
        +              "research",
        +              "stop_optimizer",
        +              "sltp_config",
        +              "parallel_event_study",
        +              "batch_event_study"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "session_id",
        +    "text",
        +    "context"
        +  ],
        +  "type": "object"
        +}
    • Changedvarrd_edges1 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"
        +}
  6. 1 tool update
    • Changedvarrd_edges3 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"
        +}
  7. 2 tool updates
    • Changedbuy_credits2 fields changed
      • changedInput schema / properties / payment_intent_id / description
        Previous value: -"Stripe PaymentIntent ID from a previous buy_credits call. Pass this after sending USDC to confirm payment and receive credits."New value: +"For crypto: Stripe PaymentIntent ID from a previous buy_credits call. Pass after sending USDC to confirm."
      • addedInput schema / properties / payment_method
        Added value: +{
        +  "default": "card",
        +  "description": "Payment method: 'card' (default, Stripe Checkout) or 'crypto' (USDC on Base).",
        +  "type": "string"
        +}
    • Changedvarrd_edges1 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"
        +}
  8. 1 tool update
    • Changedvarrd_edges1 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."
  9. 6 tool updates
    • Removedautonomous_research
    • Addedautonomous_varrd_ai
    • Removedresearch
    • Removedscan
    • Addedvarrd_ai
    • Addedvarrd_edges

Frequently Asked Questions

Discussions

augiemazza's avatar
augiemazzaMay 4, 2026

its pretty sweet

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Deterministic market-state engine for trading agents — zero LLM in the signal path. 8 tools: structural market state & phase, action gate (GO/WATCH/HOLD), entry/target/invalidation coordinates, bar-by-bar state timeline, composed view cards, and pre-trade intent validation. Every output traces to a bar-stamped ledger with a public daily self-scoring track record.
    3
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Most trading signals are noise. AlphaAssay puts them on trial — deflated Sharpe, out-of-sample, leakage forensics — and returns signed pass/fail verdicts anyone can verify. Methodology audits, not investment advice.
    17
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    AI-powered crypto signal intelligence for 20 assets (BTC, ETH, SOL, etc). 6 scoring dimensions: whale activity, technical analysis, derivatives flow, narrative strength, sentiment, market structure. Market regime detection (TRENDING/RANGING), portfolio optimization, and accuracy tracking. 9 read-only MCP tools. Free via MCP, $0.001 USDC via x402 on Base for REST API.
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.4/5.0
Disambiguation4/5

Most tools have distinct purposes, but 'autonomous_varrd_ai' and 'varrd_ai' could cause confusion despite clear descriptions. 'varrd_edges' vs 'varrd_ai' are distinct. Overall, minor overlap but manageable.

Naming Consistency3/5

Names mix snake_case verbs and noun phrases, and the 'varrd_' prefix is inconsistently applied. 'autonomous_varrd_ai' deviates from the verb_noun pattern. Still readable.

Tool Count5/5

9 tools is well-scoped for the server's purpose—covers research, credit management, results browsing, and session control without bloat.

Completeness4/5

Covers core workflows: hypothesis generation, testing, browsing live edges, and managing credits. Missing explicit update/delete capabilities for hypotheses, but overall surface is sufficient.