Skip to main content
Glama

fahali_get_unusual_money_movement

Read-onlyIdempotent

Identify symbols showing elevated buy-versus-sell volume imbalance from candle data, with net flow, detection score, freshness, and signal-conflict checks.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
limitNoSource-side row depth.
sinceNoISO-8601 lower bound, no more than 7 days ago. Defaults to 24h ago; unparseable values are rejected, never silently defaulted.
detailNoResponse depth. audit is the full-fidelity default; brief and standard are explicit compact projections.audit
symbolsNoFilter to these instruments (comma-separated string or array, max 100). Applied in SQL at the source.
include_withheldNoInclude full withheld-row detail. Defaults true with audit; explicitly set false only for a compact projection.
minimum_flow_usdNoMinimum measured net imbalance in USD. THIS IS THE PRIMARY FILTER. It is a measured dollar magnitude, not a score: (buy_volume - sell_volume) * price. Set 0 to remove the magnitude floor.
minimum_confidenceNoMinimum uncalibrated order-flow detection score. Not an outcome probability, and NOT a magnitude filter — the score is normalised per symbol, so it is flat across six orders of magnitude of money and cannot rank size. It is also effectively a BOOLEAN: the engine emits 0.0 or a value in [0.75, 0.95] and nothing between (measured over 421,157 production rows, 2026-09-14). Any value in (0, 0.75] therefore means the same thing — 'only rows the engine fired on'. Defaults to 0 so magnitude decides. Setting this to 0.5 alongside the default $250,000 floor returned ZERO rows on the day this was written; the two floors rarely coincide.

Output Schema

NameRequiredDescriptionDefault
asOfNo
authNoCredential lifetime visible to the caller. OAuth secondsRemaining lets an autonomous agent refresh before a multi-call workflow is interrupted.
dataNo
claimNoFahali dictionary claim (shared/fahaliDictionary.ts). Read `kind` FIRST: 'abstention' means no assertion was made and `reason` says why — never read an abstention as a neutral or zero result. `basis` says what the claim rests on: this tool is PROXY-derived and can never be 'measured'. Absent or null means this response path does not yet emit a claim; treat that as unknown, not as agreement.
countNo
scopeNo
statusNoThe endpoint's original status vocabulary (for example ok, partial, degraded, withheld, or no_alerts). Use mcpStatus for normalized transport success/error.
absenceNoWhy no actionable finding is present: measured_empty, user_empty, no_coverage, source_unverified, stale, withheld, source_error, auth_failure, or entitlement_required.
coverageNo
decisionNo
evidenceNo
headlineNo
conflictsNo
dataStateNo
mcpStatusNoNormalized MCP result status. The endpoint's original status vocabulary remains in `status` and `sourceStatus`.
requestIdNo
dataOriginNo
provenanceNo
claimPolicyNoTyped constraints for safe use. Metadata, not a prompt or instruction channel.
instrumentsNoResolved or explicitly partial instrument identities. A missing venue carries an ambiguity warning.
limitationsNo
nextActionsNoRegistry-validated follow-up calls. Missing tools, invalid arguments, unresolved placeholders, and disabled tools are omitted.
notReturnedNo
sourceErrorNoThe upstream endpoint's exact error text/code before normalization, when one was present.
sourceScopeNo
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.
responseStateNo
schemaVersionNo
sourceDecisionNo
symbolCoverageNoConservation ledger satisfying requested = returned + withheld + notReturned for requested-symbol calls.
evidenceQualityNo
qualifyingCountNo
responseControlNo
sourceDataStateNoThe upstream endpoint's exact data-state value before endpoint-aware classification.
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 declare readOnly/idempotent/non-destructive, yet the description still adds real value: what is returned (proxy reading, raw volumes, net imbalance, detection score, freshness, label-vs-sign conflict) and an explicit scope limit that the measurement is participant-agnostic and does not infer a causal account. Pagination/rate behavior is the only notable omission.

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?

Three tight sentences, front-loaded with the core purpose, then return content, then scope caveat. Nothing is padding, though enumerating returned fields is slightly redundant given an output schema exists.

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?

With a full output schema, rich parameter descriptions, and read-only annotations, the description supplies enough to call it correctly — what it screens for, what comes back, and that it makes no causal/account attribution. Only the missing alternative-tool routing keeps it short of full marks.

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% and the schema itself explains parameters in exceptional depth (including the boolean-like scoring behavior and the $250,000 floor), so the description is not required to compensate. It adds no parameter-level meaning beyond what the schema already carries — correct baseline of 3.

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?

States a concrete verb and resource: 'Find symbols with elevated candle-derived buy-versus-sell volume imbalance.' That is specific enough to distinguish it from the many verdict/forecast siblings, though it never names an alternative tool explicitly.

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?

Usage context is only implied — an agent can infer this is the flow-imbalance screener but is given no 'use this when / use X instead' routing, nor when to prefer it over fahali_get_capital_flow or fahali_get_highest_conviction_signals.

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