Connect an AI agent

Add one secure URL, authorize in your browser, and start asking questions.

HOSTED MCPRECOMMENDED
https://mcp.edgedepth.com/mcp
  1. 01Add the URLChoose your client on the setup page and copy its configuration.
  2. 02Authorize onceSign in to EdgeDepth when your client opens the browser.
  3. 03Verify the connectionAsk your client to run list_features, then follow the investigate a coin cookbook.
Open MCP setup →No API key, bearer header, or local install required.

EdgeDepth gives Claude, Codex, Cursor and compatible MCP clients grounded tools for searching recorded crypto and TradFi microstructure. Every answer includes its counts, coverage and a reproducibility key your agent can cite.

Ask it things like

The point is honest hit rates, not cherry-picked winners. A good question names a SETUP and lets the tool report what followed over every occurrence:

  • "What instruments can you search, and how often is VPIN above 0.85 on SOL?"Calls list_instruments, then base_rate. Returns the searchable universe with each instrument's coverage window and provenance, then matches over eligible buckets with the denominator beside them. Neither call spends a scan unit, so this is the cheapest way to confirm the connection works.
  • "How often does a bullish engulfing on BTC, ETH and SOL reach +5% within the hour, and what did drawdown look like?"Calls interpret_prose for a proposed document, then run_scan to execute it. Returns the occurrence count with its eligible denominator, an outcomes_summary computed forward over every occurrence (the 1h distribution plus maximum favourable and adverse excursion), and the reproducibility key.
  • "When top traders were at least 15 points more long than the crowd on NVDA, QQQ and BTC perps, what followed over the next 4 and 24 hours?"The same two calls over a positioning-difference clause. Returns the 4h and 24h distributions side by side, each carrying the count of occurrences that had a complete horizon, so a short window cannot inflate a rate.
  • "Compare what followed one-hour liquidation notional above $5 million with every other eligible market bucket."Calls run_cohort. Returns the treatment and complement distributions over identical horizons, each with its own denominator, so the comparison runs against every eligible bucket rather than a hand-picked control.

One thing it refuses by design: you cannot filter to the occurrences that then went up. Outcome fields are computed forward and can never be a filter (expect OUTCOME_IN_PREDICATE), so you always get the true rate over all occurrences instead of a hindsight-selected list.

How authorization works

Your MCP client opens EdgeDepth in the browser. Sign in with Google, Discord, or email, review the requested research scopes, and click Authorize. The access token lasts about 15 minutes, but the client silently rotates its refresh credential with a sliding 90-day inactivity window. Active connections stay signed in without asking you to regenerate or copy anything.

Connections appear under Connected Apps and can be revoked immediately. Your OAuth token never reaches the Research API: the hosted server exchanges it for a separate short-lived internal assertion.

Local connection

Need stdio instead of the hosted URL? Run npx -y @edgedepth/research-mcp and use an API key. The hosted connection is simpler for clients that support browser OAuth.

Tool reference

TOOLWHAT IT DOES
list_featuresThe closed grammar registry: feature ids, operators, windows, sequence rules, limits, error codes. Call it first; an agent that grounds here cannot invent field names.
list_instrumentsThe searchable universe, derived from complete manifests: which instruments are available, the coverage window for each, and its provenance. Coverage is stated rather than assumed, so a symbol that is not extracted yet says so instead of returning an empty result that reads like a zero.
interpret_proseProse to a PROPOSED document, labeled proposal:true and never executed. Show it, then call run_scan with the document. That second call is the confirm gate. Metered.
run_scanExecute a research_query.v2 document (stated chips only). Returns counts, denominators, outcomes_summary and the reproducibility key as canonical bytes.
next_pageCursor continuation of a prior run_scan. Never construct cursors.
snapshot_atThe registry as-of a moment: feature values, window aggregates, fired rulebook ids. A read, not a scan, not metered.
base_rateOne-clause count over a window: matches / eligible with denominators. A condition that holds almost everywhere prints high and is visibly uninformative.
commonalityDeterministic intersection across N moments, with the survivorship and multiple-comparisons framing in the output. Never similarity search.
get_reportA published report by its 8-hex canonical hash: the definition and the pinned result.
run_cohortCompare what followed treatment episode anchors with what followed the eligible predicate-false bucket, using the same complete outcome distributions on both sides.

Errors are the shared language

Contract codes pass through verbatim and are machine-actionable. A validation failure is 422 {"errors":[{code,message}]} with the frozen codes; a transport failure is the {"error","code"} envelope. An agent that sees UNSUPPORTED_FEATURE or OUTCOME_IN_PREDICATE can read the code, call list_features, and repair its document. See the grammar for the full list and worked examples for documents to hand a tool.