npm @edgedepth/research-mcpstreamable-httpMITupdated 13d ago
@edgedepth/research-mcp is the official, research-only Model Context Protocol server for EdgeDepth, a market microstructure search engine over recorded Binance USDT-M crypto and TradFi perpetuals. Use it from ChatGPT, Claude, Cursor, Codex, or any MCP client to find every verified occurrence of a market condition, inspect forward outcomes across the complete matched set, read an unconditional same-scope reference, and open replay-linked evidence.
O que dá para fazer com EdgeDepth Research?
EdgeDepth Research MCP Server
@edgedepth/research-mcp is the official, research-only Model Context Protocol server for EdgeDepth, a market microstructure search engine over recorded Binance USDT-M crypto and TradFi perpetuals. Use it from ChatGPT, Claude, Cursor, Codex, or any MCP client to find every verified occurrence of a market condition, inspect forward outcomes across the complete matched set, read an unconditional same-scope reference, and open replay-linked evidence.
Every result includes counts with denominators and a reproducibility key. Same key, same bytes.
Website · Search the market · REST API documentation · MCP setup guide · Learning hub
Why use EdgeDepth Research?
- Search recorded market microstructure: query a closed, versioned feature registry covering order flow, price action, volatility, funding, open interest, positioning, candle formations, and liquidations.
- Keep the denominator: every count reports the eligible population and exclusions behind it. Missing data is absent, never silently changed to zero.
- Measure outcomes without lookahead selection: forward returns, MFE, and MAE are computed over all occurrences. Outcome fields cannot be used as filters.
- Compare matched and baseline populations: deterministic cohort results put the matched distribution beside every other eligible predicate-false bucket.
- Audit and replay the evidence: results carry a reproducibility key, and representative occurrences include authenticated web handoffs to the exact recorded market moment.
- Stay research-only: no tool trades, modifies alerts, publishes reports, or writes account data. A fresh scan, cohort, or stratified computation can consume research allowance units; the annotations state that side effect explicitly.
Choose a connection
The package exposes one tool core through two transports:
- Hosted MCP (recommended): connect to
https://mcp.edgedepth.com/mcpover Streamable HTTP and authorize once in your browser. No API key to copy. - Local stdio: run
npx -y @edgedepth/research-mcpwith an EdgeDepth API key.
Connect
Claude Desktop
In Settings > Connectors > Add custom connector, enter:
https://mcp.edgedepth.com/mcp
Complete the EdgeDepth browser authorization prompt.
Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"edgedepth-research": {
"url": "https://mcp.edgedepth.com/mcp"
}
}
}
Codex (~/.codex/config.toml)
[mcp_servers.edgedepth]
url = "https://mcp.edgedepth.com/mcp"
Then run:
codex mcp login edgedepth
Remove any old bearer_token_env_var line before using browser OAuth.
Local stdio with npx
Create a key on the EdgeDepth Developer page, then add:
{
"mcpServers": {
"edgedepth-research": {
"command": "npx",
"args": ["-y", "@edgedepth/research-mcp"],
"env": {
"EDGEDEPTH_API_KEY": "edk_live_YOUR_KEY"
}
}
}
}
Local stdio requires Node.js 20 or newer. Use the research:read key scope for recorded-data tools and add research:interpret only when you need the free interpret_prose proposal step.
Recommended agent workflow
- Call
list_featuresfirst. It is the live, closed grammar and prevents invented fields. - Call
list_instrumentsto check the manifest-derived universe, coverage, and provenance. - If starting from natural language, call
interpret_prose. It returns a proposed document and never executes it. - Inspect or show that proposal, then pass the exact document to
run_scan. - Read rates from
outcomes_summary, which covers all occurrences. Page rows are examples, never the denominator. - Read the appended unconditional same-scope reference when available. It is not matched, comparable, or a causal control.
- Return the full reproducibility key with the answer and one replay handoff. Use
next_pageonly with a cursor returned by the API.
Example instruction for an MCP client:
Call list_features first, then list_instruments for btcusdt and ethusdt.
Propose an exact query for elevated VPIN and one-sided taker flow over the last
seven complete UTC days. Show me the proposed document before running it.
Report counts with denominators, summarize outcomes over all occurrences, and
include the full reproducibility key.
Tools
| Tool | What it does |
|---|---|
list_features |
Returns the closed grammar registry: feature ids, types, ranges, operators, windows, sequence rules, limits, and error codes. |
list_instruments |
Returns the research universe and coverage. The default is a compact summary; use symbols: [...] for selected full records or full: true for the verbatim canonical universe. |
interpret_prose |
Turns prose into a proposed query document. It does not execute the query. Optional time_zone accepts an IANA time zone for calendar planning. |
run_scan |
Executes a research_query.v2 document and returns canonical result bytes with counts, denominators, outcomes, the unconditional same-scope reference, and the reproducibility key. |
next_page |
Continues a prior scan with its opaque cursor. Never construct cursors manually. |
snapshot_at |
Reads registry feature values, window aggregates, and fired rules as of a recorded moment. |
base_rate |
Counts matches and eligible buckets for one clause over a window. |
commonality |
Finds the deterministic intersection across multiple moments with selection-bias caveats included. |
get_report |
Retrieves a published report by its 8-character canonical hash. |
run_cohort |
Compares what followed every match with what followed every other eligible predicate-false bucket. |
run_stratified |
Partitions one matched population at its existing anchors into split-true, split-false, and split-absent outcome summaries. |
No tool can trade, change market state, publish, or modify account data. run_scan, run_cohort, and run_stratified are annotated as metered computations because a fresh call can irreversibly consume an allowance unit. The other recorded-data tools are closed-world reads. interpret_prose is a free read that uses the configured external language interpreter.
Research contract
- Validation failures pass through as
422 {"errors":[{"code":"...","message":"..."}]}. - Transport failures use the
{"error","code"}envelope. - Contract codes are machine-actionable. For errors such as
UNSUPPORTED_FEATUREorOUTCOME_IN_PREDICATE, calllist_features, repair the document, and retry. - Deterministic tools are exact-document, UTC-only tools.
interpret_prosemay use a time zone to plan dates, butrun_scan,run_cohort, andbase_ratenever reinterpret calendar language. - Reruns and ETag
304 Not Modifiedrevalidations are free.list_instrumentsETags are scoped to the requested summary, symbol projection, or full representation. - Interpretation is free and never debits the scan allowance. An unavailable scan allowance returns neutral
402 RESEARCH_ALLOWANCE_EXHAUSTEDmetadata without a checkout link.
REST API and documentation
The MCP server is a thin, deterministic interface to the public EdgeDepth Research API:
- REST API quickstart
- Authentication and API keys
- Credits, caching, and limits
- Versioned query grammar
- Reproducibility contract
- Worked API examples
- MCP connection guide
- How EdgeDepth Research works
- What you can ask
The default REST base used by the stdio package is https://app.edgedepth.com/api/v1/research.
Environment
Local stdio
| Variable | Default | Purpose |
|---|---|---|
EDGEDEPTH_API_KEY |
None | Required for stdio tool calls. |
EDGEDEPTH_API_BASE |
https://app.edgedepth.com/api/v1/research |
Optional REST API base override. |
Hosted server operators
| Variable | Default | Purpose |
|---|---|---|
EDGEDEPTH_OAUTH_EXCHANGE_URL |
http://127.0.0.1:3002/api/mcp/oauth/exchange |
OAuth access-token exchange endpoint. |
MCP_INTERNAL_SECRET |
None | Required internal assertion secret; must match the web app. |
PORT |
3003 |
HTTP listen port. |
HOST |
127.0.0.1 |
HTTP listen host. |
Authentication and security
The hosted server uses browser OAuth. It validates opaque access tokens, exchanges them for separate short-lived internal assertions, and never passes the OAuth access token to the REST API. The MCP server is stateless and stores no user credentials.
Compatible clients rotate refresh tokens silently while the connection remains active. Review or revoke access at EdgeDepth Connected Apps.
API keys remain available for scripts, local stdio, and MCP clients without browser OAuth. Treat an edk_live_... key as a secret and never commit it to source control.
Develop
npm install
npm run build
npm test
npm run typecheck
TypeScript builds to dist/. Example nginx locations, systemd hardening, and operator environment values live under deploy/. Production deployment and npm publishing remain operator actions.
Related projects
- edgedepth-terminal (AGPL): the open-source C++/WASM orderflow terminal. Replay-linked evidence from research results opens the exact recorded market moment in it, and it self-hosts with one docker compose command.
- edgedepth-gateway (MIT): a Go bridge from Binance's public streams to the terminal's wire format, for running the terminal on live data without an account.
License
MIT
Instalação
Adicione EdgeDepth Research ao seu cliente. Escolha o que você usa.
{
"servers": {
"research-mcp": {
"type": "http",
"url": "https://mcp.edgedepth.com/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
claude mcp add research-mcp -- npx -y @edgedepth/research-mcpcodex mcp add research-mcp -- npx -y @edgedepth/research-mcpamp mcp add research-mcp -- npx -y @edgedepth/research-mcp{
"mcpServers": {
"research-mcp": {
"command": "npx",
"args": [
"-y",
"@edgedepth/research-mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"research-mcp": {
"command": "npx",
"args": [
"-y",
"@edgedepth/research-mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"mcpServers": {
"research-mcp": {
"command": "npx",
"args": [
"-y",
"@edgedepth/research-mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"research-mcp": {
"command": "npx",
"args": [
"-y",
"@edgedepth/research-mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"research-mcp": {
"command": "npx",
"args": [
"-y",
"@edgedepth/research-mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"research-mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@edgedepth/research-mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"research-mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"@edgedepth/research-mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y @edgedepth/research-mcpRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
10 ferramentas
EdgeDepth Research expõe 10 ferramentas a um agente conectado.
- list_features
- Returns the closed grammar registry: feature ids, types, ranges, operators, windows, sequence rules, limits, and error codes.
- list_instruments
- Returns the research universe and coverage. The default is a compact summary; use `symbols: [...]` for selected full records or `full: true` for the verbatim canonical universe.
- interpret_prose
- Turns prose into a proposed query document. It does not execute the query. Optional `time_zone` accepts an IANA time zone for calendar planning.
- run_scan
- Executes a `research_query.v2` document and returns canonical result bytes with counts, denominators, outcomes, the unconditional same-scope reference, and the reproducibility key.
- next_page
- Continues a prior scan with its opaque cursor. Never construct cursors manually.
- snapshot_at
- Reads registry feature values, window aggregates, and fired rules as of a recorded moment.
- base_rate
- Counts matches and eligible buckets for one clause over a window.
- get_report
- Retrieves a published report by its 8-character canonical hash.
- run_cohort
- Compares what followed every match with what followed every other eligible predicate-false bucket.
- run_stratified
- Partitions one matched population at its existing anchors into split-true, split-false, and split-absent outcome summaries.
Pontuação
89 / 100
Excelente
- Documentação25/25
- Manutenção25/25
- Confiança16/20
- Capacidade8/15
- Instalação15/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 6 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 10 tool(s) documented
- Provides prompt templates
- Provides resources
- 18 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Histórico de versões
| Versões | Publicada |
|---|---|
| 0.3.0Mais recente | 25 de ago. de 2026 |
| 0.2.6 | 15 de ago. de 2026 |
| 0.2.5 | 31 de jul. de 2026 |
| 0.2.4 | 29 de jul. de 2026 |
| 0.2.3 | 27 de jul. de 2026 |
| 0.2.2 | 27 de jul. de 2026 |
| 0.2.1 | 20 de jul. de 2026 |
| 0.2.0 | 20 de jul. de 2026 |
| 0.1.3 | 20 de jul. de 2026 |
| 0.1.2 | 19 de jul. de 2026 |
| 0.1.0 | 18 de jul. de 2026 |