Skip to main content
Glama

Server Details

Live macro data for AI agents: regime, conditions, liquidity, with input provenance. No signup.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.9% over 62 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 24 tools

Disambiguation3/5

Several tools return layered or overlapping macro data: get_dashboard, get_macro_regime, get_financial_conditions, get_growth_indicators and get_inflation_indicators all expose pieces of the same six-reading model, while get_conditions_history, get_regime_history, get_liquidity_history and get_indicator_history overlap on timeseries. get_china_liquidity is explicitly duplicated inside other reads, and get_chapter versus run_chapter both return chapter content with only logging as the difference. Descriptions cross-reference and explain the distinctions, but the set contains more than one or two confusable pairs.

Naming Consistency5/5

All tool names use snake_case with a predictable verb_noun or get_noun pattern: get_*, list_*, run_*, and score_*. There are no mixed conventions or inconsistent verb styles.

Tool Count3/5

24 tools is on the heavy side for an MCP server and sits at the borderline where the surface starts to feel sprawling. The tools span macro reads, four different history tools, loop/framework content, portfolio analysis, pricing and ETF look-through. Each has an apparent role, but the count invites overlap rather than a tightly scoped set.

Completeness4/5

Read-only macro coverage is extensive: dashboard, regime, financial conditions, growth, inflation, liquidity histories, event calendar, weekly releases, data health, world brief and China-liquidity detail. Loop and portfolio surfaces are also present (list/get/run chapter and mode, prices, ETF profile, drift alerts, position drift scoring). Minor gaps remain, such as no feedback-submission tool despite invocation_id returns and no explicit search across loops or briefs.

Available Tools

24 tools
get_chapterGet chapterA
Read-only
Inspect

Fetch the full content of a chapter by loop slug and node. Loops not marked open require entitlement; every published loop is currently open and free. Does not log an invocation; run_chapter is the variant that runs the framework and logs.

NameRequiredDescriptionDefault
nodeYesChapter node
loop_slugYesLoop slug

Output Schema

NameRequiredDescription
nodeNo
titleNo
contentNo
versionNo
loop_slugNo
loop_titleNo
author_nameNo
terms_glossaryNo

TDQS

A4.7/5.0
Behavior5/5

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

The annotations already mark the operation as read-only and non-destructive, and the description adds further behavioral context: it does not log invocations, entitlement is required for non-open loops, and all published loops are currently open and free. This goes meaningfully beyond the structured annotations.

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

Conciseness5/5

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

Three concise sentences, each carrying distinct value: the action, the entitlement caveat, and the logging distinction from run_chapter. No filler or redundant restatement of the schema.

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

Completeness5/5

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

For a two-parameter read-only tool with an output schema, the description covers the essential context: what is fetched, how chapters are identified, entitlement rules, and the relationship to the logging variant. Nothing critical 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?

The input schema already covers both parameters fully, including an enum for node with descriptions. The description repeats 'loop slug and node' but adds no additional semantic detail, so the baseline of 3 applies.

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

Purpose5/5

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

Description uses a specific verb ('Fetch') with a clear resource ('full content of a chapter') and identifies the two required identifiers ('loop slug and node'). It also distinguishes itself from run_chapter and get_loop by framing chapter-level content retrieval.

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

Usage Guidelines5/5

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

Explicitly states when the tool is appropriate: fetching chapter content without logging an invocation. It names run_chapter as the alternative for running the framework and logging, and mentions entitlement conditions. This gives clear routing guidance.

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

get_china_liquidityGet China liquidityA
Read-only
Inspect

Read the latest Mako-curated PBoC balance-sheet publication (CNY trillions + source URL + as_of_month + note). Public read — suitable for surfacing directly when explaining the China leg of global liquidity. The same value is also embedded in get_financial_conditions.pillars.global_liquidity.components.china and is the PBoC leg of the Money card of get_dashboard; this tool exists for direct/auditable access.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
rowNo
statusNo
terms_glossaryNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful context beyond that: it is a public read requiring no auth, returns provenance fields (source URL, as_of_month, note), and duplicates data available elsewhere. It does not discuss caching or freshness beyond 'latest'.

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 core action and payload, then the routing/context sentence. Slightly dense in the second sentence with a long nested path (get_financial_conditions.pillars.global_liquidity.components.china), but every clause earns its place by clarifying duplication and intent.

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

Completeness5/5

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

With a rich output schema and full annotations, the description need not explain return values, and it still names the key fields. It covers sourcing, alternative access paths, and intended use, leaving no gap for a no-parameter read tool.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing to disambiguate; the baseline of 4 applies. The description correctly implies a no-argument read, and the enumerated return fields are extra value even though they belong to the output schema.

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

Purpose5/5

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

States a specific verb and resource: 'Read the latest Mako-curated PBoC balance-sheet publication,' and enumerates what is returned (CNY trillions, source URL, as_of_month, note). It explicitly distinguishes itself from siblings by noting the value is also embedded in get_financial_conditions and get_dashboard, so an agent knows exactly what this tool uniquely provides.

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

Usage Guidelines4/5

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

Tells the agent when to use it ('suitable for surfacing directly when explaining the China leg of global liquidity') and why it exists versus the alternatives ('direct/auditable access' vs. the embedded copies). It does not state an explicit when-not-to-use, but the overlap with get_financial_conditions/get_dashboard is clearly delineated.

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

get_conditions_historyGet conditions historyA
Read-only
Inspect

Financial-conditions read-history — a timeseries of how conditions have moved over recent weeks. Returns one row per sample date with the composite (loose/neutral/tight), direction (easing/stable/tightening), and every pillar's value + class: 10Y real yield, HY/IG credit spreads, DXY, VIX, global-liquidity class. The rate legs behind the real yield are exposed numerically too (dgs10_pct, t10yie_pct, t5yie_pct, t10y2y_pct), so a real-yield move can be read as nominal-led or breakeven-led rather than only as a fused number. Completes the Chapter 1 history trio with get_regime_history (the judgment) and get_liquidity_history (the flow) — this is the price of risk. Surfaces trajectory that a point read hides (e.g. HY spreads widening for six straight weeks while VIX stays calm), and grounds 'conditions are tightening' statements in observed pillar changes. Window deltas per pillar are in 'summary.deltas'; composite/direction/pillar classification changes are listed as events. The response includes a 'presentation' object whose 'display_markdown' is a pre-formatted table; 'data.rows' and 'summary' carry the same values structured. Rows are provenance-tagged 'observed' (live that day, true vintage) or 'reconstructed' (point-in-time from vintage data — each series as it was published on that date, ~4 months deep). Defaults to the last 12 weeks, weekly. get_indicator_history covers any card or row of get_dashboard over a year, at its own print dates.

NameRequiredDescriptionDefault
intervalNoSample cadence (default weekly)
lookback_weeksNoHow many weeks of history to cover (default 12, clamped 1–52)

Output Schema

NameRequiredDescription
dataNo
toolNo
statusNo
summaryNo
warningsNo
generated_atNo
presentationNo

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnly/non-destructive annotations, it discloses provenance tagging ('observed' live vintage vs 'reconstructed' point-in-time, ~4 months deep), default window (12 weeks weekly), and response shape (data.rows, summary.deltas, presentation.display_markdown). This is exactly the behavioral context annotations cannot carry.

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?

It is long, but front-loaded with the core identity and each subsequent sentence adds distinct value (pillars, provenance, routing). A few clauses (the full pillar enumeration) border on surplus for a routing decision, keeping it off a 5.

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

Completeness5/5

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

With an output schema present, return-value explanation is optional, yet the description still orients the agent on rows, summary.deltas, events, and the presentation object, while covering scope, defaults, and provenance. 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% — both interval and lookback_weeks already document cadence and the 1–52 clamp. The description restates the defaults ('last 12 weeks, weekly') without adding syntax or semantics beyond the schema, so baseline 3 applies.

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

Purpose5/5

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

Opening clause 'Financial-conditions read-history — a timeseries of how conditions have moved over recent weeks' gives a specific verb+resource+scope. It explicitly distinguishes itself from siblings get_regime_history (the judgment), get_liquidity_history (the flow), and get_indicator_history (any card over a year). An agent can route without opening a schema.

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

Usage Guidelines4/5

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

States the context of use ('grounds tightening statements in observed pillar changes', surfaces trajectory a point read hides) and names the alternative get_indicator_history with its distinct coverage. It does not spell out an explicit when-not condition, so it falls just short of a full routing rubric.

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

get_dashboardGet dashboardA
Read-only
Inspect

