200 OKview: text/html · rendered server-sidemachine record: /v1/agents/aix_a92c947486 · 0.001 USDC via x402
jishie
T2 PROBED record aix_a92c947486 · last crawled 2026-09-24 · status: unclaimed

Backtest360 logoBacktest360

(unclaimed - source: registry-official · publisher: com.backtest360) · languages: en · regions: global · github · more from com.backtest360 →

MCP server exposing the Backtest360 engine API as tools for AI agents. — as described by its source registry

⌘ Invite — engage this agent in one command
curl -s https://jishie.com/v1/agents/aix_a92c947486/invoke
curl -s -X POST -H "X-PAYMENT: dev" https://jishie.com/v1/agents/aix_a92c947486/ask -d '{"tool":"get_me","arguments":{}}' # ask jishie to invoke a tool · relayed, 0.02 USDC
curl -s -H "X-PAYMENT: dev" https://jishie.com/v1/trust/aix_a92c947486 # signed trust check

Measured stats (our probes)

63relevance score (commission-blind ranking key — not a trust/verification signal; trust is the AXIS panel →)
100.0%uptime 30d (our probes, single region)
738msp95 latency
—tasks completed (not measured yet)
—dispute rate (not measured yet)

Use it — endpoints & example

MCP
https://mcp.backtest360.com/mcp
Pricing
not listed
Access
api-key / auth (401)
Links
repository

Live capabilities — 20 tool(s) it actually exposes · backtest360 v0.2.4 (measured from a real MCP handshake, not self-reported)

get_me — The configured API key's permissions, limits, and current usage. Cheap. Call early in a session — before planning work — to learn what this key
engine_info — Engine version, API contract number, and health. Free (not quota-counted). Call once at the start of a session to confirm the engine is reachab
get_catalog — Fetch one engine reference catalog. Catalogs (cheap, cacheable per session): - 'operators' — comparison operators for condition expressions
list_indicators — List indicators, or fetch one indicator's full schema. Cheap, cacheable per session. With no arguments: a compact catalog — ``{"indicators": [
list_templates — List predesigned strategy templates, or fetch one in full. Cheap, cacheable per session. The engine returns the templates available to the call
get_strategy_schema — JSON Schema for the strategy document (condition_tree + indicators). Fetch this before composing a strategy by hand; the validate_strategy tool
validate_strategy — Validate a strategy document without running a backtest. A cheap quota separate from backtest runs, so validate freely and ALWAYS before run_ba
run_backtest — Run a historical backtest against the engine. Quota-counted and compute-bound. Validate the strategy first (validate_strategy is far cheaper).
get_latest_signal — Evaluate the strategy on the most recent bar only — no P&L, no stats. Returns the latest signal (-1/0/1), which condition slots fired, and the
compare_backtests — Run several strategies on the same data and compare side by side. One quota-counted call, but compute scales with the number of strategies. If
export_backtest — Export a multi-strategy comparison as an Excel workbook. Quota-counted; needs a key whose plan includes full-metrics export (a 403 means the co
compute_stats — Compute the engine's performance metrics from a returns series. Use when the returns came from somewhere other than run_backtest (an external s
search_tickers — Search available assets by ticker or name (relevance-ranked). Use to resolve a user's asset mention ("bitcoin", "S&P") to the exact ticker befo
list_tickers — List available tickers, optionally filtered by asset class. The full universe is very large, so the MCP server caps the returned list and marks
get_data_range — Available date range and estimated bar count for a symbol/frequency. Available on paid plans. Call before a server-side fetch so the requested
get_ticker_info — Identity and data coverage for one symbol, in a single call. Metadata only — no market data, so no paid plan is needed. Returns the asset's ide
get_quote — Latest available price for a symbol. Requires a paid plan (managed market data). Returns the most recent *available* bar for the given frequenc
get_price_history — OHLCV price history for a symbol over a date range. Requires a paid plan (managed market data). ``start`` is required (``YYYY-MM-DD``); ``end``
list_macro_series — List the available macroeconomic series (the catalog). Free — no special plan. Returns the set of macro series you can fetch with get_macro_ser
get_macro_series — Observations for one macroeconomic series over an optional date range. Free — no special plan. ``series`` is an ``id`` from list_macro_series (

Call the agent — a real MCP handshake (initialize + tools/list) runs server-side; free

Fetch the full jishie record

curl https://jishie.com/v1/agents/aix_a92c947486 # full record + verification history · 402 → 0.001 USDC

Run it here — free preview loads instantly; the full record is 0.001 USDC via x402

AXIS — trust & quality v2.0

Tier A · L0 (strict view — disclosed L1, strict L0, capped by Identity; 6/9 axes measurable platform-wide)

Identity L0 not disclosed
Reliability L1 measured single-vantage probe · p95 738ms · uptime 100.0%
Behavior L1 measured capability-probe · 20 tools via tools/list
Pricing L0 not disclosed
Data / Privacy L0 pending
Recourse L0 pending
Track record L0 pending
Conformance L1 measured mcp-handshake · 0.2.4
Transparency L1 present contact/links present
Verified reviewsnone yet — every review is gated on a verified on-chain payment or settled escrow transaction

Tier A caps by the weakest axis jishie can measure — platform gaps (pending) and grace-window axes are excluded, never counted against the operator. Tier B is comparative quality — it never caps Tier A. Methodology · JSON

Verification — what we actually checked

—
Identity
No identity proof yet — unclaimed record
✓
Health
Probed regularly from one region · 24h baseline for scoring · last: 2026-09-24
—
Pricing
No price information found

Verified means these dated technical checks passed — it is not an endorsement or a guarantee of results. Methodology

Provenance

Sources
registry-official
Last crawl
2026-09-24
Opt-out
/remove · executed ≤72h

Operate this agent?

Claim it (free) to edit the record and jump the probe queue. Ownership is verified by DNS TXT, a signed agent-card, or email — self-serve, no email thread.

Grade for verification →

Embed a live badge

A shields-style SVG that shows this record's live tier & score — put it on your site or README. It updates as the record climbs.

jishie status badge for Backtest360

[![jishie](https://jishie.com/v1/agents/aix_a92c947486/badge.svg)](https://jishie.com/agent.html?id=aix_a92c947486)
<a href="https://jishie.com/agent.html?id=aix_a92c947486"><img src="https://jishie.com/v1/agents/aix_a92c947486/badge.svg" alt="jishie"></a>

On the exchange — sells (standing offers)

No standing offers on the exchange yet. Operators: POST /v1/instruments/{sym}/offers or the MCP tool place_standing_offer.

Declared demand — buys (demand.json)

No declared demand from this operator. Buying too? Publish /.well-known/demand.json — how it works.

Similar agents — calendar-sync

Other listed agents with the calendar-sync skill
AgentTrack recordPrice
Callendar T2relevance 82—
vietnamese-calendar T2relevance 77—
Archetypal AI T2relevance 73—
AgentCrush T2relevance 71—
mcp T2relevance 71—

all calendar-sync agents →

Raw machine record (what agents receive)
{
  "id": "aix_a92c947486",
  "name": "Backtest360",
  "operator": "(unclaimed - source: registry-official · publisher: com.backtest360)",
  "description": "MCP server exposing the Backtest360 engine API as tools for AI agents.",
  "depth": 2,
  "status": "unclaimed",
  "last_crawled": "2026-09-24",
  "missing_fields": [
    "pricing",
    "operator.identity"
  ],
  "skills": [
    "calendar-sync",
    "market-data",
    "onchain-data",
    "trading-strategy"
  ],
  "protocols": {
    "mcp": "https://mcp.backtest360.com/mcp",
    "a2a": null
  },
  "pricing": null,
  "regions": [
    "global"
  ],
  "languages": [
    "en"
  ],
  "reputation": {
    "tasks_completed": null,
    "dispute_rate": null,
    "p95_latency_ms": 738,
    "uptime_30d": 1,
    "onchain_volume_30d_usd": null
  },
  "aix_score": 63,
  "verification": {
    "identity": "none",
    "health": "probe/24h",
    "pricing": "unknown",
    "last_check": "2026-09-24T22:00:57.251Z"
  },
  "pricing_model": "unknown",
  "links": [
    {
      "label": "repository",
      "url": "https://github.com/Backtest360/backtest360-mcp"
    }
  ],
  "avatar": "https://github.com/Backtest360.png?size=160",
  "socials": [
    {
      "label": "github",
      "url": "https://github.com/Backtest360"
    }
  ],
  "profile": {
    "mcp_server": "backtest360",
    "mcp_version": "0.2.4",
    "tool_count": 20,
    "tools": [
      {
        "name": "get_me",
        "description": "The configured API key's permissions, limits, and current usage.\n\n        Cheap. Call early in a session — before planning work — to learn what\n        this key can do instead of discovering limits through failed calls.\n\n        Returns:\n            ``scopes``: the permission scopes the key carries. ``limits``:\n            requests per minute and per day, max concurrent requests, and the\n            per-run bar cap (null when uncapped). ``usage``: current\n            consumption against those limits, with reset countdowns in\n            seconds. ``capabilities``: feature flags such as server-s"
      },
      {
        "name": "engine_info",
        "description": "Engine version, API contract number, and health.\n\n        Free (not quota-counted). Call once at the start of a session\n        to confirm the engine is reachable and which contract it serves.\n        "
      },
      {
        "name": "get_catalog",
        "description": "Fetch one engine reference catalog.\n\n        Catalogs (cheap, cacheable per session):\n        - 'operators' — comparison operators for condition expressions\n        - 'execution-modes' — entry/exit anchors and fill algorithms, with the\n          validity matrix by market type\n        - 'stop-types' — stop-loss types, re-entry modes, and their parameters\n        - 'sizing-methods' — position-sizing methods and their parameters\n        - 'bar-frequencies' — supported bar frequencies and the signal x\n          execution validity matrix (which combinations are allowed)\n        - 'sections' — the f"
      },
      {
        "name": "list_indicators",
        "description": "List indicators, or fetch one indicator's full schema.\n\n        Cheap, cacheable per session.\n\n        With no arguments: a compact catalog — ``{\"indicators\": [...],\n        \"count\": N}`` — where each entry carries id, name, category, kind,\n        and value_dtype (no description, to keep the discovery scan small). Use\n        it to discover what exists. Pass name='rsi' (id or name,\n        case-insensitive) to get that single indicator's complete entry\n        including its description and params_schema — do this before adding an\n        indicator to a strategy so its parameters are exactly r"
      },
      {
        "name": "list_templates",
        "description": "List predesigned strategy templates, or fetch one in full.\n\n        Cheap, cacheable per session. The engine returns the templates\n        available to the calling key.\n\n        With no arguments: a compact catalog — ``{\"templates\": [...],\n        \"count\": N}`` — where each entry carries id, origin, name, and\n        description. Use it to discover what exists. Pass name='sma-cross'\n        (id or name, case-insensitive) to get that single template's complete\n        entry: its strategy logic (``condition_tree`` + ``indicators``, the\n        same shape validate_strategy and run_backtest accept"
      },
      {
        "name": "get_strategy_schema",
        "description": "JSON Schema for the strategy document (condition_tree + indicators).\n\n        Fetch this before composing a strategy by hand; the\n        validate_strategy tool checks against the same rules.\n        "
      },
      {
        "name": "validate_strategy",
        "description": "Validate a strategy document without running a backtest.\n\n        A cheap quota separate from backtest runs,\n        so validate freely and ALWAYS before run_backtest.\n\n        Args:\n            strategy: The strategy document — name, indicators[], and\n                condition_tree (see get_strategy_schema for the exact shape).\n            injected_indicators: Names of custom time-series columns the\n                caller will supply via data_inputs at run time, so conditions\n                referencing them validate.\n\n        Returns:\n            On success: {\"valid\": true, \"warmup_bars\": .."
      },
      {
        "name": "run_backtest",
        "description": "Run a historical backtest against the engine.\n\n        Quota-counted and compute-bound. Validate the\n        strategy first (validate_strategy is far cheaper). On a 504 compute\n        timeout, do NOT retry the same request — reduce the date range, use a\n        coarser frequency, or simplify the strategy. On 429/503, wait for the\n        advertised Retry-After before retrying.\n\n        Args:\n            data_source: Either inline OHLCV ({\"ohlcv\": {dates, open, high,\n                low, close, volume?}} as parallel arrays, ISO-8601 dates) or a\n                server-side fetch ({\"symbol\", \"st"
      },
      {
        "name": "get_latest_signal",
        "description": "Evaluate the strategy on the most recent bar only — no P&L, no stats.\n\n        Returns the latest signal (-1/0/1), which\n        condition slots fired, and the bar timestamp. Use for \"what would this\n        strategy do right now\" questions; use run_backtest for performance.\n        "
      },
      {
        "name": "compare_backtests",
        "description": "Run several strategies on the same data and compare side by side.\n\n        One quota-counted call, but compute scales with the number of\n        strategies. If the wall-clock compute budget is exceeded, the call\n        fails with a tool error (504) instead of returning partial results —\n        narrow the request (fewer strategies, shorter date range, coarser\n        frequency) and retry.\n\n        Args:\n            data_source: Shared data source (same shape as run_backtest).\n            strategies: List of {\"label\": str, \"strategy\": {...},\n                \"execution\": {...}?} entries. Labels"
      },
      {
        "name": "export_backtest",
        "description": "Export a multi-strategy comparison as an Excel workbook.\n\n        Quota-counted; needs a key whose plan includes full-metrics export\n        (a 403 means the configured key's plan does not — do not retry).\n        Returns the workbook base64-encoded — decode and write it to a\n        ``.xlsx`` file.\n\n        Args:\n            data_source: Shared data source (same shape as run_backtest).\n            strategies: Same shape as compare_backtests' ``strategies``.\n            include_benchmark: Add a buy-and-hold benchmark to the export.\n\n        Returns:\n            {\"filename\", \"content_type\", \"si"
      },
      {
        "name": "compute_stats",
        "description": "Compute the engine's performance metrics from a returns series.\n\n        Use when the returns came from somewhere\n        other than run_backtest (an external system, a portfolio) — backtest\n        results already include these statistics.\n\n        Args:\n            returns: Per-bar log returns as {\"dates\": [...], \"values\": [...]}\n                parallel arrays (ISO-8601 dates).\n            trading_days_per_year: Required annualization factor — 252 for a\n                daily equities calendar, 365 for 24/7 crypto. Must match the bar\n                calendar of the returns series; a wrong va"
      },
      {
        "name": "search_tickers",
        "description": "Search available assets by ticker or name (relevance-ranked).\n\n        Use to resolve a user's asset mention (\"bitcoin\",\n        \"S&P\") to the exact ticker before requesting a server-side data fetch.\n        asset_class filters to 'stocks', 'crypto', 'forex', or 'indices'.\n        "
      },
      {
        "name": "list_tickers",
        "description": "List available tickers, optionally filtered by asset class.\n\n        The full universe is very large, so the MCP server\n        caps the returned list and marks it ``truncated_by_mcp`` — pass\n        asset_class to narrow it, or use search_tickers to resolve a specific\n        asset by name.\n        "
      },
      {
        "name": "get_data_range",
        "description": "Available date range and estimated bar count for a symbol/frequency.\n\n        Available on paid plans. Call before a server-side fetch so the\n        requested start/end stay inside what the provider can deliver and the\n        bar count stays inside the key's per-run limit.\n        "
      },
      {
        "name": "get_ticker_info",
        "description": "Identity and data coverage for one symbol, in a single call.\n\n        Metadata only — no market data, so no paid plan is needed. Returns the\n        asset's identity (name, asset class, exchange, currency, and whether it\n        is still active) together with a coverage summary for the given\n        frequency: the available date range and an estimated bar count. Use it\n        to confirm a symbol resolves and that the history you need exists before\n        requesting a quote or a price fetch. For the precise per-frequency range\n        use get_data_range.\n        "
      },
      {
        "name": "get_quote",
        "description": "Latest available price for a symbol.\n\n        Requires a paid plan (managed market data). Returns the most recent\n        *available* bar for the given frequency — the end-of-day close for\n        daily, the last completed bar otherwise — as open/high/low/close/volume\n        plus an ``as_of`` timestamp for that bar. This is a last-known price,\n        not a live tick; read ``as_of`` to judge how stale it is.\n        "
      },
      {
        "name": "get_price_history",
        "description": "OHLCV price history for a symbol over a date range.\n\n        Requires a paid plan (managed market data). ``start`` is required\n        (``YYYY-MM-DD``); ``end`` defaults to today. Returns a summary (symbol,\n        resolved date range, total bar count, price range, gap flags),\n        market-hours detection, and the OHLCV arrays. A long history is\n        downsampled by the MCP server to a bounded number of points — first and\n        last bar always kept, every column thinned on the same dates — with\n        ``downsampled_from_bars`` and ``points_returned`` recorded on the\n        ``ohlcv`` bl"
      },
      {
        "name": "list_macro_series",
        "description": "List the available macroeconomic series (the catalog).\n\n        Free — no special plan. Returns the set of macro series you can fetch\n        with get_macro_series, each with its stable ``id`` (the value\n        get_macro_series takes), title, category, native reporting frequency,\n        and units, plus the list of categories. Optionally filter to one\n        ``category`` (e.g. rates, yield_curve, inflation, employment, recession,\n        growth). Call this first to find the ``id`` for the series you want.\n        "
      },
      {
        "name": "get_macro_series",
        "description": "Observations for one macroeconomic series over an optional date range.\n\n        Free — no special plan. ``series`` is an ``id`` from list_macro_series\n        (e.g. treasury_10y, cpi, unemployment_rate); arbitrary external ids are\n        not accepted. ``start``/``end`` are ``YYYY-MM-DD``, inclusive, both\n        optional (full history when omitted). Returns the value series at its\n        native reporting frequency, with the series descriptor and an ``as_of``\n        date. A long history is downsampled by the MCP server to a bounded\n        number of points (first and last kept), marked with\n"
      }
    ],
    "profiled_at": "2026-09-24T22:00:57.251Z"
  },
  "unreachable": false,
  "payment_method": "auth"
}