Skip to main content
Glama

deptho-mcp

An MCP server that gives coding assistants (Claude Code, Claude Desktop, Cursor and others) Deptho's backtest checks: replay a backtest's market orders against the trades that followed them, and write a tearsheet that splits returns into fees, funding and slippage. It runs on your machine over stdio, reads and writes local files, and sends nothing anywhere.

Tools

tool

does

replay_orders

orders CSV + trades file → fills CSV and a slippage summary (mean, median, p90, p99 bps)

tearsheet

bars CSV (time, price, position) → self-contained HTML report, its path and headline numbers

pro_status

whether Deptho Pro is installed and licensed here

pro_sync

Deptho Pro: download Binance USD-M days from the public archive into a local memory-mapped dataset

pro_replay

Deptho Pro: replay an orders CSV against that dataset

Orders CSV: time (ISO 8601 or epoch), side (+1/-1 or buy/sell), qty (base units, e.g. BTC). Trades file: a Binance archive aggTrades file (.zip or .csv) or a Tardis.dev trades file (.csv or .csv.gz) covering the orders' period.

Fills are modeled from trade prints: each order fills at the VWAP of the same-side trades after it until its size is covered. Order book depth and queue position are not modeled.

Related MCP server: KLinePic MCP Server

Install

pip install deptho-mcp

Use a virtual environment if you like; then point your assistant at that environment's deptho-mcp (which deptho-mcp prints the full path). For the Pro tools, install Deptho Pro into the same environment with your license key.

Claude Code

claude mcp add deptho -- deptho-mcp

Claude Desktop

Settings → Developer → Edit Config, then add to claude_desktop_config.json:

{
  "mcpServers": {
    "deptho": { "command": "/full/path/to/deptho-mcp" }
  }
}

Cursor

Add to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "deptho": { "command": "/full/path/to/deptho-mcp" }
  }
}

Then ask, for example: "Replay orders.csv against BTCUSDT-aggTrades-2026-09-30.zip and tell me the p90 slippage."

Privacy

Every tool works on local files. Nothing is sent to Deptho. The only download is pro_sync, which fetches Binance's public archive (data.binance.vision) when you ask it to.

License: Apache-2.0. Market data comes from Binance's public archive or from files you supply; Deptho is not affiliated with Binance or Tardis.dev.

Available Tools

5 tools
pro_replayA

(Deptho Pro) Replay an orders CSV (time, side, qty) against a dataset made by pro_sync (the name it returned, e.g. "BTCUSDT-aggTrades"), straight off the memory-mapped columns. Same output as replay_orders.

NameRequiredDescriptionDefault
datasetYes
fills_csvNo
orders_csvYes

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does disclose useful behavior: execution reads straight off memory-mapped columns, and the result is byte-equivalent to replay_orders. It says nothing about the fills_csv input, error behavior for a missing/mismatched dataset, or cost of a replay run.

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?

Two compact sentences, front-loaded with the Pro marker and the core action, with no filler. The parenthetical column list is dense but earns its place by defining the CSV format.

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

Completeness4/5

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

For a three-parameter tool with no output schema, the description covers the essential call path end-to-end: where the dataset name comes from and what the output will look like (same as replay_orders). The main gap is the optional fills_csv parameter, whose role is never explained.

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 0%, so the description must compensate, and it partially does: orders_csv is defined by its columns (time, side, qty) and dataset by its provenance and naming convention. The third parameter, fills_csv, is never mentioned and its purpose (optional fill data?) is completely undocumented.

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

Purpose4/5

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

States a specific verb and resource: replay an orders CSV (with its time/side/qty shape) against a dataset produced by pro_sync, and notes the output is identical to replay_orders. That distinguishes it from the plain replay_orders sibling, though the distinguishing axis (Pro / memory-mapped performance) is only implied rather than spelled out.

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

Usage Guidelines3/5

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

The description supplies a real prerequisite: the dataset must be the name returned by pro_sync, with a concrete example ("BTCUSDT-aggTrades"). But it never says when to pick pro_replay over replay_orders despite the two producing the same output, so the choice between siblings is left to inference.

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

pro_statusA

Whether Deptho Pro is installed and licensed here. pro_sync and pro_replay need it.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It implies a read-only license/installation check and reveals a dependency relationship, which is useful behavioral context. However, it does not describe the return value (e.g., boolean vs. license details), whether errors are raised, or what a negative result means, leaving gaps for a tool with zero annotation coverage.

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?

Two short sentences, front-loaded with the core purpose and followed by the dependency fact. Every sentence earns its place with no filler.

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

Completeness4/5

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

For a zero-parameter status-check tool with no output schema, the description covers the essential purpose and dependency. The main remaining gap is that without an output schema, the description could state what the status result looks like. Otherwise it is complete enough to call 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?

The tool takes zero parameters, so there are no parameter semantics to document and the baseline is 4. The description correctly does not spend words on parameters.

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

Purpose4/5

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

The description states a specific resource and condition: whether Deptho Pro is 'installed and licensed here', which is far more precise than a tautology. It also links to siblings pro_sync and pro_replay, helping the agent place it in the toolset. It lacks an explicit verb like 'check' or 'query', but the intent is unambiguous.

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?

By stating 'pro_sync and pro_replay need it', the description gives clear context for when this tool matters: as a prerequisite check before those two tools. It does not explicitly say 'call this first' or define what to do if the status is negative, but the guidance is concrete.

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

pro_syncA

(Deptho Pro) Download Binance USD-M daily trade files from Binance's public archive for start..end (YYYY-MM-DD, inclusive) and append them to one local memory-mapped dataset, "-aggTrades". Days already on disk aren't downloaded again. Returns the dataset name and size.

NameRequiredDescriptionDefault
endYes
startYes
symbolYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the data source (Binance public archive, so no credentials implied), the write target (one local memory-mapped dataset named "<SYMBOL>-aggTrades"), and idempotent behavior for already-present days. It omits operational traits such as rate limits, handling of future or invalid date ranges, and whether the call is long-running.

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?

Three sentences, front-loaded with the action and range semantics, and the incremental-download and return-value facts each earn their place. Minor waste in the '(Deptho Pro)' branding prefix and a long first sentence that packs source, range, and target together.

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

Completeness4/5

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

For a three-required-parameter ingestion tool with no output schema, the description covers source, destination, idempotency, and the return value (dataset name and size). What remains missing is modest: symbol formatting and failure/latency behavior for large date ranges.

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 0%, so the description must compensate for all three parameters. It adds real meaning for start/end (YYYY-MM-DD format, inclusive range) and implies symbol feeds the dataset name, but never states the symbol convention (e.g. BTCUSDT vs BTC-USDT) or the units the archive uses for USD-M contracts.

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?

States a specific verb and resource: download Binance USD-M daily trade files from the public archive and append them into a local memory-mapped dataset. The scope (one symbol, one dataset) is concrete enough that an agent can distinguish it from replay_orders, pro_replay, pro_status and tearsheet without inspecting schemas.

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

Usage Guidelines3/5

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