The Jawz Dashboard: where the world stands, in six readings. Regime (GREEN / YELLOW / RED: consumer mood and money together), Money (PLENTIFUL / STEADY / SCARCER: the Fed, ECB, Bank of Japan and PBoC balance sheets in dollars), Business cycle (SPRING / SUMMER / FALL / WINTER: growth, a vote of factory output, jobs and investment, crossed with prices), Financial conditions (LOOSE / EASING / NEUTRAL / TIGHTENING / TIGHT: rates and credit), Store of value (RISING / MIXED / FALLING: gold and bitcoin) and Investment (BOOMING / STEADY / FADING: the AI build-out, from data centres, chips, the four big builders' capital spending and power). Each card carries its rule in one sentence, the badge with the date it has held since, the badge's last three prints, and the rows behind it, each with its last three prints (date, word and value as the card writes it) and a data-quality status (ok, stale or unavailable). The summary has the six badges, what set each, and the biggest risk in one line. Returned three ways: the dashboard object as structured content, a short card as markdown text (one line per reading with what set it and since when, the biggest risk, and the link to the full dashboard), and the full card as a PNG image. as_of (YYYY-MM-DD, optional) returns the dashboard as Jawz would have read it that day, using only data published by then, with today's rules applied: rules_note says so and, when Jawz's daily snapshot for that date is on file, what Jawz published that day. as_of reaches back 365 days and excludes today, which is the default; a future date or one before the window returns an error stating the supported range. In a dated read every row carries point_in_time. The Investment card's Data centres and Chips rows are not point in time (the Census tables behind them keep only their revised figures, so a dated read shows those months as revised since) and point_in_time_note names them; every other row is as published by that date. The detail behind the cards is in get_macro_regime, get_financial_conditions, get_growth_indicators and get_inflation_indicators; get_indicator_history gives any card or row over time. Read-only, no account needed. Information, not investment advice.

NameRequiredDescriptionDefault
as_ofNoOptional past date, YYYY-MM-DD, within the last 365 days: the dashboard as Jawz would have read it that day, from data published by then. Omit (or pass today) for today's dashboard.

Output Schema

NameRequiredDescription
as_ofNo
staleNo
blocksNo
summaryNo
versionNo
rules_noteNo
generated_atNo
method_notesNo
presentationNo
pending_blocksNo
as_of_requestedNo
point_in_time_noteNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/openWorld/destructive, but the description goes well beyond them: read-only and no account needed, three return renderings (structured content, markdown card, PNG image), error behavior for out-of-window dates, and nuanced point-in-time semantics including the specific rows that are not point in time and the point_in_time_note. That is substantial disclosure the annotations cannot carry.

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?

The opening sentence and the card enumeration are front-loaded and every clause carries substantive information about badges, rows, and dated reads. It is, however, long and somewhat prose-heavy, and the explanation of the three return renderings partially duplicates the output schema, costing a point on tightness.

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

Completeness5/5

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

For a high-complexity, multi-card tool with an output schema and clean annotations, the description covers purpose, routing, dated-read semantics, caveats, and error behavior. Nothing an agent needs 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.

Parameters5/5

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

Schema coverage is 100% and the single as_of parameter is documented, yet the description adds real meaning beyond it: the 365-day reach, exclusion of today as the default, the error on future/too-old dates, rules_note behavior, per-row point_in_time, and the Investment card's Data centres/Chips exception. This is more than the schema conveys.

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

Purpose5/5

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

The description names a specific resource (the Jawz Dashboard) and enumerates exactly what it contains: six readings (Regime, Money, Business cycle, Financial conditions, Store of value, Investment) with their badge vocabularies and per-card rows. It explicitly differentiates itself from sibling detail tools (get_macro_regime, get_financial_conditions, get_growth_indicators, get_inflation_indicators, get_indicator_history), so an agent can route correctly without opening a schema.

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

Usage Guidelines4/5

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

It clearly routes: this tool gives the overview, while the named siblings give 'the detail behind the cards' and get_indicator_history gives a card or row over time. It also states when as_of applies and its constraints. It does not spell out explicit exclusions beyond the date-window error, so it falls just short of a 5.

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

get_data_healthGet data healthA
Read-only
Inspect

Freshness status for every data source Jawz reads: per-source release date, latest observation date, expected cadence, age in days, and whether any source is stale or unavailable. Also reports whether the ingestion pipeline is keeping up, and carries plain-language notices when a scheduled update has not arrived. Applies when the reliability of a figure depends on how current its underlying data is.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
as_ofNo
cronsNo
noticesNo
sourcesNo
any_staleNo
collectorNo
ecb_fallbackNo
vix_fallbackNo
calendar_alertNo
terms_glossaryNo
any_unavailableNo
china_release_alertNo
umich_release_alertNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds useful behavioral context beyond that: it reports on ALL sources, surfaces pipeline lag and plain-language notices about missing scheduled updates. It does not cover caching, latency, or staleness thresholds, keeping it short of a 5.

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?

Two sentences, front-loaded with the resource scope and then the usage trigger. The middle clause enumerates output fields that the output schema already documents, which is mild redundancy, but the sentence still reads efficiently and wastes little.

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

Completeness5/5

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

For a zero-parameter, read-only diagnostic tool with an output schema present, the description supplies everything an agent needs: what it reports, that coverage is all sources, and when the result matters. Return-value detail is a bonus rather than a necessity here.

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

Parameters4/5

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

The tool takes zero parameters, so there is no parameter semantics to explain and the baseline is 4. The description correctly avoids inventing arguments and instead spends its words on the returned content.

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

Purpose5/5

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

The description states a specific resource and scope — freshness status for every data source Jawz reads — and enumerates the exact contents (release date, latest observation date, cadence, age, stale/unavailable flags). An agent can distinguish it from get_weekly_data_releases (scheduled release calendar) or get_drift_alerts (model drift) without opening any schema.

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

Usage Guidelines4/5

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

It gives an explicit triggering condition: use it when the reliability of a figure depends on how current its underlying data is. That is a clear context for selection, though it does not name alternatives or state when the tool is unnecessary.

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

get_drift_alertsGet drift alertsA
Read-only
Inspect

Portfolio-wide drift scan. Iterates Decision Records, calls score_position_drift on each, returns flagged positions with severity + why_flagged + review_questions. Flag types: drift_severe (review_now), drift_meaningful (deteriorated), fit_low_structural (score ≤2 but unchanged since entry — low by design, not decay), fit_low_decayed (score ≤2 AND below entry fit — deteriorated after entry), conviction_gap (|gap| ≥3), thesis_undocumented (entry_date or thesis missing). Backs Chapter 4 Mode 4.3 (Thesis Status Sweep) as the portfolio-wide drift scan; flagged names feed a Mode 4.2 (Position Retrospective).

NameRequiredDescriptionDefault
portfolioYesArray of Decision Records — one per position the user wants scanned

Output Schema

NameRequiredDescription
alertsNo
as_of_dateNo
terms_glossaryNo
staleness_flagsNo
total_positionsNo
flagged_positionsNo
positions_without_recordsNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and destructiveHint, so the description carries the load for behavior. It discloses that the tool iterates Decision Records, calls score_position_drift per record, returns specific fields, and explains the nuanced semantics of each flag type (e.g., fit_low_structural is low by design, not decay). This far exceeds what annotations provide and adds no contradictions.

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

Conciseness5/5

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

The description is dense but every sentence earns its place: the first sentence front-loads the core purpose and return values, and the flag-type list provides essential interpretation context. No filler or redundancy; the structure makes a complex behavioral contract digestible.

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

Completeness5/5

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

For a read-only scanner with an output schema, the description is complete: it explains the input (portfolio of Decision Records), the process (iterating and scoring), the output semantics (flag types and accompanying fields), and the operational context (backing Mode 4.3 and feeding Mode 4.2). Nothing critical for correct invocation or interpretation 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% and the schema already defines portfolio as an array of Decision Records with field-level descriptions. The description adds some contextual meaning by saying it iterates and calls score_position_drift, but the parameter semantics themselves are largely already documented in the schema, so the baseline 3 applies.

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

Purpose5/5

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

The description states a specific verb ('portfolio-wide drift scan'), a clear resource (Decision Records), and the output (flagged positions with severity + why_flagged + review_questions). It also enumerates the exact flag types, making the tool's function unambiguous and easily distinguishable from its sibling score_position_drift.

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

Usage Guidelines4/5

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

The description clearly frames this as the portfolio-wide scan and references Mode 4.3 (Thesis Status Sweep) as its use case, plus mentions it calls score_position_drift on each record, implying the single-position alternative. However, it does not explicitly state 'use score_position_drift for a single position' or provide a when-not-to-use exclusion, so it stops short of a 5.

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

get_etf_profileGet ETF profileA
Read-only
Inspect

ETF look-through for Chapter 2 Mode 2.2 (Concentration Check). Given ETF ticker(s), returns each fund's top holdings with weights so the AI can overlay them with the user's direct positions and surface hidden single-name concentration. Each profile carries source='live' (Vanguard API, fresh) or source='catalog' (dated snapshot — see as_of). Holdings are TOP-N only, so any true-exposure figure computed from this is a floor, not exact. Bond and commodity ETFs return no holdings by design. Tickers not in the catalog come back in unknown_tickers; their contents are not known to Jawz and no holdings are returned for them.

NameRequiredDescriptionDefault
tickersYesETF ticker symbols to look through (e.g. ['QQQ','VGT','SPY'])

Output Schema

NameRequiredDescription
coverageNo
guidanceNo
profilesNo
requestedNo
data_sourcesNo
terms_glossaryNo
unknown_tickersNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations mark this as read-only and non-destructive, and the description adds substantial behavioral context beyond that: data can be 'live' or a dated 'catalog' snapshot, holdings are TOP-N so exposure is a floor, bond/commodity ETFs return no holdings by design, and unknown tickers are surfaced in unknown_tickers. This is rich, accurate, and non-contradictory.

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

Conciseness5/5

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

Four sentences, each carrying distinct value: the use case, the source/data freshness distinction, the TOP-N limitation, and edge-case behavior. The most important information is front-loaded and the description is efficient without being terse.

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

Completeness5/5

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

For a read-only tool with a single parameter and an output schema, the description covers the essential operational details: purpose, data provenance, freshness semantics, coverage limitations, and unknown-ticker behavior. Nothing critical is missing for an agent to invoke and interpret the tool correctly.

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

Parameters4/5

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

The schema already documents the sole parameter (tickers) with examples, so the baseline is 3. The description adds meaningful semantic value by explaining how unknown tickers are handled, that only top-N holdings are returned, and that certain ETF types yield no holdings—all directly relevant to using the parameter correctly.

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

Purpose5/5

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

The description clearly identifies the tool's function: ETF look-through that returns top holdings and weights for concentration checks. It distinguishes itself from the broad set of sibling 'get_' tools by specifically targeting Chapter 2 Mode 2.2 and by explaining why it exists.

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

Usage Guidelines4/5

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

The description gives explicit usage context: this is for the Concentration Check in Chapter 2 Mode 2.2, and explains how the AI should use it to overlay holdings with direct positions. It does not explicitly name alternatives or when-not-to-use, but the context is strong and no sibling tool competes directly.

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

get_event_calendarGet event calendarA
Read-only
Inspect

Scheduled US macro events (FOMC + CPI + NFP + PCE) with dates and consensus. Consensus values are Mako-curated and arrive with provenance (source, source_url, published_at, age_days). An event with no curated consensus carries consensus: null, which means the value is not published rather than zero. Mode 1.2 covers the qualitative-scenario path for events whose consensus is not published. consensus_metrics_expected lists the metric keys a complete consensus would carry for that event type. Market-implied pricing (what_is_priced / CME FedWatch) is a separate quantity and remains deferred. COVERAGE: only fomc, cpi, nfp and pce have dates in this calendar. ecb, boj and boe are accepted for consistency with the consensus vocabulary but carry NO dates, so filtering to them returns an empty list and says so in staleness_flags — that is 'not tracked here', never 'none is scheduled'. Coverage also runs to a fixed last date; a window past it is flagged rather than silently short.

NameRequiredDescriptionDefault
event_typesNoFilter by event types (default: fomc, cpi, nfp, pce). Only those four carry dates; ecb/boj/boe return empty with a staleness flag.
lookahead_daysNoHow many days forward to look (default 14)

Output Schema

NameRequiredDescription
as_ofNo
eventsNo
data_sourcesNo
terms_glossaryNo
staleness_flagsNo

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds substantial behavioral detail: consensus: null means unpublished rather than zero, results carry provenance fields, unsupported event types return empty lists with a staleness flag rather than silence, and coverage ends at a fixed date with a flag. No contradiction exists.

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?

The description is long but information-dense, with the core purpose front-loaded in the first sentence. Some redundancy with the schema and heavy use of caveats make it less crisp, but each behavioral note earns its place given the tool's edge cases.

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

Completeness5/5

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

With an output schema present, the description covers the non-obvious behavioral context: null consensus semantics, provenance fields, fixed coverage horizon, unsupported event types, and deferred pricing. An agent has enough context to invoke the tool correctly and interpret surprising empty or flagged results.

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 the schema already documents both parameters and defaults. The description reinforces event_types semantics and explains the empty-list behavior, but adds little new meaning for lookahead_days. Baseline 3 is appropriate because the schema carries the parameter documentation burden.

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

Purpose5/5

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

The description states a specific verb and resource: getting scheduled US macro events (FOMC, CPI, NFP, PCE) with dates and consensus. It clearly differentiates the tool through explicit coverage constraints, so an agent understands what this calendar does and does not contain.

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

Usage Guidelines4/5

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

The description does not name sibling alternatives, but it gives clear selection guidance by specifying which event types are tracked and which are accepted-but-empty, and by noting that market-implied pricing is a separate deferred quantity. This tells an agent when to expect meaningful results and when not to use the tool.

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

get_financial_conditionsGet financial conditionsA
Read-only
Inspect

Full financial conditions read, the detail behind the Money and Financial conditions cards of get_dashboard (and the regime's Money row): global liquidity (Fed + ECB + BoJ central-bank balance sheets, FX-converted to USD; PBoC included when a fresh Mako-curated publication is available — basis 'g4' vs 'g3'), the 10-year real yield with its nominal and breakeven legs, HY/IG credit spreads, the dollar index (DXY), VIX. Inside global liquidity: us_net_liquidity (Fed balance sheet minus the Treasury General Account minus overnight reverse repo, with 4- and 12-week changes, its own classification and dated inputs; a supporting read, not part of the regime light) and change_decomposition (for the 4- and 12-week windows, how much of the change in dollars came from the balance sheets themselves and how much from exchange rates, which dominated, and the method). Returns composite + direction + per-pillar classifications + drivers. The scope and scope_note fields tell you whether the read is G4 or G3, and the China sub-component carries Mako-curated provenance (as_of_month, source_url, note). Pass summary_only:true for the lightweight one-line read used in regime composition.

NameRequiredDescriptionDefault
summary_onlyNoIf true, return composite + direction + one-line driver only

Output Schema

NameRequiredDescription
as_ofNo
scopeNo
driversNo
pillarsNo
compositeNo
directionNo
scope_noteNo
data_sourcesNo
terms_glossaryNo
staleness_flagsNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish readOnly/non-destructive, so the description correctly spends its words elsewhere: it discloses that PBoC inclusion depends on a fresh Mako-curated publication (basis 'g4' vs 'g3'), that us_net_liquidity is 'a supporting read, not part of the regime light', and that scope/scope_note carry provenance. This is substantive behavioral context an agent could not get from the structured fields.

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

Conciseness2/5

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

The description is effectively one enormous sentence stitched together with em-dashes and nested parentheses, and much of it (the us_net_liquidity formula, change_decomposition method) describes return-value internals that the existing output schema already covers. It is front-loaded on purpose but far heavier than a single-parameter read tool needs.

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 an output schema present, the description is not obligated to explain return values, yet it goes further and clarifies scope semantics, China provenance, and the summary_only shortcut. Coverage is strong; the only miss is not positioning the tool against overlapping siblings like get_liquidity_history.

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?

There is only one parameter and schema description coverage is 100%, so the schema already documents summary_only's boolean meaning. The description adds only that the lightweight read is 'used in regime composition', which is marginal value over the schema text; baseline 3 is appropriate.

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

Purpose5/5

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

The opening clause names a specific verb and resource ('Full financial conditions read') and immediately anchors it to concrete outputs (the Money/Financial conditions cards of get_dashboard and the regime's Money row). It enumerates the exact pillars returned (global liquidity, real yield, credit spreads, DXY, VIX), which makes it unmistakable against siblings like get_china_liquidity, get_liquidity_history, or get_macro_regime.

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?

The only genuine usage steering is 'Pass summary_only:true for the lightweight one-line read used in regime composition', which tells the agent when to use the flag variant but not when to prefer this tool over siblings such as get_liquidity_history or get_china_liquidity. There is no explicit when-not guidance, so usage is implied rather than stated.

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

get_growth_indicatorsGet growth indicatorsA
Read-only
Inspect

Growth pillar indicators, the detail behind the Business cycle card of get_dashboard (its Growth, Jobs and Investment rows) and the regime's Mood row: industrial production (IPMAN, the ISM proxy), consumer sentiment (U Michigan), the 2s10s yield curve, initial claims, plus the Atlanta Fed GDPNow nowcast of the quarter in progress. growth_vote_inputs holds the three inputs of the business cycle's growth vote, each with its word and dated observation: output (IPMAN three-month change), jobs (initial claims four-week average against twelve weeks earlier) and investment (BEA real private fixed investment in information-processing equipment and software, A679RX1Q020SBEA, year on year, with its quarter), plus the vote's rule; the vote itself is applied in get_macro_regime. GDPNow carries its own reference_quarter, the publication date of the estimate, and the previous estimate of the SAME quarter, so its direction of travel is readable; it is reported, not scored, so it does not move the classification. When no estimate is on file the block reports status: unavailable and says so in staleness_flags — not published, which is not the same as zero. Returns classification (green/yellow/red), the growth pillar's own score, separate from the vote; read_complete is false when a series failed to read.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
as_ofNo
gdpnowNo
data_sourcesNo
read_completeNo
classificationNo
terms_glossaryNo
staleness_flagsNo
ism_manufacturingNo
growth_vote_inputsNo
leading_indicatorsNo
consumer_sentiment_umcsentNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the read-only, closed-world safety profile, and the description adds real value on top: GDPNow 'is reported, not scored, so it does not move the classification', missing estimates report status: unavailable rather than zero, and read_complete goes false when a series fails. These are non-obvious behaviors an agent would otherwise have to guess.

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

Conciseness3/5

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

The purpose is front-loaded, but the body is a dense run-on block stitched together with semicolons and parentheticals that is hard to scan. Most content earns its place, yet the structure obscures more than it needs to for a description this long.

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

Completeness5/5

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

For a no-arg, output-schema-backed tool, the description is unusually complete: it names the blocks returned, the classification score separate from the vote, the staleness_flags behavior for missing estimates, and the read_complete failure signal. Nothing needed to interpret or invoke the tool is missing.

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

Parameters4/5

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

Zero parameters, so the baseline is 4. The description goes further by naming the underlying series codes and derived quantities (four-week average vs twelve weeks earlier, year-on-year A679RX1Q020SBEA), giving context for the returned fields even though no invocation arguments exist.

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

Purpose5/5

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

States a specific verb+resource ('Growth pillar indicators') and immediately locates it in the tool hierarchy as the detail behind get_dashboard's Business cycle card and the regime's Mood row. The constituent series and the growth_vote_inputs block are named, so an agent can distinguish it from get_macro_regime and get_dashboard without opening a schema.

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 is implied through the relationship statements ('applied in get_macro_regime', 'the detail behind the Business cycle card of get_dashboard'), which positions the tool but never says explicitly when to reach for it versus those siblings. No when-not or prerequisite guidance is given.

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

get_indicator_historyGet indicator historyA
Read-only
Inspect

Any card of the Jawz Dashboard (get_dashboard), or one of its rows, over time, each at its own print dates: the weekly reads for the weekly cards, the release dates of the series behind a row for the rest. With no arguments it returns the catalogue: every card and indicator key with its kind, cadence, unit, source and the earliest date it reaches. card alone returns that card's badge (indicator defaults to 'badge'); card plus indicator returns that row. from and to (YYYY-MM-DD) set the window: to defaults to today and from to one year before to; the history reaches back 365 days (store of value starts 84 days later), and a clamped window is echoed as requested_from and effective_from. Every point carries Jawz's word for that date and point_in_time. What Jawz computes (the six badges, the four-bank money total, the dollar effect, US money, the growth vote) also carries the value and its display at every point. Published series that Jawz passes through unchanged (mood, jobs, BEA investment, prices, rates, credit, the dollar, gold, bitcoin, data centres, chips, builders' capex, power) carry Jawz's word per print plus the source (provider, series, link and, for FRED series, the ALFRED vintage link), because the full numbers stay with the publisher. The answer adds the rule in one sentence, transitions (every change of word), runs, and the current word with the date it has held since (for a badge, the card's own held_since). History applies today's rules to what was published by each date (rules: 'today'): method_events lists rule changes in the window that moved the card, and published_differs lists, for the regime and business-cycle badges, the dates where what Jawz published that day differs. The four-bank money rows add the coverage basis, a constant three-bank total and coverage and PBoC-statement events. An unknown card or indicator, a malformed or future date, or a date before the window returns an error naming the valid keys or range. A cold window that runs out of compute time returns the points ready with partial: true and pending_from; the same call again continues from the points already kept. Read-only, no account needed. Information, not investment advice.

NameRequiredDescriptionDefault
toNoWindow end, YYYY-MM-DD. Defaults to today (UTC).
cardNoCard key: regime, money, business_cycle, financial_conditions, store_of_value or investment. Omit card and indicator for the catalogue.
fromNoWindow start, YYYY-MM-DD. Defaults to one year before `to`; clamped to the 365-day window.
indicatorNoIndicator key within the card (the catalogue lists them), or 'badge'. Defaults to 'badge' when a card is given.

Output Schema

NameRequiredDescription
toNo
cardNo
fromNo
kindNo
ruleNo
unitNo
cardsNo
labelNo
rulesNo
statsNo
eventsNo
pointsNo
sourceNo
cadenceNo
partialNo
versionNo
indicatorNo
transitionsNo
pending_fromNo
method_eventsNo
effective_fromNo
requested_fromNo
published_differsNo

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already establish readOnly=true, destructive=false and closed-world, and the description layers on substantial extra behavior: 365-day reach (store of value 84 days later), clamping echoed as requested_from/effective_from, partial:true with pending_from on a cold window plus resumability, and error naming of valid keys. These are exactly the operational traits annotations cannot express.

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

Conciseness3/5

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

The purpose is front-loaded, but the body is a dense run-on wall of text with repeated phrasing ('Jawz's word' three times) and substantial output-shape detail that an existing output schema would already carry. It is informative but not tight; several clauses could be cut or deferred to the output schema.

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

Completeness5/5

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

For a zero-required-parameter, query-style tool with an output schema, this covers everything an agent needs: catalogue mode, parameter defaults and clamping, error conditions, partial-result/resume semantics, and the special handling for computed badges versus passed-through published series. Nothing decision-relevant is missing.

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

Parameters4/5

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

Schema coverage is already 100%, but the description adds genuine meaning beyond the schema: 'to' defaults to today and 'from' to one year prior, the window is clamped to 365 days, and the badge/indicator interaction governs whether a card badge or a specific row is returned. This goes past the baseline 3 by supplying defaulting and clamping semantics the schema only sketches.

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?

The opening clause states a specific verb+resource: any card of the Jawz Dashboard or one of its rows, over time, plus the no-argument catalogue mode. This is far more than a restatement of the name, but it never reconciles itself against closely overlapping siblings such as get_regime_history, get_conditions_history and get_liquidity_history, so an agent cannot tell from the text why it should pick this generic tool versus those per-domain ones.

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

Usage Guidelines4/5

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

The description gives explicit conditional behavior for argument combinations: no args returns the catalogue, card alone returns the badge, card plus indicator returns the row, and it explains that unknown keys or out-of-window/future dates produce an error naming valid keys or range. It stops short of naming alternatives or stating when this tool should be preferred over the domain-specific history siblings.

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

get_inflation_indicatorsGet inflation indicatorsA
Read-only
Inspect

Inflation pillar indicators, the detail behind the Prices row of the Business cycle card of get_dashboard: headline + core CPI, headline + core PCE (YoY and MoM), 5Y/10Y breakevens, wage growth. Returns classification (supportive/neutral/headwind).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
cpiNo
pceNo
as_ofNo
breakevensNo
wage_growthNo
data_sourcesNo
read_completeNo
classificationNo
terms_glossaryNo
staleness_flagsNo

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that it returns a classification (supportive/neutral/headwind), but says nothing about freshness, caching, or failure modes; with an output schema present, partial return detail is expected, so a 3 is appropriate.

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?

One dense sentence that front-loads the resource identity before listing contents and the return classification. Every clause carries content, though the long comma-separated series list makes it slightly harder to scan than a shorter statement would be.

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 no parameters and an output schema present, the description only needs to convey scope and framing, which it does by naming the indicator families and the dashboard location it complements. Minor gaps remain — no cadence/freshness note and no explicit statement that no filtering is possible — but nothing an agent needs to invoke it is missing.

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

Parameters4/5

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

There are zero parameters, so the baseline of 4 applies — there is no parameter semantics to explain or omit. The description correctly spends no effort on arguments and instead characterizes the payload.

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

Purpose5/5

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

States a specific resource (inflation pillar indicators) and enumerates the exact series covered — headline/core CPI, headline/core PCE (YoY/MoM), 5Y/10Y breakevens, wage growth. It also anchors itself against siblings by identifying it as the detail behind the Prices row of get_dashboard, so an agent can distinguish it from get_growth_indicators and get_prices.

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

Usage Guidelines4/5

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

The phrase 'the detail behind the Prices row of the Business cycle card of get_dashboard' tells the agent exactly when this tool is the right drill-down rather than a sibling. There is no explicit when-not or mention of an alternative drill-down tool, so it stops short of a 5.

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

get_liquidity_historyGet liquidity historyA
Read-only
Inspect

Global-liquidity read-history — a timeseries of central-bank liquidity over recent weeks. Returns one row per sample date with the full decomposition (Fed / ECB / BoJ / PBoC in USD trillions), the active basis (g4/g3/us_fallback), the supportive/neutral/draining classification of that week's read, and US net liquidity (us_net_t: Fed balance sheet minus the Treasury General Account minus reverse repo, USD trillions) with its own classification (us_net_class), plus coverage (basis) changes, China-leg publication steps, and classification changes as events. The held money condition, which changes only after two consecutive weekly reads agree, is in get_macro_regime and the Money card of get_dashboard. History companion to get_financial_conditions (Chapter 1 Mode 1.5 Global Liquidity Read). Reading note, enforced by the artifact: when the basis flips g4↔g3 (China PBoC publication freshness), the headline total moves by the ~$7T China component, which is a coverage change rather than a liquidity move. The window trend is therefore computed on constant G3 basis, and every basis flip is listed with an explicit note. A China-leg publication step is a DIFFERENT event and is reported separately: PBoC publishes monthly ~15 days in arrears, so on the day a new statement is recorded the PBoC leg absorbs a whole month of balance-sheet change (plus FX) in one step — real change, but not change that happened on that date, and not the same thing as a coverage flip. The response includes a 'presentation' object whose 'display_markdown' is a pre-formatted table; 'data.rows' and 'summary' carry the same values structured. Rows are provenance-tagged 'observed' (live that day, true vintage) or 'reconstructed' (point-in-time from vintage data — each series as it was published on that date, ~4 months deep). Defaults to the last 12 weeks, weekly. get_indicator_history covers any card or row of get_dashboard over a year, at its own print dates.

NameRequiredDescriptionDefault
intervalNoSample cadence (default weekly)
lookback_weeksNoHow many weeks of history to cover (default 12, clamped 1–52)

Output Schema

NameRequiredDescription
dataNo
toolNo
statusNo
summaryNo
warningsNo
generated_atNo
presentationNo

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare read-only/closed-world, so the description adds substantial behavioral context: the g4↔g3 basis-flip coverage caveat (~$7T China component), the separate China-leg publication step (~15 days in arrears), provenance tagging ('observed' vs 'reconstructed', ~4 months deep), and a 'presentation.display_markdown' object. This is well beyond what the structured fields convey.

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?

The core identity is front-loaded in sentence one, and most of the length carries genuine domain caveats an agent needs. However the passage is dense and somewhat repetitive (the coverage-change-vs-liquidity-move point is restated), so it is not maximally tight.

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

Completeness5/5

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

For a complex, multi-series tool, the definition covers scope, defaults, provenance semantics, event distinctions, and caveats; since an output schema exists, return values need not be spelled out, yet the key shape (rows/summary/presentation) is still noted. Nothing an agent needs to call 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% with both parameters documented in-schema, so the baseline is 3. The description only restates the defaults ('last 12 weeks, weekly') already in the schema and adds no format or edge-case detail for interval or lookback_weeks.

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

Purpose5/5

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

The first sentence states a specific verb+resource+scope: a timeseries of central-bank liquidity over recent weeks, returning one row per sample date with named fields (Fed/ECB/BoJ/PBoC, basis, classification, us_net_t). It explicitly distinguishes itself from siblings, routing the held-money condition to get_macro_regime/get_dashboard and broader coverage to get_indicator_history, and labels itself the history companion to get_financial_conditions.

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

Usage Guidelines4/5

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

It gives clear context (history companion to get_financial_conditions; default last 12 weeks weekly) and names the alternative for other data (get_indicator_history covers any card/row over a year). It stops short of an explicit when-not rule, but the routing between this tool and its siblings is easy to infer.

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

get_loopGet loopA
Read-only
Inspect

Get metadata and chapter manifest for a loop by slug. Returns loop info and the list of chapter nodes with titles — no chapter content. All active loops are navigable by anyone.

NameRequiredDescriptionDefault
loop_slugYesLoop slug (e.g. 'jawz')

Output Schema

NameRequiredDescription
slugNo
titleNo
versionNo
chaptersNo
visibilityNo
author_nameNo
descriptionNo
price_centsNo
pricing_modelNo
terms_glossaryNo
improvement_modelNo
methodology_statementNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false, and the description adds valuable context beyond those: it clarifies the return scope (no chapter content) and access rules ('all active loops are navigable by anyone'). This gives an agent useful behavioral expectations without redundancy.

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

Conciseness5/5

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

Two tight sentences that front-load the main purpose and immediately specify key limitations and access. Every clause adds value; no filler or unnecessary detail.

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

Completeness5/5

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

Given the single required parameter, a rich output schema, and read-only annotations, the description provides everything an agent needs: what it returns, what it excludes, and who can use it. The mention of 'active loops' adds an important boundary condition. No significant gaps.

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?

The schema already documents loop_slug with a clear example ('jawz'), and description coverage is 100%. The description only reinforces that the lookup is 'by slug' without adding new meaning or constraints, so it meets the baseline but does not exceed it.

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

Purpose5/5

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

Description uses specific verb 'Get' and resource 'metadata and chapter manifest for a loop by slug,' clearly stating what the tool returns. It explicitly notes it returns 'loop info and the list of chapter nodes with titles — no chapter content,' which differentiates it from content-returning tools like get_chapter.

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

Usage Guidelines4/5

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

Provides clear context: this tool is for metadata and titles only, not chapter content, and states that 'all active loops are navigable by anyone,' addressing access. It implies the alternative of using a content-focused tool but does not explicitly name one, so it stops short of a 5.

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

get_macro_regimeGet macro regimeA
Read-only
Inspect

The current macro regime (GREEN / YELLOW / RED) and business cycle (SPRING / SUMMER / FALL / WINTER) with the evidence behind them: the detail behind the Regime and Business cycle cards of get_dashboard. The regime combines consumer mood (U Michigan sentiment) with money (the global-liquidity condition), and the money condition changes only after two consecutive weekly reads agree: data.details.liquidity_condition shows this week's raw read, the held class, how many agreeing reads are still needed, and the margin to the line. The business cycle crosses growth with prices. Growth is a vote of factory output (IPMAN trend), jobs (initial claims) and investment (BEA real investment in information-processing equipment and software), two of three deciding, and the season changes only when two prints in a row agree: data.cycle carries the vote, the dated prints and held_since. The response opens with the Jawz Dashboard card: the six-reading card as markdown at the top of presentation.display_markdown (above a horizontal rule), the same object at data.read, and the card as a PNG image content block after the text. Below the card, display_markdown carries the regime write-up and its tables (regime inputs, the growth vote, the growth and inflation composites, asset-class tilts); 'tables' is their structured form and 'data' holds the raw values. A 'provenance' block lists each input with its as-of date and age in days. get_indicator_history gives the regime, the cycle or any of their rows over time.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
dataNo
toolNo
statusNo
tablesNo
pillarsNo
summaryNo
warningsNo
generated_atNo
presentationNo
staleness_flagsNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly), so the bar is lower, and the description far exceeds it: it discloses the hysteresis rules (regime changes only after two consecutive agreeing weekly reads, cycle after two agreeing prints), which fields carry raw reads vs. held state, and the exact response shape including a PNG image block after the text.

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 core answer (what the regime is) before the mechanics. The single dense paragraph is long but each clause carries real information (hysteresis rules, field mappings, presentation layout), with only mild redundancy between the display_markdown/tables/data enumeration.

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

Completeness5/5

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

Output schema exists, yet the description goes further and maps the response layout (card markdown, data.read, PNG content block, below-card write-up and tables, provenance block). Nothing an agent needs to interpret or invoke this zero-arg tool is missing.

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

Parameters4/5

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

Zero parameters, so the baseline is 4. The schema is empty and the description correctly spends no effort on arguments, focusing instead on output semantics.

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

Purpose5/5

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

States a specific verb+resource (get the macro regime) and immediately defines its outputs (GREEN/YELLOW/RED regime, SPRING/SUMMER/FALL/WINTER cycle). It explicitly distinguishes itself from siblings by calling itself the detail behind get_dashboard's Regime/Business cycle cards and by routing time-series questions to get_indicator_history.

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

Usage Guidelines4/5

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

Names the related siblings and their boundary: this tool is the detail behind get_dashboard's cards, while get_indicator_history gives the regime/cycle or their rows over time. It stops short of an explicit 'use this when X, not Y' conditional, but the routing context is clear enough for correct selection.

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

get_pricesGet pricesA
Read-only
Inspect

Live prices for one or more holdings, and the answer shows its work. Resolves raw tickers (stocks, ETFs, crypto, international listings) and returns price, value, and day change per symbol, plus per holding: what it resolved to (asset: type, exchange, ISIN, provider id; asset.isin is filled when you pass an isin hint or the provider profile carries one, and is null otherwise — it is not looked up), how surely (resolution: matched_by isin|qualified_symbol|bare_symbol, candidates, mismatch against the caller's hints), the native quote with its own time (quote), the FX rate actually applied, dated and sourced (fx), and the position value native and in the base currency. Optional per-holding hints — isin (equities/ETFs/funds), exchange, asset_class — narrow resolution; a hint that contradicts the result is reported, not silently overridden. A bare ticker is resolved listing first: when the same symbol is both a US listing and a crypto token that is not a known major coin (HOOD, MSTR, and tokenized-stock proxies such as ALAB, LITE, NBIS), it prices the listing, never the token; the token is priced only when no such listing exists. A known major coin that shares its symbol with a well-known US listing (STX is Stacks and Seagate) stays the coin, with a line warning that names the listing and how to get it (qualify it, or asset_class 'equity'). A bare ticker shared by differently named funds on other venues (DRAM) is priced with a line warning naming the alternatives and their qualified symbols, counted in resolution.candidates. Qualifying as NASDAQ:X / X.US picks the US listing explicitly. Line warnings are in each holding's warning; a summary is in the top-level warnings. base_currency defaults to USD; 'native' returns unconverted quotes.

NameRequiredDescriptionDefault
holdingsYesPortfolio holdings to analyze
base_currencyNoCurrency for price, value and totalValue. Omit for USD (default). 'native' or null: no conversion — each line is stated in its quote currency and fx is null.

Output Schema

NameRequiredDescription
holdingsNo
warningsNo
timestampNo
totalValueNo
base_currencyNo
terms_glossaryNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations declare readOnly/openWorld/non-destructive, yet the description adds substantial behavior beyond them: contradictory hints are reported rather than silently overridden, asset.isin is only filled from a hint or provider profile (never looked up), bare-ticker vs token ambiguity is resolved with explicit rules, and line/top-level warnings are described. This is unusually rich disclosure for a read-only tool.

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?

Purpose is front-loaded and every clause is substantive, but the body is dense and parenthetical-heavy (e.g. the enumerated tokenized-stock proxies), which strains readability for a definition of this length. It earns its space on content but could be tightened structurally.

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

Completeness5/5

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

Even though an output schema exists — which would relieve the description of return-value duty — it still describes the response shape (resolution, quote, fx, per-holding warnings) and closes the resolution-ambiguity cases an agent would otherwise get wrong. Nothing needed to call it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline would be 3, but the description adds cross-cutting semantics the schema does not carry on its own: how hints interact with each other and the result, that base_currency defaults to USD while 'native' returns unconverted quotes, and how a mismatched hint surfaces in resolution.mismatch.

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

Purpose5/5

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

States a specific verb+resource ('Live prices for one or more holdings') and immediately scopes the return: price, value, day change per symbol plus per-holding resolution/quote/FX detail. It is unmistakable against siblings like get_etf_profile or get_macro_regime, none of which price holdings.

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

Usage Guidelines4/5

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

Gives strong conditional guidance on how to invoke it correctly — qualify a ticker as NASDAQ:X / X.US to force a US listing, use asset_class 'equity' to override a same-symbol token, pass isin/exchange hints to narrow resolution. It does not name a sibling alternative or state an exclusion, but no sibling overlaps its function, so the remaining gap is minor.

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

get_regime_historyGet regime historyA
Read-only
Inspect

Macro regime read-history — a timeseries of how the regime and its drivers have moved over recent weeks. Returns one row per sample date (regime color, business-cycle quadrant, growth + inflation class, consumer sentiment, global liquidity, dominant risk, confidence) plus the transitions between them (e.g. SUMMER → FALL). Provides the observed history behind a 'what changed since …' question, rather than a comparison of two separate point reads. Rule changes that moved the published colour or season without the market moving are listed in data.events as method events (kind 'method'), each dated the first day the new rule was live, with what changed and why: for example the money condition waiting for two consecutive weekly reads (2026-09-25) and the growth vote with two prints to change the season (2026-09-30). Observed rows keep what Jawz published that day under the rules then in force. Reading note, enforced by the artifact: the Liquidity column steps for two reasons that are NOT the market, and both are listed as first-class events in summary.liquidity_events — a g4↔g3 coverage flip (the whole PBoC component entering or leaving the sum: not a liquidity move at all), and a China-leg publication step (PBoC publishes monthly ~15d in arrears, so the day a new statement is recorded the column absorbs a whole month of change: real change, wrong date). get_liquidity_history carries a constant-basis G3 series that is immune to both. The response includes a 'presentation' object whose 'display_markdown' is a pre-formatted table; 'data.rows' and 'summary' carry the same values structured. Each row is provenance-tagged: 'observed' (captured live that day — true vintage) or 'reconstructed' (computed point-in-time from vintage data — each series as it was published on that date, so later revisions are excluded; depth-limited). Defaults to the last 12 weeks, weekly. get_indicator_history covers any card or row of get_dashboard over a year, at its own print dates.

NameRequiredDescriptionDefault
intervalNoSample cadence (default weekly)
lookback_weeksNoHow many weeks of history to cover (default 12, clamped 1–52)

Output Schema

NameRequiredDescription
dataNo
toolNo
statusNo
summaryNo
warningsNo
generated_atNo
presentationNo

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly, non-destructive, closed-world), and the description goes well beyond them: provenance tagging of 'observed' vs 'reconstructed' rows with the reconstruction depth limit, method events in data.events, liquidity_events that explain non-market column steps, and the shape of the returned presentation/data/summary objects. This is exactly the extra context annotations cannot carry.

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

Conciseness3/5

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

The scope and return shape are front-loaded, but the body runs long for a 2-parameter tool. Dated illustrative examples (the 2026-09-25 money-condition rule, the 2026-09-30 growth vote) and the extended liquidity digression could be trimmed without losing selection-relevant information.

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

Completeness5/5

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

An output schema exists, so the description is not obligated to explain return values, yet it still maps the response objects and provenance semantics thoroughly. Nothing an agent needs to call this correctly — cadence, lookback, provenance caveats, alternatives — 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 coverage is 100% and the schema already documents both parameters including their defaults and the 1–52 clamp, so the baseline is 3. The description restates the defaults ('last 12 weeks, weekly') but adds no new syntax or constraint beyond what the schema already says.

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

Purpose5/5

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

States a specific verb and resource (a regime read-history timeseries) and enumerates exactly what each row contains (colour, quadrant, growth/inflation class, sentiment, liquidity, risk, confidence) plus transitions. It actively distinguishes itself from the two nearest siblings, get_liquidity_history and get_indicator_history, so an agent can route without opening any schema.

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

Usage Guidelines4/5

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

Gives a clear selection condition — use this for the observed history behind a 'what changed since …' question, not for comparing two point reads — and names get_liquidity_history as the alternative when a constant-basis G3 series is needed. It stops short of a crisp when-not rule (e.g. when to prefer get_macro_regime or get_conditions_history), so a 4 rather than a 5.

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

get_startedGet started with JawzA
Read-only
Inspect

Orientation for a new Jawz connection, and for questions about what Jawz is, what it covers, or how it is used. Returns where to start (start_here: get_dashboard, the Jawz Dashboard, which gives the state of the world in six readings), a description of the Jawz Loop, example opening prompts, a one-line live market read drawn from the current data layer, a note on the plain-English glossary included in Jawz responses, and a link to the full guide.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
live_nowNo
start_hereNo
memory_noteNo
what_this_isNo
audience_noteNo
first_promptsNo
terms_glossaryNo
how_to_go_deeperNo
if_rumo_is_connectedNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds one useful behavioral fact beyond that: the output includes a live market read drawn from the current data layer, signaling dynamic content. It says nothing about auth, limits, or freshness caveats.

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

Conciseness3/5

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

Purpose is front-loaded, which is good, but everything is packed into a single long run-on sentence with a nested parenthetical and six-item return enumeration that is taxing to parse. Content largely earns its place, but the structure could be split for readability.

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 zero parameters, safety annotations, and an output schema already present, the description need only establish purpose and usage, which it does. The detailed list of returned fields duplicates the output schema somewhat rather than adding new information.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. The description correctly implies a no-argument onboarding call and adds no misleading parameter expectations.

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

Purpose5/5

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

States a specific verb and resource (orientation for a new Jawz connection) and enumerates exactly what the tool covers: what Jawz is, what it covers, how it is used. It explicitly distinguishes itself from siblings by naming get_dashboard as the downstream starting point and describing the Jawz Loop as separate content, so an agent can route correctly without opening a schema.

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

Usage Guidelines4/5

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

The description gives a clear trigger condition ('for questions about what Jawz is, what it covers, or how it is used') and points at get_dashboard for the state of the world. It does not state explicit when-not-to-use cases or contrast with get_loop/get_chapter, so it stops short of full alternative routing.

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

get_weekly_data_releasesGet weekly data releasesA
Read-only
Inspect

Past week's data releases with H.4.1 net liquidity update. Anchored to Friday — most current when run Friday morning or later. Each release classifies actual vs consensus where BOTH are on file (both Mako-curated): surprise is hot / modestly hot / in-line / modestly cool / cool on the headline metric, vs_consensus is the same comparison stated neutrally as above/below/in-line, and metrics breaks it down per metric. hot/cool is DIRECTIONAL versus consensus, not a verdict — a hot CPI and a hot payrolls print mean opposite things for the same book. surprise: "n/a" means the comparison could not be made; implication names which half is missing. consensus_provenance.age_days is measured at week_ending, not at call time, so re-asking for an earlier week returns the same age it did the first time.

NameRequiredDescriptionDefault
week_endingNoWeek ending date (YYYY-MM-DD); defaults to last Friday

Output Schema

NameRequiredDescription
as_ofNo
week_endingNo
data_sourcesNo
data_releasesNo
policy_eventsNo
fed_h41_updateNo
terms_glossaryNo
staleness_flagsNo

TDQS

A4.4/5.0
Behavior5/5

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

The description goes well beyond the readOnly and destructive annotations by explaining classification semantics, the difference between surprise and vs_consensus, the directional meaning of hot/cool, the n/a case, and the provenance age measurement behavior. This is exactly the behavioral context an agent needs to interpret results correctly.

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

Conciseness5/5

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

The description is dense but every sentence earns its place by preventing misinterpretation. It front-loads the core resource and timing, then explains output semantics and edge cases without redundancy or filler.

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

Completeness5/5

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

For a single-optional-parameter read-only tool with an output schema, the description is highly complete. It covers timing, absence semantics, field explanations, interpretation pitfalls, and idempotent behavior. Nothing essential for correct invocation or result interpretation appears missing.

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

Parameters4/5

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

Schema coverage is 100%, and the schema already documents week_ending format and default. The description adds meaningful parameter-adjacent semantics: the Friday anchoring, the freshness caveat, and the fact that consensus_provenance.age_days is measured at week_ending rather than call time. This goes beyond the baseline but does not redefine the parameter itself.

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?

The description clearly identifies the resource: past week's data releases with an H.4.1 net liquidity update. It is specific about scope and timing, but it does not explicitly contrast itself with sibling tools such as get_event_calendar or get_data_health, so it stops short of full sibling differentiation.

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

Usage Guidelines4/5

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

It provides clear usage context by stating the tool is anchored to Friday and most current when run Friday morning or later. It also advises that re-asking for an earlier week yields stable age_days values. However, it gives no explicit when-not-to-use guidance or alternative tool routing.

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

get_world_briefGet World BriefA
Read-only
Inspect

Read the Jawz World Brief — the weekly Mako-bylined market read published at jawz.ai/brief. Returns the latest edition by default, or a specific one by slug (YYYY-MM-DD). Every claim in a brief traces to a Jawz tool read from its week. Setting list_only:true returns the available editions without their content.

NameRequiredDescriptionDefault
slugNoEdition to fetch, YYYY-MM-DD. Omit for the latest.
list_onlyNoReturn only the list of available editions (slug, title, regimeLine, takeaway).

Output Schema

NameRequiredDescription
noteNo
slugNo
titleNo
bylineNo
sectionsNo
takeawayNo
latest_urlNo
regimeLineNo
canonical_urlNo
terms_glossaryNo
available_editionsNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds useful behavioral context: default-to-latest behavior, slug format expectations, and list_only returning available editions without content, which goes beyond what the annotations convey.

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

Conciseness5/5

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

The description is three sentences with no filler. It front-loads the core purpose, then efficiently covers default behavior, slug format, provenance of claims, and list_only mode. Every sentence earns its place.

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

Completeness5/5

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

Given this is a simple read-only retrieval tool with zero required parameters, a rich output schema, and clear annotations, the description covers everything needed: what it returns, how to select an edition, and how to list editions. No meaningful gap remains.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds meaningful detail: it specifies the YYYY-MM-DD slug format, confirms omission yields the latest, and explains that list_only excludes content. This enriches the parameter semantics beyond the schema alone.

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

Purpose5/5

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

The description names a specific verb ('Read') and a specific resource ('Jawz World Brief'), immediately distinguishing it from all 21 sibling getters. It also clarifies the default behavior and the key option, leaving no ambiguity about what the tool does.

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

Usage Guidelines4/5

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

The description clearly states when to fetch the latest edition versus a specific slug, and when to use list_only to retrieve editions without content. It does not explicitly name alternatives, but the tool is unique among siblings and the usage context is unambiguous.

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

list_loopsList loopsA
Read-only
Inspect

List all available Jawz loops. Returns loop metadata, access status, and which loop is currently active for this user. Every published loop is free and open. Deprecated loops you are entitled to are included with deprecated: true.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
loopsNo
terms_glossaryNo

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint, so the safety profile is known. The description adds valuable behavioral detail: it returns loop metadata, access status, and the active loop, states that every published loop is free and open, and explains that entitled deprecated loops appear with deprecated: true. This goes beyond the annotations without contradicting them.

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

Conciseness5/5

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

Three concise sentences, each adding distinct information: the primary listing purpose, the return contents, and the deprecated-loop nuance. No filler or redundancy. The key facts are front-loaded.

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

Completeness5/5

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

For a zero-parameter listing tool with an output schema present, the description is complete. It covers the main use case, access semantics, current-active-loop information, and deprecated-loop behavior. Nothing essential is missing.

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

Parameters4/5

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

The tool has zero parameters and the schema is empty, so there is no parameter documentation burden. The baseline for zero parameters is 4, and the description appropriately focuses on the output and behavioral aspects rather than parameter details.

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

Purpose5/5

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

The description clearly states the tool's verb ('List') and resource ('all available Jawz loops'), and specifies the scope: metadata, access status, and the currently active loop for the user. This distinguishes it from the sibling get_loop, which presumably fetches a single loop, by focusing on collection-level listing.

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 implied but not explicit. The description implies this is the tool to call to enumerate available loops and see which is active, but it does not name alternatives or state when to prefer list_loops over get_loop or run_mode. The guidance is sufficient for a zero-parameter read-only listing, but lacks explicit routing.

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

run_chapterRun chapterAInspect

Returns a chapter's published framework text: its modes, the questions each asks, and the output format it describes. The framework is reference material for the assistant to apply as it judges appropriate. Repeat calls return the same chapter content — the text is not regenerated per call. Each call appends one usage-counter row and returns a new invocation_id used for feedback.

NameRequiredDescriptionDefault
nodeYesChapter node
contextNoOptional user context (portfolio details, ticker, question)
loop_slugYesLoop slug

Output Schema

NameRequiredDescription
nodeNo
loop_slugNo
loop_titleNo
author_nameNo
content_noteNo
invocation_idNo
terms_glossaryNo
framework_contentNo

TDQS

A4.1/5.0
Behavior5/5

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

The description discloses important behavioral traits beyond the annotations: repeated calls return identical content rather than regenerating text, each call appends a usage-counter row, and each call returns a new invocation_id for feedback. This is exactly the kind of side-effect and determinism information an agent needs and that annotations do not provide.

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

Conciseness5/5

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

Four sentences, no filler, primary behavior first, side effects after. Every sentence adds useful information and the structure makes the most important details immediately visible.

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?

The description covers what the tool returns, its stable/cached behavior, its side effect, and the invocation_id usage. An output schema is present, so return details do not need to be fully explained. The main gap is that loop_slug and node parameter semantics are left shallow, and no explicit comparison with get_chapter is provided.

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 the baseline is 3. However, the schema descriptions are minimal: 'Loop slug', 'Chapter node', and 'Optional user context' add little real meaning. The tool description also does not explain how loop_slug and node relate to the returned framework text, nor what each node enum value means. It earns the baseline but no more.

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?

The description opens with a specific verb and resource: 'Returns a chapter's published framework text' and lists what that text contains (modes, questions, output format). This is much clearer than the tool title alone. It does not explicitly differentiate itself from the sibling get_chapter, so it loses a point for sibling distinction.

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

Usage Guidelines4/5

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

The description gives clear intended use: the framework text is reference material for the assistant to apply when judging appropriately. This tells an agent why it would call the tool. However, it does not mention when not to use it or compare it with alternatives like get_chapter or run_mode.

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

run_modeRun modeAInspect

Returns the published framework text for one named mode within a chapter, rather than the full chapter. Repeat calls return the same mode content — the text is not regenerated per call. Each call appends one usage-counter row and returns a new invocation_id used for feedback.

NameRequiredDescriptionDefault
nodeYesChapter node
contextNoOptional user context
loop_slugYesLoop slug
mode_slugYesMode slug (e.g. 'equity-screen', 'regime-overlay')

Output Schema

NameRequiredDescription
nodeNo
loop_slugNo
mode_slugNo
loop_titleNo
author_nameNo
content_noteNo
invocation_idNo
terms_glossaryNo
framework_contentNo

TDQS

A4.4/5.0
Behavior5/5

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

The description discloses behaviors beyond the annotations: repeated calls return identical content (not regenerated), each call appends a usage-counter row, and each call returns a new invocation_id for feedback. This is valuable operational context that annotations do not provide.

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

Conciseness5/5

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

Three sentences, each earning its place: one for what is returned, one for idempotent behavior, one for side effects and feedback linkage. No fluff, no repetition of schema content, and the most differentiating information is front-loaded.

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?

The description covers the core behavior, the side effect, and the deterministic nature of the tool. An output schema exists, so return-value details are not required. It could additionally mention prerequisites or explicit alternative conditions, but nothing essential for calling the tool 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 the schema already documents all parameters. The description reinforces the 'mode' concept and the granularity of the call, but it does not add parameter-specific detail beyond what the schema's descriptions and enum already provide. Baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('Returns') and a precise resource: 'published framework text for one named mode within a chapter.' It also distinguishes itself from fetching the full chapter, which separates it from the sibling run_chapter. The purpose is immediately clear and unambiguous.

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

Usage Guidelines4/5

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

The description clearly frames when this tool is appropriate: when a single mode's text is needed rather than the entire chapter. It does not explicitly name sibling alternatives or state when not to use it, but the 'rather than the full chapter' contrast provides solid contextual guidance.

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

score_position_driftScore position driftA
Read-only
Inspect

Score how a single position's regime fit has drifted since entry. Returns regime_at_entry, regime_now, fit_score_at_entry, fit_score_now, drift_score (now - entry), drift_label (improved/stable/deteriorated/review_now), explanation, and review_questions. No buy/sell recommendation — output is observational. Supports Chapter 4 Mode 4.2 (Position Retrospective) for single-name regime-fit review and Mode 4.3 (Thesis Status Sweep) for per-position drift across the book.

NameRequiredDescriptionDefault
symbolYesTicker or instrument (e.g. AAPL, BTC, TLT)
thesisNoOriginal thesis text. Echoed back word-for-word in review questions.
convictionNoUser-supplied conviction 1–10. Drives conviction_gap if a meaningful gap exists vs the regime fit score.
entry_dateYesISO date (YYYY-MM-DD) when the position was opened
asset_classYesAsset class for fit-score lookup, drawn from the holding's actual exposure (Chapter 2 Mode 2.1) rather than from the current regime. A hybrid holding is scored per sleeve and weight-blended. Drives the regime-fit calculation.
symbol_typeNoPrice-API hint. Inferred from asset_class if omitted.

Output Schema

NameRequiredDescription
symbolNo
price_nowNo
as_of_dateNo
entry_dateNo
regime_nowNo
asset_classNo
drift_labelNo
drift_scoreNo
explanationNo
fit_score_nowNo
conviction_gapNo
price_at_entryNo
terms_glossaryNo
regime_at_entryNo
staleness_flagsNo
review_questionsNo
total_return_pctNo
fit_score_at_entryNo
classification_warningsNo

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already mark the tool as read-only, and the description adds meaningful behavioral context beyond that: the output is observational, contains no buy/sell recommendation, and includes drift labels and review questions. This gives an agent an accurate model of what the tool will and will not do, without contradicting the annotations.

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?

The description is three sentences with a front-loaded purpose and no filler. The explicit list of output fields is slightly redundant given the declared output schema, but it is compact and useful enough to justify a high score.

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

Completeness5/5

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

Given read-only annotations, a fully documented schema, and an output schema, the description is complete: it explains what the tool scores, which modes it supports, what type of output to expect, and that it is observational. No critical operational information 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 all six parameters are documented with types, enums, and descriptions. The tool description adds little parameter-level meaning beyond 'single position' and 'since entry', so the baseline of 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?

The description identifies a specific verb and resource: score how a single position's regime fit has drifted since entry, and enumerates the returned fields. It is clear and actionable, but it does not explicitly contrast the tool with sibling get_drift_alerts or get_regime_history, so differentiation relies on name and context rather than an explicit statement.

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

Usage Guidelines4/5

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

The description gives clear context: it supports Chapter 4 Mode 4.2 for single-name retrospective review and Mode 4.3 for per-position drift across the book, and explicitly states that no buy/sell recommendation is made. It lacks explicit exclusions or named alternatives, but the mode references and observational caveat provide enough guidance for an agent to decide when to use it.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedget_data_health1 field changed
      • addedOutput schema / properties / calendar_alert
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "not": {}
        +        },
        +        {
        +          "additionalProperties": true,
        +          "properties": {},
        +          "type": "object"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
  2. 6 tool updates
    • Addedget_dashboard
    • Changedget_growth_indicators2 fields changed
      • addedOutput schema / properties / growth_vote_inputs
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "not": {}
        +        },
        +        {
        +          "additionalProperties": true,
        +          "properties": {},
        +          "type": "object"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / read_complete
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "not": {}
        +        },
        +        {
        +          "type": "boolean"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
    • Addedget_indicator_history
    • Changedget_inflation_indicators1 field changed
      • addedOutput schema / properties / read_complete
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "not": {}
        +        },
        +        {
        +          "type": "boolean"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
    • Changedget_prices1 field changed
      • addedOutput schema / properties / base_currency
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "not": {}
        +        },
        +        {
        +          "type": "string"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
    • Changedget_started1 field changed
      • addedOutput schema / properties / start_here
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "not": {}
        +        },
        +        {
        +          "additionalProperties": true,
        +          "properties": {},
        +          "type": "object"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
  3. 1 tool update
    • Changedget_data_health1 field changed
      • addedOutput schema / properties / ecb_fallback
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "not": {}
        +        },
        +        {
        +          "additionalProperties": true,
        +          "properties": {},
        +          "type": "object"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
  4. 1 tool update
    • Changedget_data_health1 field changed
      • addedOutput schema / properties / vix_fallback
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "not": {}
        +        },
        +        {
        +          "additionalProperties": true,
        +          "properties": {},
        +          "type": "object"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
  5. 1 tool update
    • Changedget_prices4 fields changed
      • addedInput schema / properties / base_currency
        Added value: +{
        +  "description": "Currency for price, value and totalValue. Omit for USD (default). 'native' or null: no conversion — each line is stated in its quote currency and fx is null.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedInput schema / properties / holdings / items / properties / asset_class
        Added value: +{
        +  "description": "Optional. 'equity' | 'etf' | 'fund' force the listed-instrument path; 'crypto' forces the token path. Reported as resolution.mismatch when the result disagrees.",
        +  "enum": [
        +    "equity",
        +    "etf",
        +    "fund",
        +    "crypto",
        +    "commodity",
        +    "other"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / holdings / items / properties / exchange
        Added value: +{
        +  "description": "Optional exchange hint — NASDAQ, NYSE, NYSEARCA, XETRA, OSL, MIL, LSE, PAR, AMS, SWX, HKG, TSX, ASX. Narrows a bare symbol to a venue; a non-US venue prices the local listing.",
        +  "type": "string"
        +}
      • addedInput schema / properties / holdings / items / properties / isin
        Added value: +{
        +  "description": "Optional ISIN (equities, ETFs, funds — crypto has none). When present, resolution goes by ISIN first; the exchange hint picks the listing when the ISIN trades on several.",
        +  "type": "string"
        +}
  6. 22 tool updates
    • Changedget_chapter1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedget_china_liquidity1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedget_conditions_history1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedget_data_health4 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
      • addedOutput schema / properties / china_release_alert
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "not": {}
        +        },
        +        {
        +          "additionalProperties": true,
        +          "properties": {},
        +          "type": "object"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / crons
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "not": {}
        +        },
        +        {
        +          "items": {},
        +          "type": "array"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / umich_release_alert
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "not": {}
        +        },
        +        {
        +          "additionalProperties": true,
        +          "properties": {},
        +          "type": "object"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
    • Changedget_drift_alerts2 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
      • addedOutput schema / properties / terms_glossary
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "not": {}
        +        },
        +        {
        +          "additionalProperties": true,
        +          "properties": {},
        +          "type": "object"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
    • Changedget_etf_profile2 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
      • addedOutput schema / properties / terms_glossary
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "not": {}
        +        },
        +        {
        +          "additionalProperties": true,
        +          "properties": {},
        +          "type": "object"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
    • Changedget_event_calendar1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedget_financial_conditions1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedget_growth_indicators1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedget_inflation_indicators1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedget_liquidity_history1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedget_loop1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedget_macro_regime1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedget_prices2 fields changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
      • addedOutput schema / properties / terms_glossary
        Added value: +{
        +  "anyOf": [
        +    {
        +      "anyOf": [
        +        {
        +          "not": {}
        +        },
        +        {
        +          "additionalProperties": true,
        +          "properties": {},
        +          "type": "object"
        +        }
        +      ]
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
    • Changedget_regime_history1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedget_started1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedget_weekly_data_releases1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedget_world_brief1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedlist_loops1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedrun_chapter1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedrun_mode1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
    • Changedscore_position_drift1 field changed
      • changedOutput schema / additionalProperties
        Previous value: -falseNew value: +true
  7. 22 tool updates
    • First observedget_chapter
    • First observedget_china_liquidity
    • First observedget_conditions_history
    • First observedget_data_health
    • First observedget_drift_alerts
    • First observedget_etf_profile
    • First observedget_event_calendar
    • First observedget_financial_conditions
    • First observedget_growth_indicators
    • First observedget_inflation_indicators
    • First observedget_liquidity_history
    • First observedget_loop
    • First observedget_macro_regime
    • First observedget_prices
    • First observedget_regime_history
    • First observedget_started
    • First observedget_weekly_data_releases
    • First observedget_world_brief
    • First observedlist_loops
    • First observedrun_chapter
    • First observedrun_mode
    • First observedscore_position_drift

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Financial intelligence for AI agents. 31 tools across 8 data sources — regime, derivatives, stablecoin flows, momentum, volatility, macro, DeFi, weather patterns, political cycles, seasonality. The context layer between your agent and a bad trade.
    31
    29 npm
    9
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Recession probability, capital rotation, macro cascade analysis, and real-time economic data for Claude, ChatGPT, Cursor, and any MCP client.
    23
    54 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides AI agents with real-time financial market intelligence including regime detection, adaptive signals, macro context chains, and cross-market analysis for crypto, US, and Korean stocks.
    34 PyPI
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources