fahali-mcp
Fahali MCP exposes tier-gated market-intelligence and detection tools for crypto, US equities, and ETFs, returning uncertainty-aware signals and provenance rather than just raw prices.
Get market/symbol verdicts, 72h crash/pump/neutral forecasts with p10/p50/p90 uncertainty cones, snapshots, sentiment, regime, conviction signals, and daily briefings.
Assess risk with flash-crash precursor strength, institutional risk scores, portfolio/custom-portfolio risk, VaR/drawdown breakdowns, shock tests, correlation matrices, and contagion maps.
Inspect detection activity and market proxies: dark-pool proxy, smart-money alert lean (not institutional flow), whale activity that abstains without on-chain data, capital-flow imbalance, realtime alert clusters, engine status, and visual intelligence.
Verify performance and provenance via track-record scorecard, case studies, lead-time metrics, engine status, and explicit disclaimers/data-origin notes.
Use agent/account utilities: save/search memories, create custom alerts, and list agent sessions, subject to Free/Professional/Elite tier limits. Informational only — not financial advice.
Provides CrewAI adapter to integrate market-risk intelligence tools into CrewAI multi-agent systems.
Provides LangChain adapter to integrate market-risk intelligence tools into LangChain agent workflows.
Allows ChatGPT to access market-risk intelligence tools using the OpenAI tools format, providing structured market judgment and reasoning.
Provides adapters for Vercel AI SDK to integrate market-risk intelligence tools into AI applications.
Fahali MCP Server
Market-intelligence MCP server that ships uncertainty-aware intelligence with provenance on every response. Fahali runs an ensemble of independent detection engines across ~2,000 live crypto and US equity/ETF instruments in real time — public-market absorption patterns, liquidity anomalies, crash precursors, regime shifts — and detections are tracked against realized market outcomes in a signal→outcome ledger.
Informational only — not financial advice. Fahali detects anomalies; it does not tell you or your agent what to buy or sell.
Tools
Markets & verdict
Tool | What it returns | Minimum tier |
| Primary market-wide judgment: what changed, why it matters, horizon, evidence, conflicts, and invalidation | Professional |
| Primary binding judgment for exactly one named instrument | Professional |
| Audit-compatible canonical verdict path retained for existing integrations | Professional |
| Live prices, changes, asset class for all instruments | Free |
| HMM 4-regime detection: bullish/bearish/neutral/high_vol | Professional |
| Sentiment history with score, source, direction | Free |
| Priority risk clusters with risk conviction separated from directional conviction | Free |
| Yesterday vs today market intelligence diff (alert deltas, regime, intel reference) | Free teaser / Professional |
Risk & crash
Tool | What it returns | Minimum tier |
| Global 0-100 market-risk context from the canonical detection snapshot; not participant or portfolio risk | Professional |
| Uncalibrated early-warning strength and triggers; probability/action withheld unless calibrated | Professional |
| Risk score, VaR, drawdown, per-position breakdown | Elite |
| Stateless risk, canonical direction reconciliation, and covariance coverage for a supplied book; binding action withheld | Elite |
| Natural-language scenario stress test with capital at risk | Free |
Detection activity & flow proxies
Tool | What it returns | Minimum tier |
| Per-symbol detection counts and bullish-versus-bearish alert-type balance; this is alert activity, not executed trade flow | Professional |
| Participant-agnostic, candle-derived buy-versus-sell volume imbalance with conflicts and freshness explicit | Professional |
| Absorption observations derived from public aggregate trades and order-book snapshots, with source and limitations explicit | Professional |
| Measured 60-minute USD buy-vs-sell imbalance for requested symbols, or the strongest available readings. Candle-derived proxy; zero detector score does not erase measured flow | Professional |
| Crash/pump/neutral probabilities with a p10/p50/p90 uncertainty cone over the registered horizon | Professional |
| Per engine: measured hours of warning ahead of correct calls, misses included. Quote | Free |
| Full executive market analysis for today; PARTIAL when subsystems disagree | Professional |
Contagion & correlation
Tool | What it returns | Minimum tier |
| Contagion graph with tail-dependence edges and clusters | Elite |
| Requested-book Pearson matrix from the canonical 45-day covariance artifact, with pair observations and coverage | Free |
Portfolio & alerts
Tool | What it returns | Minimum tier |
| Sentiment momentum, cascade risk, liquidity stress, leverage | Professional |
| Unified detection feed from the active fleet right now | Professional |
Persistent monitoring, history & delivery
Tool | What it returns | Minimum tier |
| Durable portfolio + mandate + thresholds; evaluates immediately and continuously | Elite |
| Existing watches, sources, mandates, cadence and latest verdict IDs | Elite |
| Update positions or mandate and immediately see the new judgment | Elite |
| Binding HOLD/WATCH/REDUCE/EXIT judgment with what, why, when and invalidation | Elite |
| What changed since the previous immutable judgment and why | Elite |
| Cursor- and time-queryable immutable replay, including | Elite |
| One permanent judgment with its evidence and content hashes | Elite |
| Signed webhook/callback, Slack, Teams, account email or registered push delivery | Elite |
| Delivery configuration and health without exposing secrets | Elite |
| Pause, resume, filter or rotate a delivery target | Elite |
| Stop delivery while preserving its audit trail | Elite |
The monitor stores only user-scoped positions, mandate and evidence references. Callback configuration is encrypted. Delivery is deduplicated through a durable outbox, retried after transient failures, and marked failed rather than reported as sent when a channel does not accept it.
Proof & system
Tool | What it returns | Minimum tier |
| Honest 4-axis accuracy with base-rate lift | Professional |
| 40 verified signal→outcome cases with track record | Professional |
| Liveness report for the active detection fleet | Free |
| Unified constellation graph of the active fleet | Free |
Related MCP server: HPSILab - Quant Finance MCP Server for Stock Analysis and Options Analytics
Connect (remote SSE)
SSE endpoint: https://mcp.fahaliai.com/sse
Auth: Authorization: Bearer <your sk_live_ key>
OAuth is preferred. Query-string keys are legacy-only because URLs may be logged.Bring your own API key. Create one free in the Fahali app: app.fahaliai.com/developer (sign in → Developer / API).
Free developer key — the canonical market-decision path (
fahali_get_market_decision,fahali_get_symbol_decision, and the compatiblefahali_get_market_verdict) with reduced depth, 50 calls/day.Full key (Professional tier and above) — all tools at your subscription tier.
Local / stdio
npm install && npm run build
FAHALI_API_KEY=sk_live_... node dist/index.js --stdioClaude Desktop config:
{
"mcpServers": {
"fahali": {
"command": "node",
"args": ["/path/to/mcp-server/dist/index.js", "--stdio"],
"env": { "FAHALI_API_KEY": "sk_live_..." }
}
}
}Cursor config (~/.cursor/mcp.json):
{
"mcpServers": {
"fahali": {
"type": "sse",
"url": "https://mcp.fahaliai.com/sse?api_key=sk_live_..."
}
}
}Windsurf config: open Settings → Cascade → MCP, click Add custom server, and paste:
{
"mcpServers": {
"fahali": {
"type": "sse",
"url": "https://mcp.fahaliai.com/sse?api_key=sk_live_..."
}
}
}Or edit Windsurf's MCP config file directly (location varies by OS; use the UI if unsure).
Why this server
Most market-data MCP servers proxy raw prices. Fahali returns judged intelligence: each verdict carries a confidence score, the reasoning chain that produced it, and provenance you can audit. Detection accuracy is measured continuously against realized outcomes — engines that haven't earned a number report "calibrating", never an invented one.
API reference: https://app.fahaliai.com/openapi.json
Methodology: https://fahaliai.com/methodology
Pricing: https://app.fahaliai.com/pricing
Multi-tenant: each SSE connection is isolated with its own key; keys are never shared across sessions. Informational only, not financial advice.
Available Tools
58 toolsfahali_acknowledge_incidentAIdempotent
Record that an incident has been seen, which stops its escalation clock. Acknowledgment does NOT close the incident and asserts nothing about whether the risk passed — only a later verdict showing the breach cleared can resolve it. Idempotent by state: acknowledging twice returns the first acknowledgment unchanged, preserving the true responder and time, so no idempotency key is needed.
Inputs: incident_id (required), note, limit, since, +4 more. Returns: asOf, auth, claim, delta, +54 more
fahali_analyze_custom_portfolioARead-onlyIdempotent
Analyze measured risk for a custom inline portfolio. Returns historical VaR/expected shortfall, detection-risk observations, canonical direction reconciliation, and a requested-book covariance matrix with per-position correlation coverage. It does not apply stored monitoring thresholds; legacy hold/watch/reduce labels are non-binding monitoring priority only. fahali_get_portfolio_decision adds durable thresholds but remains monitor-only and cannot authorize portfolio or order action.
Inputs: limit, since, detail, symbols, +2 more. Returns: asOf, auth, claim, scope, +38 more
fahali_create_alertA
Create a custom alert. Agent-created alerts appear in the in-app realtime feed, hard-marked with an agent_ type prefix so they are never confused with engine detections; they do not trigger push/SMS to other users, and severity is capped at high (critical is reserved for engines).
Inputs: symbol (required), message (required), severity (required), alert_type (required), +7 more. Returns: asOf, auth, alert, claim, +35 more
fahali_daily_briefARead-onlyIdempotent
Lightweight daily orientation for agents that need the market state without a large payload. Returns the key change, why it matters, evidence quality, and next actions. Use market briefing for depth or market verdict for named symbols.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, note, as_of, +47 more
fahali_fact_check_narrativeARead-onlyIdempotent
Verify a proposed market narrative before repeating it. Each assertion returns SUPPORTED, CONTRADICTED, NO_READ, UNSUPPORTED_SOURCE, OUT_OF_SCOPE, or UNVERIFIABLE with safeToRepeat. Only SUPPORTED is repeatable; NO_READ is not agreement. The worst assertion determines the summary.
Inputs: claim (required), limit, since, detail, +2 more. Returns: asOf, auth, claim, scope, +39 more
fahali_fetch_resourceARead-onlyIdempotent
Fetch any catalogued Fahali resource by path. The path must come from fahali_list_resources: catalogued paths only, never arbitrary URLs and never write routes. Supply :params via path_params, filters via query. Listed does not mean entitled — a gated resource still returns its own refusal, which describes your credential, not the data.
Inputs: resource (required), limit, query, since, +4 more. Returns: asOf, auth, claim, scope, +32 more
fahali_get_active_incidentsARead-onlyIdempotent
List monitor-only incidents Fahali opened on your watches and is still waiting on. An incident opens when a watch reaches REDUCE/EXIT or its evidence coverage degrades, stays open until a later verdict clears it, and escalates if nobody acknowledges it in time. Use it to find what you have not answered. An empty list means nothing is open, NOT that the market is calm.
Inputs: limit, since, detail, symbols, +3 more. Returns: asOf, auth, claim, delta, +54 more
fahali_get_bundleARead-onlyIdempotent
One compact, authenticated market-intelligence bundle for autonomous workflows. Select the views needed and receive them under one response envelope; failed views are named explicitly and never disappear into a partial market read. Defaults include the canonical market decision, briefing, risk, regime, and conviction. Use detail='brief' unless raw evidence is required.
Inputs: limit, since, views, detail, +2 more. Returns: asOf, auth, claim, scope, +37 more
fahali_get_capabilitiesARead-onlyIdempotent
Start here when planning an autonomous Fahali workflow. Returns the canonical live tool catalogue, primary-versus-audit taxonomy, executable registry-validated workflows, tier requirements, response controls, supported identity rules, and schema resources. Compatibility-only names are dispatchable but deliberately absent from discovery. This call is local, lightweight, and does not query market data.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, oauth, +42 more
fahali_get_capital_flowARead-onlyIdempotent
Measured 60-minute USD order-flow imbalance for requested symbols, or the strongest available readings when none are supplied. Zero detector score does not erase netFlowUsd: the score measures unusualness, not data presence. Candle-derived proxy only; no exchange aggressor tape, participant identity, fund-flow attribution, or forecast.
Inputs: limit, since, detail, symbol, +2 more. Returns: asOf, auth, data, basis, +55 more
fahali_get_case_studiesBRead-onlyIdempotent
Get verified case studies from the resolved signal-outcome moat. Returns 40 time-diverse cases with: symbol, alert type, confidence, direction (bullish/bearish/neutral), entry price, outcome price, profit/loss percent, correctness boolean, outcome kind (direction/magnitude/volatility/crash_catch), and 4h/24h returns. Covers the walk_forward engine.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, cases, claim, +34 more
fahali_get_contagion_mapARead-onlyIdempotent
One-hour lower-tail-dependence associations with a measured temporal layer. Arrow order is the producer's and does not prove causal transmission. Pairs in the lead-lag graph carry lagHours and leadSymbol: precedence, not causation. Check measurement.edgesWithMeasuredLag; most pairs have none. propagation gives origins, paths and arrival hours, each flagged measured or composed, with symbolsEligible for coverage. sampleSize is recurrence count. High/extreme needs repeated evidence. Requested-book Pearson: fahali_get_correlation_matrix.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, edges, +41 more
fahali_get_correlation_matrixARead-onlyIdempotent
Requested-book Pearson correlation from the canonical 45-day covariance artifact, with per-pair observations, alignment policy, and explicit missing coverage. Historical association only: not causality, future correlation, or a contagion direction.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, basis, claim, +45 more
fahali_get_detection_activityARead-onlyIdempotent
Recent detection activity per symbol with bullish and bearish alert counts. This measures what fired, not institutional identity, capital flow, or conviction. Use highest-conviction signals to apply the evidence gate and market verdict to obtain a decision.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, scope, +42 more
fahali_get_engine_boardBRead-onlyIdempotent
Board of any contract engine by key: live claims with probability P (the served fit block states whether and how it is calibrated), attribution, input census, health, and the engine's own judged record. Adds findings[], matchedTrackRecord, recordMatchReason, ownStrataCount, record.withheldOnly. Unmeasured inputs are missing data, never calm; read the own stratum, never the headline.
Inputs: engine (required), limit, since, detail, +3 more. Returns: asOf, auth, board, claim, +40 more
fahali_get_engine_statusARead-onlyIdempotent
Engine liveness with event-gated, continuous, validation-only, retired, and structurally unattributed states. Incomplete measurements are null; zero is emitted only for a complete empty window and never proves an engine is down. Read dataState and freshness, then use the track-record scorecard for skill; liveness is not accuracy.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, asof, auth, claim, +44 more
fahali_get_evidenceARead-onlyIdempotent
Fetch the compact, content-addressed evidence behind one immutable portfolio verdict. Returns the evidence snapshot hashed at decision time plus retained source events, explicit retention gaps, canonical instrument resolution, and hash verification. Use summary detail for routine audit and full only when raw source metadata is required.
Inputs: verdict_id (required), limit, since, detail, +4 more. Returns: asOf, auth, claim, scope, +52 more
fahali_get_fall_warningsARead-onlyIdempotent
8-hour fall-warning board: standing warnings with probability P (the served fit block states whether and how it is calibrated) of a >=5% drawdown within 8h, attribution, input census, and the engine's own judged record. Adds findings[], matchedTrackRecord, recordMatchReason, ownStrataCount, record.withheldOnly. Unmeasured inputs are missing data, never calm; 'late' is not a claim; read the own stratum, never the headline.
Inputs: limit, since, detail, symbol, +2 more. Returns: asOf, auth, board, claim, +40 more
fahali_get_flash_crash_riskARead-onlyIdempotent
Current flash-crash precursor activity and affected symbols. The strength value is an uncalibrated detection score, not the probability of a crash. Use the canonical market verdict before stating direction, and the matched judged record before stating performance.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, scope, +38 more
fahali_get_forecastARead-onlyIdempotent
Forward distribution for one symbol — ALWAYS served: direction (up | down | range), upside / downside / range probabilities summing to 1 over the declared horizon, expected move, and cone. Read evidenceTier and judged-record reliability; caveats name what was withheld. Probabilities, never certainties; observation is not advice. Requires Agent Starter; a denial returns a typed upgrade object.
Inputs: symbol (required), limit, since, detail, +3 more. Returns: asOf, auth, cone, note, +53 more
fahali_get_highest_conviction_signalsBRead-onlyIdempotent
Audit current risk forecasts and the complete non-binding committee product: membership, dissent, raw evidence, limitations, invalidation, current canonical-roster evidence rows, and runtime telemetry. Risk and directional conviction remain separate. Use market decision for the canonical direction authority.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, items, +37 more
fahali_get_incident_timelineARead-onlyIdempotent
Replay every immutable verdict Fahali recorded inside one incident's window, in order, each tagged as the opening, an intermediate, or the resolving verdict. Derived from the verdict history rather than copied onto the incident, so the hashes and methodology version are the originals. Use it to answer what Fahali knew, and when, across the life of a breach.
Inputs: incident_id (required), limit, since, detail, +2 more. Returns: asOf, auth, claim, delta, +54 more
fahali_get_lead_timeARead-onlyIdempotent
Verified warning time by exact engine, horizon, regime, and claim family, with recall, precision, base rate, and effective sample. Use headline for a single summary and quote its stratum. Never select a flattering row yourself; null headline means report headlineWithheldReason.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, scope, +44 more
fahali_get_market_briefingARead-onlyIdempotent
Current market briefing compressed from measured risk, regime, conviction, and active detections. Use for orientation, not as a substitute for a per-symbol decision. Partial, withheld, stale, and no-coverage states remain explicit.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, scope, +45 more
fahali_get_market_decisionARead-onlyIdempotent
Primary market judgment entry point and thin alias over the canonical arbiter. Returns its authoritative direction plus forecast, record, invalidation, complete non-binding committee evidence, current canonical-roster engine rows, and runtime telemetry. It performs no second computation. A market-wide call promotes one row; read decisionSelection.
Inputs: limit, since, detail, symbols, +2 more. Returns: asOf, auth, data, claim, +38 more
fahali_get_market_moodARead-onlyIdempotent
How fearful or greedy prices are, scored 0-100 separately for US stocks and crypto. Each measured price fact (trend vs 50-day average, breadth, volatility, safe-haven and junk-bond demand, alt appetite) is ranked against its own past; read ranked beside any percentile. Unreadable measures are null with a reason, never a neutral 50. A description, not a forecast or a grade. Observation, not advice.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, kind, claim, +39 more
fahali_get_market_regimeARead-onlyIdempotent
One market-wide regime reading: bullish, bearish, neutral_range_bound or high_volatility, with volatility, trend strength and window return. This endpoint is market-wide only and a symbol filter cannot narrow it; per-symbol regime exists via fahali_get_realtime_alerts(alert_types: 'regime_state'). The direction word the producer emits is withheld with its reason; read trendStrength. Empty array when nothing is persisted. Observation, not advice.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, count, +35 more
fahali_get_market_risk_scoreARead-onlyIdempotent
Global 0-100 market-risk context from the canonical 24-hour detection snapshot. It is not institution identity, participant positioning, or portfolio-specific risk. Read coverage and snapshot identity with the score.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, level, +41 more
fahali_get_market_sentimentARead-onlyIdempotent
Get seven days of sentiment alerts and judged sentiment claims. Both lifecycle streams are returned separately and in one chronological history; one never replaces the other. limit applies per source, defaulting to the maximum 200. A verified empty slice means no qualifying claim was recorded — never neutral or calm. Missing score or news count stays null.
Inputs: limit, since, detail, symbol, +2 more. Returns: asOf, auth, claim, count, +42 more
fahali_get_market_snapshotARead-onlyIdempotent
Live prices and changes, with asset class, venue and identity. Crypto is the full Binance USDT book; US equities are a small watchlist PLUS any symbol you name in symbols, fetched on demand — so an unrequested equity is absent because nobody asked, not because it is quiet. Read coverage for what was searched, and coverage.volume.comparableAcrossBases before ranking by volume. Public data.
Inputs: limit, since, detail, compact, +4 more. Returns: asOf, auth, claim, scope, +40 more
fahali_get_market_verdictCRead-onlyIdempotent
Canonical per-symbol judgment and sole direction authority: state, reliability, conflict, forecast, record, invalidation, committee evidence, canonical engine rows, and runtime telemetry. Always-on base-rate blend ensures direction is never withheld; notReturned preserves runtime telemetry for unjudged symbols. Audit defaults to full fidelity; quiet, stale, unavailable, and retired states remain explicit. Committee evidence is non-binding.
Inputs: limit, since, detail, symbols, +2 more. Returns: asOf, auth, data, claim, +38 more
fahali_get_microstructure_proxyARead-onlyIdempotent
Latest absorption observations derived from public aggregate trades and order-book snapshots. Filter by symbol or time; omit symbols for the latest fleet-wide observations. The response reports price/volume behavior, freshness, conflicts, and venue only when the source identifies it; it does not attribute activity to a trader or report hidden executed volume.
Inputs: limit, since, detail, symbol, +2 more. Returns: asOf, auth, data, claim, +41 more
fahali_get_portfolio_decisionB
Get the current non-binding, monitor-only risk assessment for a persistent watch. Legacy HOLD/WATCH/REDUCE/EXIT values are escalation labels interpreted only inside the supplied monitoring thresholds; machine policy fields prohibit treating them as a personalized recommendation, portfolio action, order, or execution authority.
Inputs: watch_id (required), limit, since, detail, +3 more. Returns: asOf, auth, claim, delta, +54 more
fahali_get_portfolio_metricsBRead-onlyIdempotent
Get aggregate portfolio risk metrics. Returns sentiment momentum (bullish vs bearish signal balance), cascade risk score, liquidity stress score, and signal stress level (derived from leverage/derivative signal confidences). Synthesizes data from leverage, funding_stress, and volume_anomaly engines.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, scope, +42 more
fahali_get_portfolio_riskARead-onlyIdempotent
Measured connected-book risk, VaR/expected shortfall, canonical covariance, and per-position monitoring evidence. Direction belongs to the canonical symbol verdict; this stateless surface withholds binding actions and points to the mandate-aware portfolio decision tool.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, scope, +38 more
fahali_get_realtime_alertsARead-onlyIdempotent
Recent raw detections with symbols, timestamps, types, severity, and evidence metadata. An alert is an observation, not a verdict or trade instruction. Use symbols, since, limit, and minimum scope controls to keep the response small, then call market verdict for judgment.
Inputs: limit, since, detail, symbols, +3 more. Returns: asOf, auth, claim, scope, +39 more
fahali_get_sector_rotationARead-onlyIdempotent
Where market leadership is moving: US sectors vs the S&P 500, major coins vs Bitcoin, and Bitcoin, gold and bonds vs the S&P 500. Each member is leading, weakening, lagging or improving by its relative return over a short and a long window, with how unusual the recent move is. Relative price performance, not money flow, not a forecast. Observation, not advice.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, kind, basis, +40 more
fahali_get_symbol_decisionARead-onlyIdempotent
Primary single-instrument judgment and thin alias over the canonical arbiter. Returns its authoritative direction plus forecast, record, invalidation, complete non-binding committee evidence, current canonical-roster engine rows, and runtime telemetry. It performs no second computation.
Inputs: symbol (required), limit, since, detail, +3 more. Returns: asOf, auth, data, claim, +38 more
fahali_get_track_record_scorecardARead-onlyIdempotent
Judged outcomes by engine, claim family, asset class, regime, and horizon, including misses, recall, precision, base rate, and effective sample. Never turn one row into platform-wide accuracy. A figure is repeatable only when publishable and must travel with its exact stratum and recall.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, scope, +41 more
fahali_get_unusual_money_movementARead-onlyIdempotent
Find symbols with elevated candle-derived buy-versus-sell volume imbalance. Returns the latest proxy reading, raw volumes, net imbalance, uncalibrated detection score, freshness, and any conflict between the stored signal label and net-flow sign. The measurement is participant-agnostic and does not infer whether one account caused the movement.
Inputs: limit, since, detail, symbols, +3 more. Returns: asOf, auth, data, claim, +42 more
fahali_get_verdict_by_idARead-onlyIdempotent
Replay one immutable verdict by its permanent ID. Returns the exact mandate-aware decision, evidence references, delta, methodology, previous verdict, and integrity hashes recorded at that time. A missing ID returns no_data rather than substituting the latest judgment.
Inputs: verdict_id (required), limit, since, detail, +2 more. Returns: asOf, auth, claim, delta, +54 more
fahali_get_verdict_historyARead-onlyIdempotent
Query immutable portfolio verdict history by watch, symbol, time, or cursor. Use as_of to reconstruct what Fahali knew before a later market move. Every row binds the decision, evidence revision, mandate, methodology version, prior verdict, and content hash; empty history means no recorded judgment, not agreement.
Inputs: as_of, limit, since, cursor, +5 more. Returns: asOf, auth, claim, delta, +54 more
fahali_get_visual_intelligenceARead-onlyIdempotent
Graph-ready instrument clusters derived from current detection activity. Visual intensity and proximity are display rankings, not conviction, capital flow, causality, or direction. Use market verdict to obtain a claim and the glossary for field meanings.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, flows, +40 more
fahali_get_watch_deltaA
Return only what changed for a persistent monitor-only watch: escalation label, risk band, direction, evidence coverage, threshold crossings, new evidence, and previous/current immutable verdict IDs. Defaults to a fresh evaluation. An unchanged result is explicit and never interpreted as market safety or permission to trade.
Inputs: watch_id (required), limit, since, detail, +3 more. Returns: asOf, auth, claim, delta, +54 more
fahali_list_agent_sessionsBRead-onlyIdempotent
List all sessions for the current agent. Returns session metadata including first seen, last active, memory count, and active status.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, scope, +33 more
fahali_list_connected_accountsARead-onlyIdempotent
List the authenticated user's connected accounts before requesting portfolio analysis. Returns provider, display name, connection state, last sync, equity, currency, and position count. Broker account numbers, credentials, user identifiers, and provider metadata are never returned. No accounts is an explicit no_data state, not a portfolio all-clear.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, count, +35 more
fahali_list_portfolio_watchesARead-onlyIdempotent
List the caller's persistent portfolio watches, including mandate, thresholds, source, status, and latest verdict ID. Use this before asking the user to recreate a watch. A missing list means no watch exists; it is not a calm-market reading.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, claim, delta, +54 more
fahali_list_resourcesARead-onlyIdempotent
List every readable Fahali resource, derived from the live API router rather than a hand-maintained list. Each entry gives its path, parameters, and the gates it enforces, so you see what a route requires before calling. Excluded routes are returned with reasons. Discover here, then call fahali_fetch_resource. Purpose-built tools stay better when one covers your question.
Inputs: limit, since, detail, symbols, +1 more. Returns: asOf, auth, basis, claim, +36 more
fahali_list_risk_subscriptionsARead-onlyIdempotent
List the caller's risk-delivery subscriptions and their health without exposing callback URLs or encrypted configuration. Returns channel, event filters, minimum action, last delivery, failure count, and target hint. Use this before creating a duplicate subscription.
Inputs: limit, since, detail, symbols, +2 more. Returns: asOf, auth, claim, delta, +54 more
fahali_resolve_instrumentARead-onlyIdempotent
Resolve a ticker to canonical identity: canonicalId, displayName, assetClass, venue, quote currency, session. Call it when a response returns resolutionState 'ambiguous'. FETH, FBTC, GBTC and ABTC are ETFs that parse as crypto pairs. A bare crypto base (BTC) resolves to its pair (BTCUSDT); a security sharing the ticker is named in symbolResolutions — pass assetClass 'equity' for it.
Inputs: limit, since, detail, symbol, +3 more. Returns: asOf, auth, claim, scope, +36 more
fahali_run_shock_testARead-onlyIdempotent
Apply a sized scenario to connected or supplied positions and report capital impact by holding. This is a deterministic shock unless simulations and probabilities are explicitly returned; null simulations are not hidden Monte Carlo. Supply concrete symbols and signed moves.
Inputs: limit, since, detail, shocks, +7 more. Returns: asOf, auth, mode, note, +48 more
fahali_save_memoryADestructiveIdempotent
Save a memory to the agent memory store. Memories persist across sessions for a given agent. Memory types: episodic (specific experiences), semantic (facts/knowledge), procedural (how-to).
Inputs: key (required), value (required), limit, since, +4 more. Returns: asOf, auth, claim, scope, +34 more
fahali_search_memoriesARead-onlyIdempotent
Semantic search across agent memories. Returns memories matching the search query using vector similarity (when available) or text ILIKE fallback.
Inputs: query (required), limit, since, detail, +2 more. Returns: asOf, auth, claim, scope, +33 more
fahali_subscribe_riskAIdempotent
Idempotently deliver monitor-only observations and risk alerts through a signed webhook, agent callback, Slack, Teams, account email, or registered push device. Delivery policy structurally prohibits personalized recommendations, portfolio actions, orders, and execution. A generated signing secret is recoverable only through the exact authenticated idempotent request; a changed request requires a new key.
Inputs: channel (required), watch_id (required), idempotency_key (required), limit, +8 more. Returns: asOf, auth, claim, delta, +54 more
fahali_unsubscribe_riskADestructiveIdempotent
Idempotently disable a monitor-only risk subscription. New queueing and retries stop; pending work is fenced and its audit remains visible. A request already past the dispatch boundary may arrive once, so receivers must deduplicate by X-Fahali-Delivery. Retry an identical request with the same idempotency key; use a new key for any change.
Inputs: idempotency_key (required), subscription_id (required), limit, since, +3 more. Returns: asOf, auth, claim, delta, +54 more
fahali_update_portfolio_watchADestructiveIdempotent
Idempotently update a persistent monitor-only, long-only watch's positions, connected-account scope, mandate, thresholds, interval, or status. Any short leg, hedge, negative exposure, or can_short=true request fails closed. Fahali never acquires recommendation, portfolio-action, order, or execution authority.
Inputs: watch_id (required), idempotency_key (required), name, limit, +11 more. Returns: asOf, auth, claim, delta, +54 more
fahali_update_subscriptionADestructiveIdempotent
Idempotently change a monitor-only risk subscription's active/paused status, event filters, escalation threshold, or delivery target. Updating a webhook target rotates its signing secret once per idempotency key. Stored targets remain encrypted and no recommendation/order authority is introduced.
Inputs: idempotency_key (required), subscription_id (required), limit, since, +8 more. Returns: asOf, auth, claim, delta, +54 more
fahali_watch_portfolioAIdempotent
Create a durable, monitor-only, long-only portfolio watch from supplied positions or the caller's connected accounts. Short legs, hedges, negative exposure, and connected books containing them fail closed until signed-exposure authority is separately certified. Fahali evaluates immediately and persists/re-evaluates the observation. Output labels are monitoring escalation only: no personal recommendation, portfolio action, order, or capital path exists.
Inputs: idempotency_key (required), name, limit, since, +8 more. Returns: asOf, auth, claim, delta, +54 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 58 tools
Several clusters have unclear boundaries: fahali_get_market_verdict, fahali_get_market_decision and fahali_get_symbol_decision are explicitly described as aliases over the same canonical arbiter, and fahali_get_forecast largely duplicates forecast content inside the verdict. Orientation tools (fahali_get_market_briefing, fahali_daily_brief, fahali_get_bundle) and detection tools (detection_activity, realtime_alerts, highest_conviction_signals, flash_crash_risk, unusual_money_movement, capital_flow, microstructure_proxy) overlap heavily and rely on prose caveats rather than distinct purposes to separate them.
Nearly all tools follow fahali_verb_noun snake_case with a stable prefix, so the pattern is predictable. A few deviations exist (fahali_daily_brief has no verb, fahali_fact_check_narrative uses a compound verb, fahali_analyze_custom_portfolio and fahali_get_evidence are irregular), but they remain readable.
58 tools is far beyond the 3-15 sweet spot and forces the agent to choose among many near-duplicate endpoints. The domain (market data, portfolio monitoring, incidents, subscriptions, memory) is genuinely broad, but the surface is inflated by alias tools and layered audit views that could be consolidated.
Coverage is unusually thorough: market state, forecast, regime, sentiment, portfolio watching with full verdict/incident lifecycle, subscriptions, and memory all have create/read/update paths. Minor gaps remain, such as no delete or archive operation for portfolio watches and no update/delete for stored memories.
Maintenance
Related MCP Connectors
US stock signals, screeners and options analysis over MCP. Not investment advice.
Production MCP server for US equity and options intelligence: real-time IV radar, Monte Carlo simulation, options pressure, strategy backtesting, AI prediction, pre-trade risk analysis, and automated stock research reports.
MCP for Tradewink trading signals and watchlists. Not financial advice.
Robinhood Chain stock-token + prediction-market intelligence MCP. Read-only, evidence-first.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceCrypto intelligence MCP: 104 tools for market data, ML signals, on-chain analytics, derivatives, and Bittensor subnets. Pay-per-call via x402 USDC on Base/Solana/Algorand/Stellar or $9.99/mo API key.MIT
- AlicenseAqualityBmaintenanceInstitutional-grade quantitative stock analysis and research signals for AI agents via the Model Context Protocol (MCP).101MIT
- AlicenseNot gradedqualityDmaintenanceProvides predictive crypto market intelligence synthesized from whale positions, developer activity, and behavioral demand signals. Enables convergence scoring, whale divergence detection, and risk radar through MCP tools.83 npmMIT
- AlicenseAqualityCmaintenanceAI-powered financial intelligence for autonomous trading agents. 9 MCP tools for real-time trading signals, risk index, market regime detection, stock analysis, commodity scoring, sector radar, and geopolitical intelligence briefings.131MIT