_ registry / mcp http-sse · checked 45m ago

backtest360

https://mcp.backtest360.com

Registry code: e477232a64610f66

api record

Tools for the Backtest360 backtesting engine: discover indicators and reference catalogs, build and validate strategy documents, run historical backtests, compare strategies, and compute performance statistics. Recommended flow: engine_info once; get_catalog / list_indicators to ground every name and parameter in what actually exists; validate_strategy until valid; then run_backtest (response_detail='summary' first, deeper only as needed). All numbers come from the engine — never estimate or extrapolate results. The configured API key's plan governs permissions, rate limits, and data access.

endpoint
https://mcp.backtest360.com/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is backtest360 live?
Yes — it answered the hub's last check (checked 45m ago). It answered 99% of checks over the last 30 days.
Is backtest360 free to use?
Not anonymously — it asks for a key or a login before it will serve. Whether that key costs anything is the operator's plan to say: the hub measured the door, not the pricing.
What tools does backtest360 have?
20 tools: engine_info, run_backtest, get_latest_signal, compare_backtests, compute_stats, get_strategy_schema, get_macro_series, get_price_history, ….
Is backtest360 safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
98.7%

90 days 98.3%· all time 98.3%

latency
140ms

last good check

priced tools
0

of 20 tools

_ answered our checks, 90 days 464 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
  • down → live
_ what it is for
used for
  • backtest a trading strategy
  • compare strategies on historical data
  • compute performance statistics
  • get price history and quotes
  • get macroeconomic series
takes → gives
data → data, documents
tools
20 reads
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 20 tools
20 auth-required 20 of 20 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • engine_info reads auth-required never probed

    Engine version, API contract number, and health. Free (not quota-counted). Call once at the start of a session to confirm the engine is reachable and which contract it serves.

    mcp-tool

    {
      "type": "object",
      "title": "engine_infoArguments",
      "properties": {}
    }
    arguments 5 lines
  • run_backtest reads auth-required never probed

    Run a historical backtest against the engine. Quota-counted and compute-bound. Validate the strategy first (validate_strategy is far cheaper). On a 504 compute timeout, do NOT retry the same request — reduce the date range, use a coarser frequency, or simplify the strategy. On 429/503, wait for the advertised Retry-After before retrying. Args: data_source: Either inline OHLCV ({"ohlcv": {dates, open, high, low, close, volume?}} as parallel arrays, ISO-8601 dates) or a server-side fetch ({"symbol", "start", "end", "frequency"} — requires a paid plan). strategy: Strategy document (indicators[] + condition_tree). Mutually exclusive with signals. signals: Precomputed signal series ({"dates": [...], "values": [-1|0|1, ...]}). Mutually exclusive with strategy. execution: Execution/cost/risk/sizing settings. Use values from get_catalog('execution-modes'/'stop-types'/'sizing-methods'); omit for engine defaults. benchmark: Optional benchmark data source (same shape as data_source) — when given, the result also carries benchmark-relative metrics (beta, alpha, information ratio, tracking error, up/down capture) and bar-alignment info. data_inputs: Optional custom time-series the strategy references (name -> {dates, values}). response_detail: 'summary' (default — headline metrics, smallest), 'stats' (every metric), 'full' (plus trades and series downsampled to a fixed, server-controlled number of points). include: Optional add-on blocks at any detail level: 'trades', 'equity_curve', 'monthly_returns', 'yearly_returns', 'signal_diagnostics' (which per-bar entry/exit conditions fired, as capped fire-date lists — {"available": false, ...} if the run has none, e.g. precomputed signals). trades_limit: Max trades returned when trades are included. Returns: The shaped result at the requested detail (including ``benchmark_relative``/``alignment`` when a benchmark was given); an oversized result is thinned and marked ``truncated_by_mcp``. If the engine rejects the request as invalid (400/422), returns {"accepted": false, "error": ...} so you can fix the named field(s) and retry. Capacity, timeout, and permission failures (e.g. 429/503/504/401/403) raise a tool error carrying explicit recovery guidance.

    mcp-tool

    {
      "type": "object",
      "title": "run_backtestArguments",
      "required": [
        "data_source"
      ],
      "properties": {
        "include": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "Include",
          "default": null
        },
        "signals": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Signals",
          "default": null
        },
        "strategy": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Strategy",
          "default": null
        },
        "benchmark": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Benchmark",
          "default": null
        },
        "execution": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Execution",
          "default": null
        },
        "data_inputs": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Data Inputs",
          "default": null
        },
        "data_source": {
          "type": "object",
          "title": "Data Source",
          "additionalProperties": true
        },
        "trades_limit": {
          "type": "integer",
          "title": "Trades Limit",
          "default": 50
        },
        "response_detail": {
          "enum": [
            "summary",
            "stats",
            "full"
          ],
          "type": "string",
          "title": "Response Detail",
          "default": "summary"
        }
      }
    }
    arguments 109 lines
  • get_latest_signal reads auth-required never probed

    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 bar timestamp. Use for "what would this strategy do right now" questions; use run_backtest for performance.

    mcp-tool

    {
      "type": "object",
      "title": "get_latest_signalArguments",
      "required": [
        "data_source",
        "strategy"
      ],
      "properties": {
        "strategy": {
          "type": "object",
          "title": "Strategy",
          "additionalProperties": true
        },
        "execution": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Execution",
          "default": null
        },
        "data_inputs": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Data Inputs",
          "default": null
        },
        "data_source": {
          "type": "object",
          "title": "Data Source",
          "additionalProperties": true
        }
      }
    }
    arguments 46 lines
  • compare_backtests reads auth-required never probed

    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 the wall-clock compute budget is exceeded, the call fails with a tool error (504) instead of returning partial results — narrow the request (fewer strategies, shorter date range, coarser frequency) and retry. Args: data_source: Shared data source (same shape as run_backtest). strategies: List of {"label": str, "strategy": {...}, "execution": {...}?} entries. Labels need not be unique or id-safe — they are echoed back verbatim in the result. include_benchmark: Add a buy-and-hold benchmark to the comparison. response_detail: Shaping level applied to each strategy's result. trades_limit: Max trades per strategy when detail is 'full'. Returns: {"strategies": [{"label", "result"}, ...], "equity_curves": {...}, "alignment"?}, each result shaped at the requested detail. When a benchmark is included, non-benchmark entries also carry "relative" (beta, alpha, information ratio, etc.). A 400/422 rejection returns {"accepted": false, "error": ...}; capacity/timeout/permission failures raise a tool error.

    mcp-tool

    {
      "type": "object",
      "title": "compare_backtestsArguments",
      "required": [
        "data_source",
        "strategies"
      ],
      "properties": {
        "strategies": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": true
          },
          "title": "Strategies"
        },
        "data_source": {
          "type": "object",
          "title": "Data Source",
          "additionalProperties": true
        },
        "trades_limit": {
          "type": "integer",
          "title": "Trades Limit",
          "default": 50
        },
        "response_detail": {
          "enum": [
            "summary",
            "stats",
            "full"
          ],
          "type": "string",
          "title": "Response Detail",
          "default": "summary"
        },
        "include_benchmark": {
          "type": "boolean",
          "title": "Include Benchmark",
          "default": false
        }
      }
    }
    arguments 43 lines
  • compute_stats reads auth-required never probed

    Compute the engine's performance metrics from a returns series. Use when the returns came from somewhere other than run_backtest (an external system, a portfolio) — backtest results already include these statistics. Args: returns: Per-bar log returns as {"dates": [...], "values": [...]} parallel arrays (ISO-8601 dates). trading_days_per_year: Required annualization factor — 252 for a daily equities calendar, 365 for 24/7 crypto. Must match the bar calendar of the returns series; a wrong value silently mis-annualizes Sharpe, volatility, and CAGR. benchmark_returns: Optional benchmark series, same shape — adds alpha/beta/capture metrics. trades: Optional trade records (entry_date, exit_date, direction, return_net, ...) — adds trade-level metrics. risk_free_rate: Annual risk-free rate as a decimal. Returns: {"stats": {...}} — the metric set the API key's plan allows. See get_catalog('sections') for every metric's id and description.

    mcp-tool

    {
      "type": "object",
      "title": "compute_statsArguments",
      "required": [
        "returns",
        "trading_days_per_year"
      ],
      "properties": {
        "trades": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": true
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "Trades",
          "default": null
        },
        "returns": {
          "type": "object",
          "title": "Returns",
          "additionalProperties": true
        },
        "risk_free_rate": {
          "type": "number",
          "title": "Risk Free Rate",
          "default": 0
        },
        "benchmark_returns": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": true
            },
            {
              "type": "null"
            }
          ],
          "title": "Benchmark Returns",
          "default": null
        },
        "trading_days_per_year": {
          "type": "integer",
          "title": "Trading Days Per Year"
        }
      }
    }
    arguments 53 lines
  • get_strategy_schema reads auth-required 45m ago

    JSON Schema for the strategy document (condition_tree + indicators). Fetch this before composing a strategy by hand; the validate_strategy tool checks against the same rules.

    mcp-tool

    {
      "type": "object",
      "title": "get_strategy_schemaArguments",
      "properties": {}
    }
    arguments 5 lines
  • get_macro_series reads auth-required 36h ago

    Observations for one macroeconomic series over an optional date range. Free — no special plan. ``series`` is an ``id`` from list_macro_series (e.g. treasury_10y, cpi, unemployment_rate); arbitrary external ids are not accepted. ``start``/``end`` are ``YYYY-MM-DD``, inclusive, both optional (full history when omitted). Returns the value series at its native reporting frequency, with the series descriptor and an ``as_of`` date. A long history is downsampled by the MCP server to a bounded number of points (first and last kept), marked with ``downsampled_from_bars`` and ``points_returned`` on the ``observations`` block. Note: values are the latest revised figures stamped by reference period, not point-in-time as-first-reported data — do not treat them as the values that were known at a past date.

    mcp-tool

    {
      "type": "object",
      "title": "get_macro_seriesArguments",
      "required": [
        "series"
      ],
      "properties": {
        "end": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "End",
          "default": null
        },
        "start": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Start",
          "default": null
        },
        "series": {
          "type": "string",
          "title": "Series"
        }
      }
    }
    arguments 37 lines
  • get_price_history reads auth-required 36h ago

    OHLCV price history for a symbol over a date range. Requires a paid plan (managed market data). ``start`` is required (``YYYY-MM-DD``); ``end`` defaults to today. Returns a summary (symbol, resolved date range, total bar count, price range, gap flags), market-hours detection, and the OHLCV arrays. A long history is downsampled by the MCP server to a bounded number of points — first and last bar always kept, every column thinned on the same dates — with ``downsampled_from_bars`` and ``points_returned`` recorded on the ``ohlcv`` block; the untouched ``summary.total_bars`` still reports the true bar count. The window is bounded by the plan's per-request bar cap — call get_data_range first to size a request.

    mcp-tool

    {
      "type": "object",
      "title": "get_price_historyArguments",
      "required": [
        "symbol",
        "start"
      ],
      "properties": {
        "end": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "End",
          "default": null
        },
        "start": {
          "type": "string",
          "title": "Start"
        },
        "symbol": {
          "type": "string",
          "title": "Symbol"
        },
        "frequency": {
          "type": "string",
          "title": "Frequency",
          "default": "daily"
        }
      }
    }
    arguments 35 lines
  • get_data_range reads auth-required 36h ago

    Available date range and estimated bar count for a symbol/frequency. Available on paid plans. Call before a server-side fetch so the requested start/end stay inside what the provider can deliver and the bar count stays inside the key's per-run limit.

    mcp-tool

    {
      "type": "object",
      "title": "get_data_rangeArguments",
      "required": [
        "symbol",
        "frequency"
      ],
      "properties": {
        "symbol": {
          "type": "string",
          "title": "Symbol"
        },
        "frequency": {
          "type": "string",
          "title": "Frequency"
        }
      }
    }
    arguments 18 lines
  • get_quote reads auth-required 17h ago

    Latest available price for a symbol. Requires a paid plan (managed market data). Returns the most recent *available* bar for the given frequency — the end-of-day close for daily, the last completed bar otherwise — as open/high/low/close/volume plus an ``as_of`` timestamp for that bar. This is a last-known price, not a live tick; read ``as_of`` to judge how stale it is.

    mcp-tool

    {
      "type": "object",
      "title": "get_quoteArguments",
      "required": [
        "symbol"
      ],
      "properties": {
        "symbol": {
          "type": "string",
          "title": "Symbol"
        },
        "frequency": {
          "type": "string",
          "title": "Frequency",
          "default": "daily"
        }
      }
    }
    arguments 18 lines
  • get_ticker_info reads auth-required 17h ago

    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 identity (name, asset class, exchange, currency, and whether it is still active) together with a coverage summary for the given frequency: the available date range and an estimated bar count. Use it to confirm a symbol resolves and that the history you need exists before requesting a quote or a price fetch. For the precise per-frequency range use get_data_range.

    mcp-tool

    {
      "type": "object",
      "title": "get_ticker_infoArguments",
      "required": [
        "symbol"
      ],
      "properties": {
        "symbol": {
          "type": "string",
          "title": "Symbol"
        },
        "frequency": {
          "type": "string",
          "title": "Frequency",
          "default": "daily"
        }
      }
    }
    arguments 18 lines
  • validate_strategy reads auth-required never probed

    Validate a strategy document without running a backtest. A cheap quota separate from backtest runs, so validate freely and ALWAYS before run_backtest. Args: strategy: The strategy document — name, indicators[], and condition_tree (see get_strategy_schema for the exact shape). injected_indicators: Names of custom time-series columns the caller will supply via data_inputs at run time, so conditions referencing them validate. Returns: On success: {"valid": true, "warmup_bars": ..., referenced indicators/columns}. On failure: {"valid": false, "errors": [...]} where each error carries a machine code, the location in the document, a message, and context (e.g. the list of valid column names). A failed validation is a NORMAL result, not an error — read the errors, fix the document, and validate again before running.

    mcp-tool

    {
      "type": "object",
      "title": "validate_strategyArguments",
      "required": [
        "strategy"
      ],
      "properties": {
        "strategy": {
          "type": "object",
          "title": "Strategy",
          "additionalProperties": true
        },
        "injected_indicators": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ],
          "title": "Injected Indicators",
          "default": null
        }
      }
    }
    arguments 29 lines
  • list_macro_series reads auth-required 8h ago

    List the available macroeconomic series (the catalog). Free — no special plan. Returns the set of macro series you can fetch with get_macro_series, each with its stable ``id`` (the value get_macro_series takes), title, category, native reporting frequency, and units, plus the list of categories. Optionally filter to one ``category`` (e.g. rates, yield_curve, inflation, employment, recession, growth). Call this first to find the ``id`` for the series you want.

    mcp-tool

    {
      "type": "object",
      "title": "list_macro_seriesArguments",
      "properties": {
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Category",
          "default": null
        }
      }
    }
    arguments 18 lines
  • list_templates reads auth-required 8h ago

    List predesigned strategy templates, or fetch one in full. Cheap, cacheable per session. The engine returns the templates available to the calling key. With no arguments: a compact catalog — ``{"templates": [...], "count": N}`` — where each entry carries id, origin, name, and description. Use it to discover what exists. Pass name='sma-cross' (id or name, case-insensitive) to get that single template's complete entry: its strategy logic (``condition_tree`` + ``indicators``, the same shape validate_strategy and run_backtest accept) plus parameter metadata — ``defaults`` (starting parameter values), ``requires``, and ``locked_params`` (parameters that must keep their template values). Pass compact=False for complete entries for everything (large; the MCP server may cap it and set ``truncated_by_mcp`` — prefer compact or name=).

    mcp-tool

    {
      "type": "object",
      "title": "list_templatesArguments",
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name",
          "default": null
        },
        "compact": {
          "type": "boolean",
          "title": "Compact",
          "default": true
        }
      }
    }
    arguments 23 lines
  • list_tickers reads auth-required 8h ago

    List available tickers, optionally filtered by asset class. The full universe is very large, so the MCP server caps the returned list and marks it ``truncated_by_mcp`` — pass asset_class to narrow it, or use search_tickers to resolve a specific asset by name.

    mcp-tool

    {
      "type": "object",
      "title": "list_tickersArguments",
      "properties": {
        "asset_class": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Asset Class",
          "default": null
        }
      }
    }
    arguments 18 lines
  • export_backtest reads auth-required never probed

    Export a multi-strategy comparison as an Excel workbook. Quota-counted; needs a key whose plan includes full-metrics export (a 403 means the configured key's plan does not — do not retry). Returns the workbook base64-encoded — decode and write it to a ``.xlsx`` file. Args: data_source: Shared data source (same shape as run_backtest). strategies: Same shape as compare_backtests' ``strategies``. include_benchmark: Add a buy-and-hold benchmark to the export. Returns: {"filename", "content_type", "size_bytes", "content_base64"}. A 400/422 rejection returns {"accepted": false, "error": ...}; capacity/timeout/permission failures raise a tool error. If the encoded workbook would exceed the output size limit, raises a tool error — narrow the request (shorter date range, fewer strategies, coarser frequency) and retry.

    mcp-tool

    {
      "type": "object",
      "title": "export_backtestArguments",
      "required": [
        "data_source",
        "strategies"
      ],
      "properties": {
        "strategies": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": true
          },
          "title": "Strategies"
        },
        "data_source": {
          "type": "object",
          "title": "Data Source",
          "additionalProperties": true
        },
        "include_benchmark": {
          "type": "boolean",
          "title": "Include Benchmark",
          "default": false
        }
      }
    }
    arguments 28 lines
  • get_me reads auth-required 45m ago

    The configured API key's permissions, limits, and current usage. Cheap. Call early in a session — before planning work — to learn what this key can do instead of discovering limits through failed calls. Returns: ``scopes``: the permission scopes the key carries. ``limits``: requests per minute and per day, max concurrent requests, and the per-run bar cap (null when uncapped). ``usage``: current consumption against those limits, with reset countdowns in seconds. ``capabilities``: feature flags such as server-side data fetch and the full metric set. A small fixed-shape record, returned as the engine sent it.

    mcp-tool

    {
      "type": "object",
      "title": "get_meArguments",
      "properties": {}
    }
    arguments 5 lines
  • list_indicators reads auth-required 45m ago

    List indicators, or fetch one indicator's full schema. Cheap, cacheable per session. With no arguments: a compact catalog — ``{"indicators": [...], "count": N}`` — where each entry carries id, name, category, kind, and value_dtype (no description, to keep the discovery scan small). Use it to discover what exists. Pass name='rsi' (id or name, case-insensitive) to get that single indicator's complete entry including its description and params_schema — do this before adding an indicator to a strategy so its parameters are exactly right. Pass compact=False for full entries for everything (large; the MCP server may cap it and set ``truncated_by_mcp`` — prefer compact or name=). Wire optimization: the compact discovery path asks the engine to omit per-entry descriptions (``descriptions=false``) since they are stripped locally anyway; the name= and compact=False paths request them. This is a pure saving — if the engine ignores the param it returns full entries and the local compact strip still yields a lean result.

    mcp-tool

    {
      "type": "object",
      "title": "list_indicatorsArguments",
      "properties": {
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name",
          "default": null
        },
        "compact": {
          "type": "boolean",
          "title": "Compact",
          "default": true
        }
      }
    }
    arguments 23 lines
  • search_tickers reads auth-required 17h ago

    Search available assets by ticker or name (relevance-ranked). Use to resolve a user's asset mention ("bitcoin", "S&P") to the exact ticker before requesting a server-side data fetch. asset_class filters to 'stocks', 'crypto', 'forex', or 'indices'.

    mcp-tool

    {
      "type": "object",
      "title": "search_tickersArguments",
      "required": [
        "query"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "title": "Limit",
          "default": 20
        },
        "query": {
          "type": "string",
          "title": "Query"
        },
        "asset_class": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Asset Class",
          "default": null
        }
      }
    }
    arguments 30 lines
  • get_catalog reads auth-required 42h ago

    Fetch one engine reference catalog. Catalogs (cheap, cacheable per session): - 'operators' — comparison operators for condition expressions - 'execution-modes' — entry/exit anchors and fill algorithms, with the validity matrix by market type - 'stop-types' — stop-loss types, re-entry modes, and their parameters - 'sizing-methods' — position-sizing methods and their parameters - 'bar-frequencies' — supported bar frequencies and the signal x execution validity matrix (which combinations are allowed) - 'sections' — the full metric catalog: every statistic's stable id, display label, section, and description - 'sampling-modes' — Monte-Carlo resampling modes, each with its status and parameters Fetch the relevant catalog BEFORE building a strategy or config; build only from values it lists — never guess parameter names or frequencies.

    mcp-tool

    {
      "type": "object",
      "title": "get_catalogArguments",
      "required": [
        "catalog"
      ],
      "properties": {
        "catalog": {
          "enum": [
            "operators",
            "execution-modes",
            "stop-types",
            "sizing-methods",
            "bar-frequencies",
            "sections",
            "sampling-modes"
          ],
          "type": "string",
          "title": "Catalog"
        }
      }
    }
    arguments 22 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id e477232a64610f66.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/e477232a64610f66/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/e477232a64610f66/badge.svg)](https://brick.blue/agent/e477232a64610f66?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.