MCP Server
Use n0brains directly inside Claude Desktop, Cursor, Cline, Continue, and any other MCP-compatible agent. No glue code, no polling loops — your model calls signals like a native tool.
tools/list)
is open; tool invocation (tools/call) requires an active Pro
subscription. Upgrade → Endpoint
POST https://api.n0brains.com/mcp
Authorization: Bearer <your_api_key>
Content-Type: application/json Get your API key when you sign up — it is shown once,
so copy it then. Pro tier is gated by your Stripe subscription status;
downgrade to Free locks tools/call with JSON-RPC error
-32001 and an upgrade link in error.data.upgrade_url.
Claude Desktop
Edit ~/.config/Claude/claude_desktop_config.json (Linux),
~/Library/Application Support/Claude/claude_desktop_config.json (macOS),
or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"n0brains": {
"url": "https://api.n0brains.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_PRO_API_KEY"
}
}
}
} Restart Claude Desktop. The tools appear in the MCP indicator.
Cursor
Settings → MCP → Add server. URL https://api.n0brains.com/mcp,
Header Authorization: Bearer YOUR_PRO_API_KEY.
Cline / Continue
Both honor the same mcpServers shape as Claude Desktop.
Add the block to their respective config files.
Tools
| Name | Returns | Notes |
|---|---|---|
list_signals | SignalListOut | Filters: asset, signal_type, since, limit (max 100), cursor. |
get_signal | SignalOut | Full enrichment incl. historical_edge, paired_inverse. |
get_levels | LevelsOut | Support/resistance for a coin. |
get_macro | MacroOut | BTC + ETH macro bias, daily/weekly. |
get_performance | PerformanceOut | Live forward-return record by signal type over N days. |
get_market_opens | MarketOpensOut | TradFi market schedules. |
get_actionable_signals | SignalListOut | Pre-filtered by production trade-gate (score, conf, percentile). |
get_macro_aligned_signals | SignalListOut | Same macro-veto rule as the internal pipeline. |
get_signals_since | SignalListOut | Polling alternative to /stream. |
get_signal_with_context | composite dict | Signal + levels + macro + dedup cluster, single round trip. |
get_anti_predictive_cells | AntiPredictiveCellsOut | Cells where empirical edge inverted. |
get_liquidation_map | LiquidationMapOut | Estimated liquidation-cluster zones (modeled from OI + leverage tiers). |
get_correlation | CorrelationCoinOut | Correlation + beta of a coin to BTC/ETH + peers. |
get_rotation | RotationOut | Altseason/rotation read — into_alts / into_btc / neutral. |
get_options | OptionsOut | Options analytics — ATM IV, skew, term structure, max-pain (BTC/ETH). |
get_sentiment | SentimentOut | Aggregate sentiment — net lean, volume, velocity (curated sources). |
get_mindshare | MindshareOut | Attention-share leaderboard + velocity (rising/falling/emerging). |
get_mindshare_coin | MindshareCoinOut | One coin's mindshare share, rank, velocity. |
health | HealthOut | Liveness, recent signal count, regime. |
Signal payload reference
Every signal-returning tool emits the same shape as our REST /signals
endpoint, including the May 2026 additions:
historical_edge— empirical win-rate cell, sample size, PnL statspaired_inverse— round-trip-cost-aware inverse-trade advisorycalibration_inverted_in_cell— whentrue,confidenceis null (suppressed by design)signal_latency_secs+latency_quality— freshness telemetrypriced_in_score+priced_in_*— how much the market already moved
Limits
- Rate limit: 600 requests/minute (shared with REST).
- Per-tool
limithard-capped at 100; use thecursorfield to paginate. - For streaming, use
get_signals_sinceas a polling alternative or subscribe to the native/streamWebSocket.
Errors
| Code | Meaning |
|---|---|
-32000 | Unauthorized — missing or invalid API key. |
-32001 | Pro tier required — see error.data.upgrade_url. |
| HTTP 429 | Rate limit exceeded — honor Retry-After. |