Skip to main content
Glama

fahali_watch_portfolio

Idempotent

Create a durable, monitor-only, long-only portfolio watch from supplied positions or connected accounts; it evaluates and persists observations while rejecting short or hedged exposure.

Instructions

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.

Input Schema

NameRequiredDescriptionDefault
nameNo
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
mandateNo
symbolsNoOptional symbol projection, as a comma-separated string or array. Rows without instrument identity are not discarded.
positionsNoOmit to watch connected accounts. Connected books are also rejected if any short leg is present.
thresholdsNo
account_idsNoOptional connected-account selection. Omit for every connected account.
idempotency_keyYesRequired retry identity for this write. Reuse only for an identical owner, operation, and request; a changed request with the same key fails closed.
include_withheldNoInclude full withheld-row detail. Defaults true with audit; explicitly set false only for a compact projection.
evaluation_interval_minutesNo

Output Schema

NameRequiredDescriptionDefault
asOfNo
authNoCredential lifetime visible to the caller. OAuth secondsRemaining lets an autonomous agent refresh before a multi-call workflow is interrupted.
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. Absent or null means this response path does not yet emit a claim; treat that as unknown, not as agreement.
deltaNo
itemsNo
scopeNo
watchNo
statusYes
absenceNoWhy no actionable finding is present: measured_empty, user_empty, no_coverage, source_unverified, stale, withheld, source_error, auth_failure, or entitlement_required.
verdictNo
watchesNo
decisionNo
conflictsNo
dataStateYes
mcpStatusNoNormalized MCP result status. The endpoint's original status vocabulary remains in `status` and `sourceStatus`.
refreshedNo
requestIdNo
verdictIdNo
nextCursorNo
validUntilNo
claimPolicyNoTyped constraints for safe use. Metadata, not a prompt or instruction channel.
idempotencyNo
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.
sourceErrorNoThe upstream endpoint's exact error text/code before normalization, when one was present.
sourceScopeNo
decisionHashNo
evidenceHashNo
sourceStatusNoThe upstream endpoint's exact status before the MCP envelope normalizes transport success/error.
subscriptionNo
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.
operatingModeYes
responseStateNo
schemaVersionNo
signingSecretNo
subscriptionsNo
authorityStateNo
sourceDecisionNo
symbolCoverageNoConservation ledger satisfying requested = returned + withheld + notReturned for requested-symbol calls.
evidenceQualityNo
responseControlNo
sourceDataStateNoThe upstream endpoint's exact data-state value before endpoint-aware classification.
evidenceSnapshotNoCompact immutable source snapshot needed to verify evidenceRef integrity on delta responses.
recordMatchReasonNoWhy matchedTrackRecord is present or null. A null record is never evidence of safety or engine failure.
signingSecretNoteNo
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.
methodologyVersionNo
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.
legacyFieldSemanticsYes
outputClassificationYes
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 only declare write/idempotent/non-destructive/openWorld; the description adds the important traits: durable persistence, immediate evaluation plus re-evaluation, fail-closed rejection of short/hedged books, and the guarantee that outputs are escalation labels with no order or capital path. Consistent with readOnlyHint=false. It does not mention auth needs, rate limits, or what happens on idempotency-key conflict (that is left to the schema).

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?

Four tight sentences that front-load the action and scope, then constraints, then output semantics. Slightly jargon-heavy ('signed-exposure authority', 'projectable collection'), but every sentence carries information.

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?

An output schema exists so return values need not be spelled out, and the description covers the key gates (long-only, durability, monitoring-only output). For a 12-parameter write with nested mandate/thresholds it leaves the mandate and threshold objects entirely to the schema, which is acceptable but not exhaustive.

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 coverage is 67% and the schema already explains idempotency_key, positions.side, mandate.can_short, include_withheld, and symbols in detail. The description only adds the positions-vs-connected-accounts dichotomy, which the schema's positions description also covers, so baseline 3 is appropriate.

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 specific verb and resource: 'Create a durable, monitor-only, long-only portfolio watch from supplied positions or the caller's connected accounts.' That is clearly distinct from one-shot analysis siblings like fahali_analyze_custom_portfolio and from fahali_update_portfolio_watch, but the description never names those siblings, so the differentiation is inferential.

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 gives a strong when-not condition (short legs, hedges, negative exposure fail closed until signed-exposure authority is certified) and implies durable/persistent monitoring is the use case. However, no alternative tool is named and there is no explicit guidance on when to pick this over fahali_analyze_custom_portfolio or fahali_get_portfolio_risk.

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