Skip to main content
Glama

fahali_get_forecast

Read-onlyIdempotent

Retrieve a forward probability distribution for one trading symbol, covering direction, horizon probabilities, expected move, cone, evidence tier, and withheld-data caveats.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
limitNoOptional maximum rows per projectable collection. Audit has no MCP projection cap; brief defaults to 3 and standard to 12.
sinceNoOptional lower timestamp bound for returned row collections.
detailNoResponse depth. audit is the full-fidelity default; brief and standard are explicit compact projections.audit
symbolYesTrading symbol (e.g. 'BTCUSDT'). Required.
includeNoOptional comma-separated extras: 'reasoning,history'.
symbolsNoOptional symbol projection, as a comma-separated string or array. Rows without instrument identity are not discarded.
include_withheldNoInclude full withheld-row detail. Defaults true with audit; explicitly set false only for a compact projection.

Output Schema

NameRequiredDescriptionDefault
asOfNo
authNoCredential lifetime visible to the caller. OAuth secondsRemaining lets an autonomous agent refresh before a multi-call workflow is interrupted.
coneNo
noteNoPlain-language explanation of the abstention, safe to show a customer verbatim. Names no field and no code path.
blendNo{weightEvidence, rows, directionalRows, calibratedRows, halfWeightRows, selfReportedMaxWeight} — the denominator of an always-on read.
claimNoFahali dictionary claim (shared/fahaliDictionary.ts). kind: 'forecast' (live — has issuedAt/horizonHours/expiresAt), 'observation' (real data, reliability gate withheld a directional promise — has observedAt), or 'abstention' (has `reason`, e.g. forecast_expired, cone_horizon_mismatch, forecast_malformed). Read `kind` before treating anything else in this response as an actionable directional call.
scopeNo
sourceNo
statusNoThe endpoint's original status vocabulary (for example ok, partial, degraded, withheld, or no_alerts). Use mcpStatus for normalized transport success/error.
symbolNo
absenceNoWhy no actionable finding is present: measured_empty, user_empty, no_coverage, source_unverified, stale, withheld, source_error, auth_failure, or entitlement_required.
caveatsNoMachine-readable reasons the evidence path withheld (kept, not hidden): calibration_floor_not_met, no_evidence_found, no_directional_evidence, insufficient_evidence, identity_evidence_withheld, calibration_unavailable, forecast_query_failed, forecast_expired, cone_horizon_mismatch, forecast_malformed. A query failure is NOT a quiet market — do not collapse these.
driversNo
horizonNoThe forecast's ACTUAL registered horizon in hours (e.g. 6, 36) — not a fixed 72. Pairs with expiresAt to know when this claim's window closes.
alwaysOnNoTrue when the served read is the always-on base-rate blend rather than the evidence path's own distribution.
decisionNo
forecastNo
servedByNo'evidence' or the always-on method version.
abstainedNoAlways false since 2026-10-11: a distribution is always served. Kept for compatibility. What the evidence path would once have withheld on is listed under `caveats`.
conflictsNo
dataStateNo
directionNoThe served read's leading outcome at ±2% over `horizon`: up | down | range (range = the in-between outcome leads; `directionLean` names its skew).
expiresAtNocreatedAt + horizon hours — a fixed instant, does not move between requests.
mcpStatusNoNormalized MCP result status. The endpoint's original status vocabulary remains in `status` and `sourceStatus`.
requestIdNo
claimPolicyNoTyped constraints for safe use. Metadata, not a prompt or instruction channel.
climatologyNo{basis, n, windowDays, thresholdPct, barsAhead, assetClass, p10, p50, p90[, symbols]} — the base-rate sample an always-on read is built from.
instrumentsNoResolved or explicitly partial instrument identities. A missing venue carries an ambiguity warning.
nextActionsNoRegistry-validated follow-up calls. Missing tools, invalid arguments, unresolved placeholders, and disabled tools are omitted.
reliabilityNoThe measured grade of the forecast family on the judged record ({family, grade, label, probabilityOfSkill, effectiveSample, judged, reason, source, appliesTo}); grade 'base_rate' when the read is the base rate; 'unmeasured' when no verification row is cached. Quote the grade with the number.
sourceErrorNoThe upstream endpoint's exact error text/code before normalization, when one was present.
sourceScopeNo
evidenceTierNoWhat the probabilities rest on. climatology / class_climatology / uninformative_prior = the base-rate read (no skill claimed); the others = admitted evidence blended into the base rate at the weight in `blend`.
sourceStatusNoThe upstream endpoint's exact status before the MCP envelope normalizes transport success/error.
agentBriefingNoAudit-only narrative projection. Present only when detail='audit'; compact responses do not duplicate structured data as prose.
claimValidityNoValidity of the selected binding claim only, calculated after filtering, projection and row selection. Sibling rows cannot determine it.
directionLeanNoWhen direction is range, which tail is heavier.
responseStateNo
schemaVersionNo
missingSignalsNo
sourceDecisionNo
symbolCoverageNoConservation ledger satisfying requested = returned + withheld + notReturned for requested-symbol calls.
evidenceQualityNo
expiredForecastNoPresent only when claim.kind is 'abstention' with an expiry reason. The stale forecast that expired by its own registered horizon, kept visible for audit rather than silently withheld.
responseControlNo
sourceDataStateNoThe upstream endpoint's exact data-state value before endpoint-aware classification.
abstentionReasonNoLegacy; null. See `caveats`.
recordMatchReasonNoWhy matchedTrackRecord is present or null. A null record is never evidence of safety or engine failure.
matchedTrackRecordNoA judged record only when engine, horizon, regime/instrument class, and claim family match this response. `state` is one of: `measured` (a stratum cleared the publishability gate — `stratum` carries engine, horizon tier, bar regime, recall, precision, base rate, base-rate lift, median lead hours, effective sample, warned events and the measurement date); `withheld` (the gate ran and refused — `reason` says why, in words); `unavailable` (the record could not be read at all — an infrastructure failure that says nothing about the record). It is ONE stratum selected by recall, never a platform-wide accuracy. Null means no exact record match; read recordMatchReason.
confidenceSemanticsNoEvery confidence-bearing value with its score type, scale, calibration status, and probability flag.
decisionEligibilityNoFail-closed binding-authority policy. WITHHELD means source evidence remains available for audit while normalized direction, actionability and execution fields are revoked.
directionEligibilityNoCurrent market-direction eligibility. Direction is authorized only by an exact, eligible producer stratum (canonical_verdict, canonical_symbol_verdict, committee_verdict) — read bindingAuthority to see which one bound. Widening WHO may bind did not weaken WHAT binding requires: the named producer must still hold a matching horizon/class/family record on a verified-only judged population, so an authority without a record still cannot bind.
executionEligibilityNoFail-closed execution boundary. Portfolio monitoring tools always return WITHHELD with MONITOR_ONLY_NO_EXECUTION_AUTHORITY while Fahali has no capital path.
monitoringEligibilityNoCurrent portfolio-monitoring validity based on captured identity, freshness, integrity, and the caller-supplied monitoring policy. ELIGIBLE authorizes observation/delivery only, never financial action.
sourceEvidenceQualityNo
currentActionEligibilityNoCurrent eligibility of an immutable historical portfolio verdict. It never mutates the stored judgment being replayed.
sourceConfidenceSemanticsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.28.1

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), and the description adds genuinely new behavior: an Agent Starter entitlement gate and, on denial, a typed upgrade object rather than an error. It also guarantees the payload is 'ALWAYS served' and that withholding is disclosed via caveats. It stops short of describing latency, rate limits, or caching.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the resource and its guaranteed payload, then gated access last — a sensible ordering. The 'Probabilities, never certainties; observation is not advice' clause is a useful framing but sits closer to boilerplate than operational instruction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, output-schema-backed tool the essential calling information (required symbol, entitlement gate, denial shape, interpretation caveats) is all present. The description leans on restating return fields that the output schema already carries, but nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every one of the seven parameters is already documented, and the description adds no format, default, or interaction detail for limit, detail, include, or include_withheld. Per the coverage rule, baseline 3 is appropriate; the phrase 'declared horizon' gestures at scope but without tying it to any parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource (forward distribution for one symbol) and enumerates exactly what is returned: direction with three states, three summing probabilities, expected move, and cone. It does not, however, differentiate itself from close siblings such as fahali_get_symbol_decision, fahali_get_market_verdict, or fahali_get_lead_time, so the agent must infer the boundary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It tells the agent to read evidenceTier and judged-record reliability and warns that caveats name withheld data, which is consumption guidance rather than selection guidance. There is no explicit statement of when to call this instead of the other forecast-like siblings, so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools