# com.n0brains/mcp (remote · api.n0brains.com)

Self-routing market intel for agents: A-F trade checks, one-call briefs, real liq maps, proof board.

- Trust score: 52/100 (low)
- Change this week: +2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `api.n0brains.com`: 52/100 (this document), [markdown](https://verifymcp.io/servers/com-n0brains-mcp/api.md), [page](https://verifymcp.io/servers/com-n0brains-mcp/api)

## Channel facts

- Endpoint: `https://api.n0brains.com/mcp/`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.2.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 52 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS not yet verified: we couldn't determine whether a plaintext access path exists.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 36/100
  - AI-judged instruction clarity (poor).
  - Context-footprint check failed: tool/resource definitions use about 7061 tokens (~135/item across 52 items; 52 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (37% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-n0brains-mcp https://api.n0brains.com/mcp/
```

### Codex

```toml
[mcp_servers.com-n0brains-mcp]
url = "https://api.n0brains.com/mcp/"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-n0brains-mcp": {
      "type": "remote",
      "url": "https://api.n0brains.com/mcp/",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-n0brains-mcp --url https://api.n0brains.com/mcp/ --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-n0brains-mcp:
    url: "https://api.n0brains.com/mcp/"
```

### Other

```json
{
  "mcpServers": {
    "com-n0brains-mcp": {
      "type": "http",
      "url": "https://api.n0brains.com/mcp/"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 52, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 51, +2)

- [security] Authorization: Authorisation not fully verified: no authorisation is required to call this server, and 52 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Stability: unverified → 0.20

### 2026-07-31 (score 49, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 49, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-29 (score 48, −2)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “get_anti_predictive_cells” rewrote its description, which is the text the model reads
- [security] Tool “get_asset_class_proof” rewrote its description, which is the text the model reads
- [security] Tool “get_correlation” rewrote its description, which is the text the model reads
- [security] Tool “get_cross_asset_flows” rewrote its description, which is the text the model reads
- [security] Tool “get_discovery” rewrote its description, which is the text the model reads
- [security] Tool “get_economic_calendar” rewrote its description, which is the text the model reads
- [security] Tool “get_event_outlook” rewrote its description, which is the text the model reads
- [security] Tool “get_indicators” rewrote its description, which is the text the model reads
- [security] Tool “get_journal” rewrote its description, which is the text the model reads
- [security] Tool “get_levels” rewrote its description, which is the text the model reads
- [security] Tool “get_liquidation_map” rewrote its description, which is the text the model reads
- [security] Tool “get_liquidity_map” rewrote its description, which is the text the model reads
- [security] Tool “get_macro” rewrote its description, which is the text the model reads
- [security] Tool “get_macro_aligned_signals” rewrote its description, which is the text the model reads
- [security] Tool “get_market_analogs” rewrote its description, which is the text the model reads
- [security] Tool “get_market_opens” rewrote its description, which is the text the model reads
- [security] Tool “get_market_regime” rewrote its description, which is the text the model reads
- [security] Tool “get_mindshare” rewrote its description, which is the text the model reads
- [security] Tool “get_mindshare_coin” rewrote its description, which is the text the model reads
- [security] Tool “get_options” rewrote its description, which is the text the model reads
- [security] Tool “get_performance” rewrote its description, which is the text the model reads
- [security] Tool “get_positioning” rewrote its description, which is the text the model reads
- [security] Tool “get_price” rewrote its description, which is the text the model reads
- [security] Tool “get_prices” rewrote its description, which is the text the model reads
- [security] Tool “get_rotation” rewrote its description, which is the text the model reads
- [security] Tool “get_sentiment” rewrote its description, which is the text the model reads
- [security] Tool “get_signal” rewrote its description, which is the text the model reads
- [security] Tool “get_signal_with_context” rewrote its description, which is the text the model reads
- [security] Tool “get_signals_since” rewrote its description, which is the text the model reads
- [security] Tool “get_state” rewrote its description, which is the text the model reads
- [security] Tool “get_trade_plan” rewrote its description, which is the text the model reads
- [security] Tool “health” rewrote its description, which is the text the model reads
- [security] Tool “list_signals” rewrote its description, which is the text the model reads
- [security] Tool “log_trade” rewrote its description, which is the text the model reads
- [security] Tool “rank_trades” rewrote its description, which is the text the model reads
- [security] Tool “void_trade” rewrote its description, which is the text the model reads
- [security] Tool “amend_trade” rewrote its description, which is the text the model reads
- [security] Tool “check_trade” rewrote its description, which is the text the model reads
- [security] Tool “close_trade” rewrote its description, which is the text the model reads
- [security] Tool “get_actionable_signals” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 107 → 134
- [functional regression] Tool coverage: 48% → 37%
- [functional] Schema quality: fair → poor
- [functional] New tool “find_similar_signals”
- [functional] New tool “get_check_history”
- [functional] New tool “get_checkable_assets”
- [functional] New tool “get_long_short”
- [functional] New tool “get_manipulation”
- [functional] New tool “get_market_brief”
- [functional] New tool “get_narrative”
- [functional] New tool “get_playbook”
- [functional] New tool “get_proof”
- [functional] New tool “get_state_brief”
- [functional] New tool “get_trust”
- [functional] New tool “get_usage”
- [cosmetic] “get_signals_since” added an optional parameter “signal_type”

### 2026-07-27 (score 50, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 49)

First indexed and scored.

## MCP tools (52)

### `list_signals` (~321 tokens)

[RAW FEED — engine inputs, NOT trade calls] List active n0brains signals with optional filters. Filters: asset (e.g. 'ETH'), signal_type (whale|sentiment|listing|regulatory|macro|macro_pulse|liquidation|funding|hack|price|other), direction (bullish|bearish|neutral), urgency (high|medium|low), min_confidence, min_score, limit (1-100, default 20), offset. Each signal includes historical_edge, paired_inverse, signal_latency_secs, priced_in_*, calibration_inverted_in_cell. CONFIDENCE CONTRACT: confidence = calibrated empirical win-probability estimate (binned per signal_type), NOT raw model output; when confidence is null, confidence_suppressed_reason says why; confidence_status is one of calibrated|floor_demoted_at_emit|suppressed_anti_predictive|demoted_anti_predictive_type. Transform emitters (whale_position leaderboard fade) carry observed_direction/observed_behavior/model_transform/predicted_direction so the raw observation is never lost. Most rows carry action_hint=ignore — engine inputs, not calls; read historical_edge (cell win_rate) before echoing any direction. For tradeable output use get_actionable_signals.

Input parameters:

- `asset`
- `direction`
- `limit`
- `min_confidence` (number)
- `min_score` (number)
- `offset` (integer)
- `signal_type`
- `urgency`

Output parameters:

- `count` (integer)
- `market_opens`
- `next_cursor`
- `server_timestamp`
- `signals` (array)

### `get_signal` (~57 tokens)

[RAW FEED — detail] Fetch a single signal by ID with full enrichment (historical_edge, paired_inverse, latency, priced_in fields). Returns 404 semantics via tool error if signal not found.

Input parameters:

- `id` (integer, required)

Output parameters:

- `action_hint`
- `asset`
- `asset_class`
- `calibration_inverted_in_cell` (boolean)
- `channel`
- `confidence`
- `confidence_revised_by_corroboration`
- `confidence_status`
- `confidence_suppressed_reason`
- `content`
- `conviction`
- `coordinated_pump_prob`
- `corroborated` (boolean)
- `direction` (string)
- `disclaimer`
- `expected_move_pct`
- `expires_at`
- `historical_edge`
- `id` (integer)
- `invalidation_level`
- `levels_basis`
- `manipulation_score`
- `model_transform`
- `observed_behavior`
- `observed_direction`
- `observed_entity`
- `paired_inverse`
- `predicted_direction`
- `priced_in_ret_1h_pct`
- `priced_in_score`
- `priced_in_vol_z`
- `reference_price`
- `regime_at_signal`
- `score`
- `signal_latency_secs`
- `signal_type` (string)
- `source`
- `sources`
- `summary` (string)
- `target_level`
- `timestamp` (integer)
- `trade_quality_band`
- `trade_quality_score`
- `transform_basis`
- `transform_sample_n`
- `transform_validation_status`
- `type_performance`
- `urgency`

### `get_signals_since` (~84 tokens)

[MONITORING] Polling alternative to the /stream WebSocket. Returns active signals with timestamp > `since_timestamp` (unix epoch seconds). Use the returned server_timestamp as the next call's since_timestamp to walk forward without gaps. Hard limit 100 per call.

Input parameters:

- `asset`
- `signal_type`
- `since_timestamp` (integer, required)

Output parameters:

- `count` (integer)
- `market_opens`
- `next_cursor`
- `server_timestamp`
- `signals` (array)

### `get_signal_with_context` (~64 tokens)

[RAW FEED — detail+context] Composite call: signal + same-asset S/R levels + active macro bias. Saves 2-3 round trips. Returns a dict (not a typed model — the composite shape varies).

Input parameters:

- `id` (integer, required)

### `find_similar_signals` (~120 tokens)

[DRILL-DOWN — history rhymes] Semantic similarity search across the signal corpus: give a coin and/or a free-text query (q), get the k most similar past signals ranked by embedding cosine similarity — 'have we seen this setup before and what did it look like'. k = 1-20 (default 5). Provide at least one of coin / q. Mirrors REST /signals/similar. Pro. Analytical, not advice.

Input parameters:

- `coin`
- `k` (integer)
- `q`

### `get_price` (~110 tokens)

[TRUTH ANCHOR] THE canonical current price (live exchange mid) for a coin — the single source of truth every other n0brains tool's spot/current_price should agree with. Returns {coin, price, source, age_secs, ts}. Use this to sanity-check any analytic payload: if a tool's spot disagrees materially with this, that tool's price is stale and its read should be discounted. Free tier. Public data, not financial advice.

Input parameters:

- `coin` (string, required)

### `get_prices` (~70 tokens)

[TRUTH ANCHOR] Batch canonical prices for several coins in one call. coins = comma-separated symbols, e.g. 'BTC,ETH,SOL' (max 50). Returns {prices:{SYM:price}, missing:[...], source, age_secs}.

Input parameters:

- `coins` (string, required)

### `get_levels` (~76 tokens)

[DRILL-DOWN] Support/resistance levels for a coin (e.g. 'BTC', 'ETH', 'SOL'). Reads from levels_engine + Hyperliquid mids. Returns nearest_resistance, nearest_support, and top-5 lists of each. Same data as REST /levels/{coin}.

Input parameters:

- `coin` (string, required)

Output parameters:

- `all_resistance` (array)
- `all_support` (array)
- `coin` (string)
- `current_price` (number)
- `nearest_resistance`
- `nearest_support`
- `trend_state`

### `get_macro` (~53 tokens)

[CONTEXT] Current macro bias (regime, BTC/ETH bias + conviction, calendar risks). Mirrors REST /macro current snapshot. Honesty overlay applied: fields marked uncalibrated, insufficient-data flags surfaced.

Output parameters:

- `current`
- `history`
- `history_note`

### `get_macro_aligned_signals` (~94 tokens)

[CONTEXT] Active signals whose direction AGREES with the current macro bias (conviction ≥ 0.6). Uses the same rule the internal pipeline uses to boost confidence x1.12 (vs CONFLICTS, which dampens x0.88). macro and macro_pulse signal types are excluded (they ARE the macro). Optional asset filter.

Input parameters:

- `asset`
- `limit`

Output parameters:

- `count` (integer)
- `market_opens`
- `next_cursor`
- `server_timestamp`
- `signals` (array)

### `get_performance` (~81 tokens)

[RECEIPTS] Backtest performance over last N days (1-365, default 30). Returns win_rate, avg_pnl, by-type breakdown, etc. Same data as REST /performance. Note: no asset filter — performance is aggregated across all assets. Performance is the live forward-return record by signal type.

Input parameters:

- `days`

Output parameters:

- `days` (integer)

### `get_market_opens` (~53 tokens)

[DRILL-DOWN] Latest TradFi market open prices for BTC/ETH/SOL across sessions. Source: watchers.market_opening_watcher.get_latest_opens(). Same data as REST /market-opens.

Output parameters:

- `market_opens` (object)

### `get_actionable_signals` (~304 tokens)

[START HERE — 'find me a trade'] Signals the production trade-gate itself marked actionable (action_hint=trade_signal — the engine's per-(type,direction) proven verdict), age ≤ max_age_min. Skips anti-predictive cells. Also returns swing_outlooks: labeled days-scale reads from cells proven at 7-30d horizons, each with its proven horizon and a suggested hold — NOT intraday trades. Pass min_score / min_confidence only if you want additional numeric bars on top of the engine verdict. When the result is empty, the `context` block points to rank_trades / get_trade_plan — a signal-gate miss does not mean no setup exists (positioning/levels setups aren't signal-driven). ALWAYS check `has_trade_signal` (true only when a real intraday trade cleared the gate) and render `reads` — a single array that is NEVER empty when any read exists: it holds the gate-passed trade signals, or, when none cleared, the strongest context read + swing outlooks, each tagged `kind` and `actionable`. `signals` stays strictly gate-passed; items in `reads` with actionable=false are NOT trades. Next: grade any candidate with check_trade; rank_trades when nothing cleared the gate.

Input parameters:

- `asset`
- `max_age_min`
- `min_confidence`
- `min_score`
- `signal_type`

Output parameters:

- `count` (integer)
- `market_opens`
- `next_cursor`
- `server_timestamp`
- `signals` (array)

### `get_anti_predictive_cells` (~77 tokens)

[RECEIPTS] Cells from cell_stats.json with inverse_flagged=true. These are (signal_type × direction × regime) buckets where the empirical win-rate is below the inverse_thresholds floor with sufficient sample. Signals in these cells get calibration_inverted_in_cell=true and have confidence nulled in customer-facing serialization.

Output parameters:

- `as_of`
- `cell_stats_path` (string)
- `cells` (array)
- `note` (string)

### `health` (~64 tokens)

[META] Liveness + lightweight pipeline stats: uptime, signals in last 1h, current macro regime, classifier backlog. Mirrors REST GET /health with extra context. Pro-gated (per tools/call rule) — use REST /health for unauthenticated liveness.

Output parameters:

- `classifier_backlog_size`
- `current_regime`
- `fp_dedup_active`
- `signal_count_last_1h`
- `status` (string)
- `timestamp` (integer)
- `uptime_secs`

### `get_usage` (~76 tokens)

[META] Your own API usage: total calls, per-day series and top endpoints over period '7d' or '30d'. Use it to budget calls — free tier check_trade is 3/day (get_check_history shows the remaining count). Mirrors REST /usage. Private to your account.

Input parameters:

- `period` (string)

### `get_liquidation_map` (~162 tokens)

[DRILL-DOWN] Liquidation map for a coin (e.g. 'BTC', 'ETH') from REAL on-chain positions (Hyperliquid + GMX), binned into price clusters — the same feed that powers positioning's liq_magnet and market_state's target/invalidation. Shows actual long/short imbalance per zone (long_usd vs short_usd per bucket), nearest dense cluster below and above price, and top zones by notional. Covers HIP-3 tokenized stocks/metals/indices via the parity map. Only when no observed map exists does it fall back to a modeled estimate (source='modeled_v2', labeled). Same data as REST /liqmap/{coin}.

Input parameters:

- `coin` (string, required)

### `get_correlation` (~76 tokens)

[DRILL-DOWN] Return-correlation + beta of a coin to BTC and ETH over a 7d window of 15m log returns, plus its most/least correlated peers. Descriptive statistic (correlation is not causation). Same data as REST /correlation/{coin}.

Input parameters:

- `coin` (string, required)

Output parameters:

- `coin` (string)
- `disclaimer`
- `least_correlated` (array)
- `most_correlated` (array)
- `to_btc`
- `to_eth`

### `get_rotation` (~77 tokens)

[CONTEXT] Altseason/rotation read: is capital rotating INTO alts (altseason) or back to BTC (risk-off)? rotation_score in [-1,1] from relative-strength breadth + correlation trend. Breadth is a PROXY, not true BTC dominance. Uncalibrated heuristic. Same data as REST /rotation.

Output parameters:

- `breadth`
- `disclaimer`
- `regime`
- `rotation_score`
- `sufficient_data` (boolean)
- `top_rotating_in` (array)
- `top_rotating_out` (array)

### `get_options` (~103 tokens)

[DRILL-DOWN] Options analytics for a coin (BTC or ETH): ATM implied vol, skew (put-call IV proxy — the fear gauge), IV term structure, put/call OI ratio, and max-pain, from public Deribit data. Positive skew = downside hedging/fear; term_structure slope > 0 = contango. Descriptive positioning, not prediction. Same data as REST /options/{coin}.

Input parameters:

- `coin` (string, required)

Output parameters:

- `atm_iv`
- `coin` (string)
- `disclaimer`
- `max_pain`
- `put_call_oi_ratio`
- `skew`
- `spot`
- `term_structure`

### `get_sentiment` (~90 tokens)

[DRILL-DOWN] Aggregate sentiment for a coin: net directional lean (confidence-weighted, recency-decayed), chatter volume + velocity (is it accelerating?), and contributing sources, over 24h. Coverage is CURATED high-edge authors — what the tracked smart-money voices lean, NOT mass social volume. Same data as REST /sentiment/{coin}.

Input parameters:

- `coin` (string, required)

Output parameters:

- `accelerating`
- `coin` (string)
- `disclaimer`
- `lean`
- `net_sentiment`
- `sufficient_data` (boolean)
- `top_sources` (array)
- `velocity`
- `volume` (integer)

### `get_mindshare` (~90 tokens)

[DRILL-DOWN] Mindshare leaderboard: each asset's share of crypto attention across n0brains' sources over the window, ranked, with velocity (rising / falling / emerging). The edge is a coin's attention ACCELERATING before price moves. Directional proxy over n0brains sources, NOT a market-wide social-firehose absolute. Same data as REST /mindshare.

Output parameters:

- `assets` (array)
- `disclaimer`
- `sufficient_data` (boolean)
- `total_mentions` (integer)

### `get_mindshare_coin` (~62 tokens)

[DRILL-DOWN] One coin's mindshare: its attention share %, rank, and velocity vs the prior window (rising/falling/stable/emerging). Same data as REST /mindshare/{coin}.

Input parameters:

- `coin` (string, required)

Output parameters:

- `coin` (string)
- `disclaimer`
- `mindshare_pct`
- `rank`
- `sufficient_data` (boolean)
- `trend`
- `velocity`

### `get_state` (~145 tokens)

[START HERE — coin snapshot] Unified whole-system snapshot for one coin: current price, per-coin market-state consensus (proven-voter directional read), nearest support/resistance levels, liq-map target/invalidation, and the shared macro regime (deterministic FRED composite anchor + LLM read + any divergence). One call instead of stitching get_macro + get_market_state + get_levels. Drill down only if needed: get_positioning (who is crowded), get_indicators (momentum+Fib), get_liquidation_map (magnets), get_options (vol). Pro tier. Measured + AI data, not advice.

Input parameters:

- `coin` (string)

### `get_state_brief` (~106 tokens)

[DRILL-DOWN — prose brief] LLM-written 'state of <coin>' in markdown: joins the headline consensus, macro composite, levels, technical indicators and flow context into one readable analysis you can quote to a user directly (the narrative layer over get_state; the structured payload rides along in `data`). Cached 15 min server-side. Mirrors REST /state/{coin}/brief. Pro. AI-generated synthesis, not advice.

Input parameters:

- `coin` (string)

### `get_indicators` (~115 tokens)

[DRILL-DOWN] Technical indicators for a coin (e.g. 'BTC', 'ETH', 'SOL', 'XRP'): RSI(14), MACD, SMA/EMA (20/50/200 + 200-week), Stochastic, and FIBONACCI retracement levels (90-day swing). Returns daily + weekly timeframes plus a plain-language read. Same data as REST /indicators/{coin}. Use for momentum + Fib confluence with get_levels.

Input parameters:

- `coin` (string, required)

### `get_trade_plan` (~89 tokens)

[STEP 2 — plan one coin] Assembled trade plan for one coin: direction, entry, strongest target, stop, risk/reward, sizing hint, options context (put/call + skew), and warnings (max-pain timing against the trade, entry near a liq cluster). Mirrors GET /plan/{coin}. Analytical, not advice.

Input parameters:

- `coin` (string, required)

### `rank_trades` (~80 tokens)

[STEP 2 — pick the coin] Cross-asset ranking: assembled trade plans for the given coins sorted by setup_score (best first) — answers 'which coin is the better trade right now?'. coins = comma-separated (default BTC,ETH,SOL). Mirrors GET /rank. Analytical, not advice.

Input parameters:

- `coins` (string)

### `get_market_regime` (~90 tokens)

[CONTEXT — market overview] Market-wide risk-appetite read: risk-on / risk-off / squeeze from a blend of the macro composite, cross-sectional breadth, funding regime and vol. Answers 'do conditions favor risk right now?'. Mirrors REST /regime. Descriptive, uncalibrated, not financial advice. One-call morning brief incl. this block: get_market_brief.

### `get_liquidity_map` (~66 tokens)

[CONTEXT] Net cross-asset liquidity map: Fed net liquidity, stablecoin dry-powder, total perp OI, liquidation pressure, net taker flow. Answers 'where is liquidity?'. Mirrors REST /liquidity. Descriptive, not advice.

### `get_cross_asset_flows` (~82 tokens)

[CONTEXT] Cross-asset flows: crypto rotation, crypto-vs-tradfi OI split, institutional posture (ETF flow / COT / 13F, descriptive). Answers 'where are funds going and is the market buying something other than crypto?'. Mirrors REST /flows. ETF flow is proven non-predictive. Not advice.

### `get_discovery` (~78 tokens)

[RECEIPTS — experimental] Emergent edge discovery: corroboration class-combinations mined from the shadow ledger vs realized forward returns, ranked by measured edge (honesty-gated, both-halves). Surfaces patterns nobody hand-coded. status=accruing until the ledger fills (~60-90d). Candidate, not advice.

### `get_economic_calendar` (~152 tokens)

[TIMING] Scheduled macro + earnings calendar — the 'knows WHEN' feed. Upcoming high-impact US macro releases (CPI, NFP, FOMC, PPI, GDP) and tracked single-name earnings (NVDA, TSLA, MSFT, +) with consensus/previous, and actual + surprise once printed. Args: days_back (0-90, default 7), days_ahead (0-60, default 14), event_class ('macro'|'earnings', optional). Same data as REST /calendar. Context for timing/regime, not a direction call.

Input parameters:

- `days_ahead`
- `days_back`
- `event_class`

### `get_asset_class_proof` (~136 tokens)

[RECEIPTS] Per-non-crypto-asset-class forward-return scoreboard (asset_class = stock | index | metal | commodity). Measured on that class's own rows + baseline (stock excess vs SP500; index/metal/commodity absolute). Intel-only: the tradeable badge is informational, non-crypto is not auto-traded yet. status=accruing until a (type,direction) reaches the min sample. Same data as REST /proof?asset_class=. For the crypto board use get_performance or REST /proof. Not financial advice.

Input parameters:

- `asset_class` (string, required)

### `get_proof` (~149 tokens)

[RECEIPTS] The full public forward-return proof board — richer than get_performance: per-signal-type measured post-signal performance with the proven-gate `tradeable` badges, plus the SWING boards. Args: asset_class (stock|index|metal|commodity — same as get_asset_class_proof) OR horizon ('7d'|'14d'|'30d' for the swing-horizon boards, measurement-only, never badged tradeable). Omit both for the default 24h crypto board. Same data as REST /proof and n0brains.com/proof. Measured, not advice.

Input parameters:

- `asset_class`
- `horizon`

### `get_market_analogs` (~125 tokens)

[CONTEXT] Nearest historical market-state analogs to right now: k-NN over the cross-asset state (SPX/NDX momentum, VIX level + term structure, DXY, yield curve) with what SPX/NDX/BTC actually did over the following 1d/5d (median, quartiles, hit-rate) per analog and in aggregate. k = 3-25 (default 12), episode-separated. Same data as REST /analogs. Conditioning context, NOT a prediction.

Input parameters:

- `k`

### `get_event_outlook` (~101 tokens)

[TIMING] Upcoming scheduled macro releases + earnings joined with each event's MEASURED historical reaction distribution (event-study library, grouped by surprise sign): 'CPI prints Thursday — the last N hot prints moved SPX/BTC X%'. history=null until a cell accrues (the library earns its conditionals, it never manufactures them). Same data as REST /event-outlook. Not a direction call.

Input parameters:

- `days_ahead`

### `get_positioning` (~218 tokens)

[DRILL-DOWN — who is crowded] Positioning thesis for one coin: who is crowded and which way. Combines funding-rate crowding (30d z-score), taker CVD buy/sell dominance (2h + 24h), open-interest-vs-price divergence (new longs / short-covering / new shorts / capitulation), options put-call + skew + max-pain TREND (BTC/ETH/XRP/SOL), nearest liquidation magnets above/below with notional, and whale stance (fade-corrected) into a single net positioning bias in [-1,1] with plain-English reasoning per component, per-line data freshness, and a coverage grade (full/partial/thin — how many of the 8 legs actually contributed, so a thin-coverage score cannot read like a full one). Use INSTEAD of manually combining get_liquidation_map + get_options + funding. Mirrors REST /positioning/{coin}. Conditioning context, not financial advice.

Input parameters:

- `coin` (string)

### `get_long_short` (~171 tokens)

[DRILL-DOWN] Long/short positioning for one coin from REAL data, mode picked by the asset's primary source: DEX price-point buckets (Hyperliquid+GMX, BTC/ETH-style), CFTC COT (metals/oil/indices), or exchange long/short ratios (alts). Returns latest buckets {price, long_usd, short_usd}, totals + long_pct + ls_ratio, the accumulated trend over `days` (1-90, default 7), and funding + OI-by-venue context. Complements get_positioning (the 8-leg synthesis) with the raw who-is-long-where view. Mirrors REST /charts/long-short/{coin}. Analytical, not advice.

Input parameters:

- `coin` (string, required)
- `days`

### `check_trade` (~202 tokens)

[START HERE — 'vet my trade'] Ask n0brains First: graded pre-trade conditions assessment for a proposed trade. Give asset + side (long/short); optionally entry, stop, target, leverage, horizon_hours (default 24). Returns grade A..F with flags (positioning crowding, scheduled event risk inside the horizon, liquidation distance vs realized daily volatility, stop inside noise range, proven-edge conflicts, late entry), supporting factors, and falsifiers to watch. Grades are logged and resolved at horizon; cross-grade performance stays withheld until the deployed weekly truth gate clears. Pair with get_positioning (who is crowded) + get_event_outlook (scheduled risk inside the horizon) for the full vet. Analytical, not advice.

Input parameters:

- `asset` (string, required)
- `entry`
- `horizon_hours` (integer)
- `leverage`
- `side` (string, required)
- `stop`
- `target`

### `get_check_history` (~104 tokens)

[RECEIPTS — your own] Your past check_trade assessments WITH resolved outcomes: each row is the trade as you submitted it, the grade it got, and (once the horizon passed) the side-adjusted result with stop-touch honored. This is your personal calibration on the CHECKS you asked for (the journal covers trades you actually took). Free tier also gets free_checks_remaining_today. Mirrors REST /checks/history (last 50). Analytical, not advice.

### `get_checkable_assets` (~113 tokens)

[META] The asset universe check_trade / get_trade_plan / get_levels can price: Hyperliquid perp coins + tokenized HIP-3 stocks/metals/indices. Call once instead of discovering support by error. Contract: count === len(assets); `degraded: true` means the list is INCOMPLETE/STALE — do not treat it as the universe, do not cache it, retry later; no `degraded` key means healthy. Mirrors REST /check/assets (shared cache).

### `log_trade` (~243 tokens)

[JOURNAL] Log a REAL trade entry into your private n0brains journal the moment it fills. Give asset + side (long/short); optionally entry (defaults to live price), stop, target, size_usd, leverage, thesis (why you took it). n0brains snapshots full entry conditions automatically (grade, flags, positioning, regime — an internal check_trade) so nothing needs hand-transcribing. HISTORICAL backfill: pass opened_at (epoch seconds of the real fill) + explicit entry; the entry grade is then taken from YOUR check_trade nearest the fill (±6h, same asset+side) — the read you actually got at the time, never re-graded on today's tape; no matched check = ungraded. Close with close_trade; read back with get_journal. Returns trade_id + the entry assessment. Journal is private to your account. Pro.

Input parameters:

- `asset` (string, required)
- `entry`
- `leverage`
- `opened_at`
- `side` (string, required)
- `size_usd`
- `stop`
- `target`
- `thesis`

### `close_trade` (~144 tokens)

[JOURNAL] Close a journal trade by trade_id (from log_trade or get_journal). Optionally exit_price (defaults to live price) and note (exit reasoning). n0brains resolves the outcome from real candles over the held window: return %, R multiple vs your initial stop, MAE/MFE (worst drawdown / best unrealized gain while open), and whether your stop or target level actually traded. HISTORICAL backfill: pass closed_at (epoch seconds of the real exit) + explicit exit_price. Pro.

Input parameters:

- `closed_at`
- `exit_price`
- `note`
- `trade_id` (integer, required)

### `amend_trade` (~171 tokens)

[JOURNAL] Amend an OPEN journal trade by trade_id: move your stop or target, fix size_usd / leverage / thesis. A stop MOVE changes only the current stop (what the watchdog and close-time touch scan use); realized R stays measured against your INITIAL stop, so trailing to breakeven can't inflate R. To fix a genuine fat-finger in the original entry or stop, also pass correct_entry=true — that resets the R basis (disclosed in the response). asset/side can't be amended — void and re-log for that. Pro.

Input parameters:

- `correct_entry` (boolean)
- `entry`
- `leverage`
- `size_usd`
- `stop`
- `target`
- `thesis`
- `trade_id` (integer, required)

### `void_trade` (~122 tokens)

[JOURNAL] Void a mis-logged journal trade by trade_id (wrong asset, duplicate, fat-finger) with an optional reason. Soft-delete: the trade is removed from your stats and the default journal view but retained and recoverable (get_journal status='void' lists voided trades). Voiding a CLOSED trade removes its outcome from your calibration — disclosed in the response. Use this for entries that never should have existed; use close_trade for real trades that ended. Pro.

Input parameters:

- `reason`
- `trade_id` (integer, required)

### `get_journal` (~128 tokens)

[JOURNAL] Read your private trade journal. status=open|closed|void|all (default all shows open+closed; void is hidden unless asked), limit for history (default 20). Open trades include live unrealized PnL/R and a warning if your stop level has traded since entry. Closed trades include resolved outcomes (ret %, R, MAE/MFE). stats block = personal calibration: win rate and realized R per n0brains entry grade — where your entries were actually good. Pro.

Input parameters:

- `limit` (integer)
- `status` (string)

### `get_playbook` (~98 tokens)

[READ FIRST] The routing guide for every n0brains tool: which tool answers which intent (find a trade / vet a trade / coin snapshot / market brief / monitoring) and how to interpret the honesty fields (action_hint, historical_edge, n_eff, calibration). Call this once if you are unsure which tool to use — it replaces trial-and-error over the 40-tool catalog. Static text, no market data, free tier.

### `get_market_brief` (~150 tokens)

[START HERE — market overview] One-call morning brief: market regime (risk appetite), liquidity read, high-impact events next 72h, the engine's actionable reads (has_trade_signal + reads[]), and cross-asset trade-plan ranking — compact projections of get_market_regime / get_liquidity_map / get_economic_calendar / get_actionable_signals / rank_trades, assembled server-side. Optional coin arg scopes the actionable reads to that coin and adds it to the ranked set (ranking stays setup_score-sorted). Drill into any block with the underlying tool. Descriptive + engine verdicts; uncalibrated blocks labeled; not financial advice.

Input parameters:

- `coin`

### `get_trust` (~100 tokens)

[FORENSICS] Trust / scam-risk screen for a token: resolves the ticker to a contract via DexScreener, then checks GoPlus Security for honeypot behavior, mint function, high taxes, and insider concentration. Run this BEFORE taking any alt-coin signal seriously — a bullish read on a honeypot is worthless. Mirrors REST /trust/{coin}. Analytical data only, not financial advice.

Input parameters:

- `coin` (string, required)

### `get_manipulation` (~81 tokens)

[FORENSICS] Manipulation-risk analysis for one asset: composite manipulation score, coordinated-pump probability, fake-engagement risk, liquidation-cascade detection. Richer than the per-signal manipulation_score field — this is the full standalone read. Mirrors REST /manipulation/{coin}. Analytical, not advice.

Input parameters:

- `coin` (string, required)

### `get_narrative` (~92 tokens)

[FORENSICS] Narrative heatmap for one asset: signal momentum, velocity, decay, manipulation probability and directional conviction across 1h / 4h / 24h windows — is the story building or dying? Complements get_mindshare_coin (attention share) with time-structure. Mirrors REST /narrative/{coin}. Analytical, not advice.

Input parameters:

- `coin` (string, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-n0brains-mcp/api#diagnostics

## Score history

- 2026-08-03: 52
- 2026-08-02: 51
- 2026-08-01: 51
- 2026-07-31: 49
- 2026-07-30: 49
- 2026-07-29: 48
- 2026-07-28: 50
- 2026-07-27: 50
- 2026-07-26: 49

## Links

- Remote endpoint: https://api.n0brains.com/mcp/
- Authorisation metadata: https://api.n0brains.com/.well-known/oauth-protected-resource/mcp
- Website: https://n0brains.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-n0brains-mcp/api/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-n0brains-mcp/api/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-n0brains-mcp/api