Usage is only implied: the incremental note ('Days already on disk aren't downloaded again') signals this is the data-acquisition step that precedes replay/tearsheet work. There is no explicit when-to-use statement, no exclusion, and no named alternative such as pro_status for checking what is already local.

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

replay_ordersA

Replay a backtest's market orders against the trades that followed them.

orders_csv: CSV with columns time (ISO or epoch), side (+1/-1 or buy/sell), qty (base units). trades_file: Binance archive aggTrades file (.zip or .csv) or Tardis.dev trades file (.csv or .csv.gz) covering the orders' period. Writes one row per filled order (side, qty, price, ref_price, slippage_bps) to fills_csv (default: next to the orders, .fills.csv) and returns a summary. Slippage is in bps against the last trade before each order; positive = cost.

NameRequiredDescriptionDefault
fills_csvNo
orders_csvYes
trades_fileYes

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and mostly succeeds: it discloses the side effect (writes one row per filled order to fills_csv, defaulting next to the orders file), the return value (a summary), and the slippage convention including its sign. It omits overwrite behavior for fills_csv and any error/partial-fill semantics.

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?

Purpose is front-loaded, then each parameter is addressed on its own line, followed by output behavior. It is dense but every clause carries information; only the output-format sentence runs long and mixes several facts.

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

Completeness4/5

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

For a three-parameter file-processing tool with no output schema, the description covers inputs, output destination, row schema, and slippage sign convention. Remaining gaps are minor: what the returned summary contains and whether an existing fills_csv is overwritten.

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?

Schema description coverage is 0%, so the description must compensate, and it fully does: orders_csv's accepted time formats, side encodings, and qty units; trades_file's accepted providers and compression formats; and fills_csv's default destination. All three parameters gain meaning unavailable in the bare schema.

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

Purpose4/5

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

The first sentence states a specific verb and resource: replay a backtest's market orders against subsequent trades. An agent knows exactly what the operation does. It does not, however, distinguish itself from siblings such as pro_replay, so the agent must infer the boundary.

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

Usage Guidelines3/5

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

Usage is implied by the data-shape requirements: the trades file must cover the orders' period, and orders must be market orders. There is no explicit when-to-use guidance and no statement of when NOT to use it, nor any pointer to a sibling alternative.

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

tearsheetA

Write Deptho's HTML tearsheet for a strategy and return its path and headline numbers.

bars_csv: CSV with columns time, price (mark/close) and position (exposure as a fraction of equity, 1.0 = 1x long, decided at each bar's close; it earns from the next bar). funding_csv (optional): time and funding_rate (positive = longs pay). fee_bps and slippage_bps: per unit of turnover; use the slippage measured with replay_orders rather than a guess. Writes one self-contained HTML file (default: next to bars_csv, .report.html).

NameRequiredDescriptionDefault
titleNoStrategy
fee_bpsNo
bars_csvYes
funding_csvNo
report_htmlNo
slippage_bpsNo

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description does substantial work: it discloses that the tool writes one self-contained HTML file, gives the default output location, and says it returns the path and headline numbers. It does not mention overwrite behavior if report_html already exists or other file-writing side effects.

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 main purpose is front-loaded and the parameter details are dense but relevant. The single paragraph is longer than ideal for scanning, but every sentence contributes useful semantics rather than filler.

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

Completeness4/5

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

For a six-parameter file-generating tool with no output schema, the description covers the critical data inputs and return artifact well. It is slightly incomplete on title/report_html parameter semantics and overwrite behavior, but overall it is sufficient to call 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 description coverage is 0%, so the description must carry parameter meaning. It richly defines bars_csv columns and timing, funding_csv sign convention, fee/slippage units, and the default report path. It leaves title and the explicit meaning of report_html mostly implicit.

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

Purpose4/5

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

The description uses a specific verb and resource: writing an HTML tearsheet for a strategy and returning its path plus headline numbers. It is clearly distinct from the sibling replay/status tools, though it does not explicitly name those alternatives.

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

Usage Guidelines3/5

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

Usage is implied by the purpose, and there is one useful routing hint: measure slippage with replay_orders rather than guessing. However, it does not state when to use this tool versus pro_replay or other siblings, nor any exclusions.

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.

  1. 5 tool updatesv0.1.0
    • First observedpro_replay
    • First observedpro_status
    • First observedpro_sync
    • First observedreplay_orders
    • First observedtearsheet

TDQS

A3.8/5.0

Scored across 5 tools

Disambiguation3/5

replay_orders and pro_replay have the same output and both replay an orders CSV, differing mainly by data source and Pro licensing. The distinction is explained, but an agent must reason about prerequisites to choose correctly. The remaining tools (tearsheet, pro_status, pro_sync) are clearly distinct.

Naming Consistency4/5

Most names use a readable verb_noun or prefixed form (replay_orders, pro_status, pro_sync, pro_replay), with a consistent pro_ prefix for licensed tools. The noun-only tearsheet is a minor deviation but remains clear as a domain term.

Tool Count5/5

Five tools is well-scoped for a backtest replay and reporting server. Each tool has a clear role: replay, reporting, and Pro dataset management.

Completeness4/5

The surface covers the core workflow: syncing trade data, replaying orders, and generating a tearsheet with headline metrics. Minor gaps exist around inspecting intermediate results or non-Pro dataset management, but agents can work around them.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Local-first backtesting engine with built-in overfitting detection (PBO, deflated Sharpe, bootstrap CI, walk-forward) and a native MCP server for AI agents to validate trading strategies.
    4
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    Generate annotated post-trade candlestick review-chart PNGs from broker or exchange fills. Includes capability checks, no-charge preflight validation, and chart rendering; no signals or order execution.
    3
    20
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables auditing and verification of algorithmic trading backtests from coding agents like Claude Code, Cursor, and Windsurf, including look-ahead bias detection, overfitting checks, and sealed audit proof verification.
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to log trades from chart screenshots, validate them against custom strategy rules, import statements from MT5/TradingView and other brokers, and review R-based statistics in a local dashboard.
    75 npm
    1
    MIT