Skip to main content
Glama

Server Details

FRED macro data, Treasury yields, FX rates & macro indicators for AI agents. Pay-per-query via x402.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
zev-lll/lastlook-data
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.3/5 across 22 of 24 tools scored. Lowest: 3.6/5.

Server CoherenceA
Disambiguation3/5

The tool set has several overlapping functions, particularly among the bundle tools (e.g., get_bundle_context_brief vs get_bundle_macro both provide macro indicators, and get_bundle_rate_environment overlaps with get_yield_curve and get_policy_spread). Individual current/history/date tools are distinct but some redundancy exists (e.g., get_treasury_yield_current vs get_current_value for DGS30). Descriptions help differentiate purposes, but agents may still hesitate when selecting between similar bundles.

Naming Consistency4/5

All tool names begin with the verb 'get_' and use snake_case, creating a consistent pattern. The bundle tools are uniformly prefixed with 'get_bundle_', and individual data tools follow a get_[entity]_[modifier] structure (e.g., get_fx_rate_current, get_fx_rate_by_date, get_fx_rate_series). Minor deviations exist (e.g., get_series, get_current_value, get_value_by_date are less descriptive of the underlying entity), but overall the naming is predictable and readable.

Tool Count3/5

With 24 tools, the server is on the heavy side of the typical range. The broad domain (macro data, mortgage, crypto, FX, treasury, EDGAR) justifies many tools, but some could potentially be consolidated (e.g., individual rate tools vs rate bundles). The count does not feel overwhelming, but it is borderline heavy.

Completeness4/5

The server covers a wide range of economic and financial data with both bundled and granular views. It includes current, historical, and date-specific retrievals for FRED series, FX, and crypto, plus specialized tools for mortgages, recession, and yield curves. Minor gaps exist, such as no way to list all supported FRED series or full financial statements for EDGAR, but the core lifecycle of data querying is well covered.

Available Tools

24 tools
get_bundle_context_briefGet Economic Context Brief BundleA
Read-onlyIdempotent
Inspect

Returns a pre-formatted natural-language paragraph summarizing 15+ economic indicators — rates, inflation, employment, mortgage market, energy prices, and FX. The "brief" field is ready to inject directly into an LLM prompt as economic context. Also returns structured series, FX, derived, and signals fields.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
fxYesCurrent FX rates included in the brief
as_ofYesDate of the most recent underlying data
briefYesPre-formatted natural-language economic context paragraph
bundleYesBundle identifier
seriesYesCurrent values for all FRED series in the brief
derivedYesComputed fields (spreads, Sahm Rule, etc.)
signalsYesCurve shape and recession signals
Behavior4/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description goes beyond this by disclosing the output format (a natural-language paragraph plus structured series, FX, derived, and signals fields), which informs the agent about the tool's rich return structure. No contradiction with annotations exists.

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 compact—two sentences—with the primary function front-loaded in the first sentence. The second sentence adds the key use case (LLM injection). Every clause earns its place; there is no fluff or repetition of schema/annotation content.

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 parameterless tool with a rich output schema, the description fully covers what the agent needs to know: what the tool returns (natural-language brief plus structured fields) and why it's useful. The indicator categories are sufficiently enumerated, and the output schema handles the detailed return fields. No important contextual 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?

The tool has zero parameters and the schema is empty (100% coverage), so the description does not need to explain parameter behavior. Per the baseline for 0-parameter tools, a 4 is appropriate since no additional parameter semantics are required.

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 function with a specific verb ('Returns') and resource ('a pre-formatted natural-language paragraph summarizing 15+ economic indicators'). It distinguishes itself from sibling bundles by naming the indicator categories (rates, inflation, employment, mortgage market, energy, FX) and explicitly framing it as an 'economic context brief' ready for LLM prompts.

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 provides a clear usage context: the returned brief is 'ready to inject directly into an LLM prompt as economic context.' This tells the agent exactly when this tool is valuable. However, it does not explicitly contrast it with sibling analysis bundles (e.g., get_bundle_macro) or state when NOT to use it, so it falls 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_bundle_cryptoGet Crypto Top 20 BundleA
Read-onlyIdempotent
Inspect

Returns the top 20 cryptocurrencies by market cap in one call: price, 24h change, 7d change, market cap, and volume. Covers BTC, ETH, SOL, BNB, XRP, USDT, USDC, ADA, AVAX, DOGE, and more. Use this instead of individual get_crypto_price calls when you need broad market coverage. Source: CoinGecko. Priced at $0.50 USDC via x402 on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofYesISO timestamp of the data fetch
coinsYesTop 20 coins by market cap
countYesNumber of coins returned
bundleYesBundle identifier: crypto
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds valuable context: the call is a single bundled request, sourced from CoinGecko, and costs $0.50 USDC via x402 on Base, which are important operational details not present in 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 efficient and front-loaded with the primary action. It includes an explicit usage pointer and source/pricing details in a compact form. However, it could be slightly more concise by merging the source and price sentences, but it remains readable.

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 output schema exists and annotations cover safety, the description provides all necessary selection context: what data it returns, when to use it, the data source, and cost. The sibling tools are different domains, and the description names the specific alternative (get_crypto_price), making the choice clear.

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, so the schema already fully covers inputs (schema coverage 100%). The description adds meaning by describing what data will be returned (price, 24h/7d change, market cap, volume) and the coin list, which is useful given no parameters.

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 starts with 'Returns the top 20 cryptocurrencies by market cap in one call' which names a specific verb, resource, and scope. It also lists the exact data fields (price, 24h change, 7d change, market cap, volume) which distinguishes it from sibling tools like get_crypto_price and other bundles.

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 says 'Use this instead of individual get_crypto_price calls when you need broad market coverage.' This provides a clear when-to-use and names the alternative, making it easy for an agent to choose this tool over get_crypto_price.

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

get_bundle_energyGet Energy & Commodities BundleA
Read-onlyIdempotent
Inspect

Returns current energy commodity prices in one call: WTI crude oil (DCOILWTICO), Brent crude (DCOILBRENTEU), US regular gasoline (GASREGCOVW), and Henry Hub natural gas (DHHNGSP). Includes the WTI-Brent spread and a market signal. Source: FRED.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofYesDate of the most recent underlying data
bundleYesBundle identifier
seriesYesCurrent values for each energy series
derivedYesWTI-Brent spread
signalsYesWTI-Brent market signal
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds valuable context beyond annotations: the data source (FRED) and the specific series (DCOILWTICO, DCOILBRENTEU, etc.), plus the inclusion of a spread and market signal. This enhances understanding of the tool's behavior 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.

Conciseness5/5

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

Two succinct sentences: the first states the action and lists the exact commodities, the second adds the spread, signal, and source. No fluff, important details front-loaded, every clause 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?

For a zero-parameter read-only tool with an output schema present, the description fully covers what the tool does, what it returns (specific series, spread, signal), and the data source. It is complete without needing to explain output schema details, which are already structured.

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 input schema has zero parameters, so the baseline is 4 per the rubric. The description naturally needs no parameter explanations; it correctly focuses on the return payload and source.

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 states it 'Returns current energy commodity prices in one call' and explicitly lists the four included commodities, clearly distinguishing it from sibling bundles like get_bundle_crypto or get_bundle_fx_dashboard. The verb 'Returns' is specific to the resource and the scope is 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 indicates when to use this tool: when you need current energy/commodity prices in a single call. It doesn't explicitly contrast with alternative bundle tools, but the sibling names (e.g., get_bundle_crypto) and the clear commodity focus imply the appropriate context. No exclusionary guidance is provided, which would warrant a 5.

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

get_bundle_fx_dashboardGet G10 FX Dashboard BundleA
Read-onlyIdempotent
Inspect

Returns all 9 G10 FX spot rates in one call: EURUSD, GBPUSD, USDJPY, USDCHF, USDCAD, AUDUSD, NZDUSD, USDSEK, USDNOK. Also includes a USD strength index (average % change vs G10 basket over 30 days) and a USD trend signal. Source: European Central Bank via Frankfurter.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofYesDate of the FX rates
bundleYesBundle identifier
seriesYesAll 9 G10 FX spot rates
derivedYesUSD strength index vs G10 basket
signalsYesUSD trend over 30 days
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive. The description adds useful context beyond annotations: the data source (ECB via Frankfurter), the composition of the response, and the 30-day lookback for the strength index. No contradictions with 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?

Two concise, information-dense sentences. The first sentence enumerates the exact delivered content, and the second gives the source. Every sentence earns its place with no waste.

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 zero parameters, strong annotations, and an output schema present, the description sufficiently specifies the tool's purpose, contents, and source. It enables an agent to select and invoke the tool without ambiguity.

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, so there are no parameter semantics to explain. Baseline 4 applies as the description correctly doesn't imply any inputs.

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 returns all 9 G10 FX spot rates in one call, listing the exact currency pairs and also including a USD strength index and trend signal. This specific verb+resource scope distinguishes it from single-rate sibling tools like get_fx_rate_current.

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 provides clear context as a comprehensive G10 FX bundle, implying it should be used when an all-in-one dashboard is needed. It doesn't explicitly name alternatives, but the 'bundle' positioning and list of all major pairs communicates the use case adequately.

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

get_bundle_macroGet Macro Health Snapshot BundleA
Read-onlyIdempotent
Inspect

Returns a macro health snapshot: GDP, unemployment rate (UNRATE), CPI and core CPI, Fed funds rate, yield curve 2s10s spread, and Sahm Rule recession indicator. Includes a cycle phase signal (expansion/late cycle/peak/contraction). Use this for macroeconomic context or recession risk assessment.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofYesDate of the most recent underlying data
bundleYesBundle identifier
seriesYesCurrent values for each macro series
derivedYesSahm Rule value and yield curve spread
signalsYesCycle phase and recession triggered flag
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is clear. The description adds that the tool bundles multiple indicators and includes a derived 'cycle phase signal,' which is useful behavioral insight beyond the annotations. It does not mention rate limits or data quirks, but those are less critical for a read-only snapshot.

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 sentences efficiently convey what the tool returns and when to use it. It front-loads the core purpose and avoids filler; every clause contributes meaningful 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?

With a full output schema available, the description doesn't need to detail return shapes. It provides the essential context: what indicators are included and why to use it (macro context/recession risk). This is complete for a simple, read-only, no-parameter 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 has zero parameters, so no parameter documentation is needed; the schema already covers everything. The description's list of returned data adds context but not parameter semantics, so the baseline 4 for zero param 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 uses a specific verb ('Returns') with a clear resource ('macro health snapshot') and enumerates the exact metrics included (GDP, unemployment, CPI, Fed funds rate, yield curve spread, Sahm Rule). This distinguishes it from sibling bundle tools by making its exact scope explicit.

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 states a clear intended use: 'Use this for macroeconomic context or recession risk assessment.' It does not explicitly mention when not to use it or name alternatives like get_bundle_rate_environment or get_recession_indicator, so it misses the full 'when/when-not/alternatives' bar, but the context is unambiguous.

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

get_bundle_mortgage_pulseGet Mortgage Market Pulse BundleA
Read-onlyIdempotent
Inspect

Returns a complete mortgage market snapshot: 30yr and 15yr mortgage rates, 10Y Treasury yield, Fed funds rate, median home price (MSPUS), housing starts (HOUST), MBS spread (30yr mortgage minus 10Y), and 30-day rate trend signal. Use this for mortgage market analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofYesDate of the most recent underlying data
bundleYesBundle identifier
seriesYesCurrent values for each series
derivedYesMBS spread and related computed fields
signalsYesRate trend signal
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, fully covering the safety profile. The description adds the bundled field list and the derived 30-day rate trend signal, which is useful output context, but it does not disclose operational details such as data freshness, units, or data source behavior beyond the series codes.

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 exactly two sentences: the first front-loads the action and lists all key data points compactly, and the second gives a single clear use case. No wasted or redundant words.

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-parameter, read-only bundle tool with a rich output schema and strong annotations, the description fully covers what the tool returns and when to use it. Including specific FRED series codes (MSPUS, HOUST) adds precision. With an output schema present, return-value details are not required.

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 input schema is an empty object with 0 parameters, and schema description coverage is 100% vacuously. Per the rubric, 0 params yields a baseline score of 4. The description doesn't need to add parameter information, and it doesn't.

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 starts with 'Returns a complete mortgage market snapshot' and then enumerates the specific metrics included (30yr/15yr rates, 10Y Treasury, Fed funds, MSPUS, HOUST, MBS spread, trend signal). This clearly defines the tool's purpose and distinguishes it from sibling bundle tools like get_bundle_crypto or get_bundle_energy.

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 ends with 'Use this for mortgage market analysis,' providing a clear context for when to use it. It doesn't explicitly mention alternatives or when not to use it, but the mortgage-specific scope and the list of other bundle tools in the sibling context imply differentiation.

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

get_bundle_purchase_marketGet Home Purchase Market BundleA
Read-onlyIdempotent
Inspect

Returns a home purchase market bundle: current 30yr mortgage rate, median US home sale price (MSPUS), estimated monthly P&I payment on the median home assuming 20% down, annual income required to qualify at 28% DTI, affordability level signal, and housing starts. Directly answers "can my client afford a home today?" Priced at $0.60 USDC via x402 on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofYesDate of the most recent underlying data
bundleYesBundle identifier: purchase_market
seriesYesMORTGAGE30US, MSPUS, HOUST, FEDFUNDS
derivedYesloan_amount, monthly_payment_estimate, income_required_28pct, home_price_change_qoq
signalsYesaffordability_level (elevated/moderate/accessible), market_activity (strong/moderate/subdued)
Behavior4/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds valuable context beyond annotations by specifying the exact contents, underlying assumptions (20% down, 28% DTI), and pricing via x402. It does not disclose potential data freshness limitations, but for a read-only bundle this is sufficient.

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 exceptionally concise: two sentences that deliver the core information (contents and purpose) upfront, followed by practical pricing. Every word adds value, and there is no redundant or filler content.

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 tool has no parameters, a known output schema, and strongly annotated read-only/idempotent behavior, the description fully covers the necessary context. It lists all data elements, states the use case, and notes the payment mechanism, leaving no significant gaps for an agent to select and invoke the 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 has zero parameters, so the baseline is 4. The description correctly focuses on what the bundle contains rather than parameter explanations, which are unnecessary. There is no additional parameter semantics needed beyond the schema, which already has 100% coverage.

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 uses a specific verb 'Returns' and clearly identifies the resource as a 'home purchase market bundle' with a detailed list of components (30yr mortgage rate, median home price, P&I payment, income required, affordability signal, housing starts). It also states the direct use case ('can my client afford a home today?'), distinguishing it from other bundle tools focused on different markets.

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 provides clear contextual guidance with the statement 'Directly answers "can my client afford a home today?"' implying when to use this tool. However, it does not explicitly name sibling alternatives or state when not to use it, so it falls short of a 5 but is still well above average.

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

get_bundle_rate_environmentGet Rate Environment Snapshot BundleA
Read-onlyIdempotent
Inspect

Returns a complete rate environment snapshot in one call: FEDFUNDS, SOFR, DGS2, DGS5, DGS10, DGS30, plus computed yield curve spreads (2s10s and 3m10y), Fed policy spread (EFFR vs IORB), and curve shape signal. Use this instead of multiple individual calls when you need the full rate picture.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofYesDate of the most recent underlying data
bundleYesBundle identifier
seriesYesCurrent values for each rate series
derivedYesComputed spread and policy fields
signalsYesCurve shape and policy stance signals
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds behavioral context by revealing computed outputs (e.g., curves, signals) beyond raw data, indicating that the tool performs calculations and returns a synthesized snapshot. While it doesn't clarify rate limits or output format, the description supplements annotations with valuable behavioral nuance.

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 two sentences: the first compactly lists the full inventory of returns, the second offers tactical guidance. Every word earns its place, and the key information is 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?

Given the presence of a rich output schema (acknowledged in signals) and comprehensive annotations, the description is fully adequate for an agent to select this tool. It explains the tool's scope, contents, and use case, making it a complete reference for decision-making.

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?

With zero parameters and 100% schema coverage (trivially empty), the baseline is 4 per the rubric. The description adds no parameter semantics because there are none to explain; it appropriately focuses on the tool's broad return scope.

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 uses a specific verb 'Returns a complete rate environment snapshot' and explicitly enumerates all included series and computed metrics (FEDFUNDS, SOFR, DGS2, DGS5, DGS10, DGS30, yield curve spreads, Fed policy spread, curve shape signal). This distinguishes it clearly from sibling tools like get_treasury_yield_current or get_policy_spread by establishing the full-picture scope.

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 explicitly states when to use the tool: 'as the full rate picture' and recommends it instead of multiple individual calls. This provides clear contextual guidance, though it does not name specific sibling tools as alternatives or state exclusion criteria (e.g., when only a single series is needed).

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

get_bundle_refi_signalGet Refinance Signal BundleA
Read-onlyIdempotent
Inspect

Returns a refinance signal bundle: current 30yr and 15yr mortgage rates, 52-week high/low range, MBS spread over 10Y Treasury, 30-day and 90-day rate trend, and a refi break-even threshold. The refi_breakeven_threshold field directly answers "what rate does a borrower need to have to benefit from refinancing today?" Priced at $0.60 USDC via x402 on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofYesDate of the most recent underlying data
bundleYesBundle identifier: refi_signal
seriesYesMORTGAGE30US, MORTGAGE15US, DGS10, FEDFUNDS
derivedYesmbs_spread, week52_high, week52_low, week52_position_pct, refi_breakeven_threshold
signalsYesrate_trend_30d, rate_trend_90d, rate_vs_52wk, refi_environment
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description doesn't repeat those. It adds the pricing detail ($0.60 USDC via x402 on Base) and clarifies the meaning of the breakeven field, which is beyond the annotations and useful for an agent considering invocation.

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, front-loaded with the core result, lists contents efficiently, explains one key field, and provides pricing. No wasted words.

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 return values are already structured. The description adds field meaning and pricing, making it complete for a no-parameter tool with a good annotation set.

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 accepts zero parameters, so the description carries no parameter burden. Baseline of 4 applies; the description doesn't need to explain inputs.

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 states it returns a refinance signal bundle and enumerates its components (mortgage rates, 52-week range, MBS spread, trends, breakeven threshold). While it doesn't explicitly contrast with sibling bundles, the name and listing of specific refi data make the purpose 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 implies use for refinancing decisions, especially by explaining that the breakeven threshold directly answers what rate a borrower needs to benefit. It doesn't provide exclusions or alternatives, but the context is clear.

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

get_crypto_historyGet Crypto Historical PricesA
Read-onlyIdempotent
Inspect

Returns historical daily closing prices for any supported cryptocurrency over 30, 90, or 365 days. Use for trend analysis, drawdown calculation, or training data. Source: CoinGecko. Priced at $0.15 USDC via x402.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCrypto symbol e.g. BTC, ETH, SOL
daysYesHistory window: 30 ($0.15), 90 ($0.15), or 365 ($0.15) days

Output Schema

ParametersJSON Schema
NameRequiredDescription
endYesEnd date (YYYY-MM-DD)
daysYesNumber of days requested
nameYesFull coin name
countYesNumber of data points returned
startYesStart date (YYYY-MM-DD)
symbolYesCrypto symbol
observationsYesDaily price observations
Behavior5/5

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

The description discloses the data source (CoinGecko), the exact time windows (30/90/365), and the cost ($0.15 USDC via x402), all of which go beyond the readOnlyHint, openWorldHint, and idempotentHint annotations. No contradiction with 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, front-loaded sentences: the first states the core function, the second gives use cases, and the third provides source and pricing. Every sentence earns its place with no redundancy or fluff.

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?

The tool is simple (2 params, enums, output schema exists) and annotations cover safety. The description adds essential missing context: source, cost, and use cases. It fully equips an agent to invoke the tool correctly.

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 enums and descriptions for both coin and days. The description mentions the days windows but does not add extra semantics beyond what the schema already provides. Baseline of 3 is appropriate when the schema does the heavy lifting.

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 returns historical daily closing prices for supported cryptocurrencies over 30, 90, or 365 days. The verb 'Returns' plus the resource 'historical daily closing prices' makes the purpose unambiguous and distinguishes it from siblings like get_crypto_price.

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 explicitly says 'Use for trend analysis, drawdown calculation, or training data,' which provides clear when-to-use guidance. It does not name alternative tools or state when not to use it, but the use cases are sufficient for an agent to select it appropriately.

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

get_crypto_priceGet Current Crypto PriceA
Read-onlyIdempotent
Inspect

Returns the current USD price, 24h % change, market cap, and 24h volume for any supported cryptocurrency. Supported: BTC, ETH, SOL, BNB, XRP, USDT, USDC, ADA, AVAX, DOGE, DOT, MATIC, LINK, LTC, ATOM, UNI, SUI, APT, NEAR, PEPE. Source: CoinGecko. Priced at $0.02 USDC via x402 on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
coinYesCrypto symbol e.g. BTC, ETH, SOL, DOGE

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYesFull name
as_ofYesISO timestamp of the data fetch
symbolYesCrypto symbol
price_usdYesCurrent price in USD
change_24h_pctYes24-hour price change %
market_cap_usdYesMarket cap in USD
volume_24h_usdYes24-hour trading volume in USD
Behavior4/5

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

Annotations already carry the read-only, idempotent, non-destructive hints. The description adds valuable context beyond that: the data source (CoinGecko) and the monetization/pricing model ($0.02 USDC via x402 on Base). This gives the agent useful operational knowledge not present in 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.

Conciseness5/5

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

The description is compact and front-loaded with the core purpose. The supported coin list is necessary for the agent to know valid inputs, and the source and pricing info are each one short clause. Every sentence earns its place with no filler or redundancy.

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 combination of an output schema (not shown but present) and the annotations already covers return structure and safety. The description fills in the supported universe, data source, and cost model. It could hint at whether prices are live or delayed, but for a simple lookup tool this is adequately complete.

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 fully describes the parameter: the enum lists every supported coin, and the schema-level description gives examples. The main description repeats the supported list verbatim, adding no extra meaning. According to the baseline rule for high schema coverage, a 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 opens with a specific verb ('Returns') and clearly names the resource ('current USD price') along with the exact data fields (price, 24h % change, market cap, 24h volume). The word 'current' distinguishes it from get_crypto_history, and the supported coin list further disambiguates the scope.

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 establishes clear context (current price for a fixed set of supported cryptocurrencies) and implicitly signals this is for current data, not historical. It does not explicitly name alternatives or exclusions such as 'use get_crypto_history for historical data,' 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_current_valueGet Current FRED Series ValueA
Read-onlyIdempotent
Inspect

Returns only the single most recent value for any supported FRED series. Cheaper than get_series ($0.01 vs $0.05). Use this when you need just the latest reading — e.g. current CPI, unemployment rate, mortgage rate. Use get_series instead when you need historical observations.

ParametersJSON Schema
NameRequiredDescriptionDefault
series_idYesFRED series ID e.g. CPIAUCSL, UNRATE, MORTGAGE30US, DGS10, DCOILWTICO, SAHMREALTIME

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateYesDate of the observation (YYYY-MM-DD)
labelYesHuman-readable series name
valueYesMost recent observed value
series_idYesFRED series identifier
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds valuable behavioral context beyond annotations: it returns only the most recent value (not a time series) and is cheaper than get_series ($0.01 vs $0.05). This provides practical operational detail without contradicting 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?

The description is concise and front-loaded. The first sentence states the core function, and the remaining sentences provide cost, usage context, and alternative tool guidance. Every sentence earns its place with no fluff or redundancy.

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 tool's simplicity (one parameter, output schema present) and strong annotations, the description fully covers the needed context: what it returns, when to use it, when not to, and the cost trade-off. The alternative tool is named, and the output schema obviates the need to describe return structure.

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%: the series_id parameter has a description and an enum list of valid FRED series IDs. The description does not add further semantic details about the parameter, only mentions 'any supported FRED series,' which is already implied by the schema. Since the schema carries the burden, the baseline of 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 clearly states the tool's function with a specific verb+resource: 'Returns only the single most recent value for any supported FRED series.' It explicitly distinguishes from siblings by mentioning 'single most recent value' and naming the alternative get_series for historical data.

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?

The description provides explicit usage guidance: 'Use this when you need just the latest reading — e.g. current CPI, unemployment rate, mortgage rate' and 'Use get_series instead when you need historical observations.' It also includes the cost advantage, making the when-to-use decision even clearer.

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

get_economic_calendarGet Economic CalendarA
Read-onlyIdempotent
Inspect

Returns upcoming FRED economic data release dates — CPI, jobs report, GDP, Treasury rates, and more. Use this to find out when the next major economic data will be published.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysYesLookahead window in days: 30, 60, or 90

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYesNumber of scheduled releases
releasesYesScheduled FRED economic data releases
calendar_endYesEnd date of the calendar window
calendar_startYesStart date of the calendar window
Behavior3/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds the FRED source and example indicators, but no deeper behavioral traits such as coverage limitations or response details. With annotations handling the core safety, this is adequate but not rich.

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 concise sentences, front-loaded with the main action, and no filler. Every word contributes meaning.

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 simple read-only tool with one well-documented parameter, an output schema, and comprehensive annotations, the description fully covers what the tool does and when to use it. No critical 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?

Schema coverage is 100% for the single 'days' parameter, with an enum and description. The tool description does not add any meaning beyond the schema, 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?

The description states a specific verb ('Returns') and resource ('upcoming FRED economic data release dates'), with concrete examples (CPI, jobs report, GDP, Treasury rates). It clearly distinguishes itself from sibling tools focused on current values or series data.

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 an explicit use case: 'Use this to find out when the next major economic data will be published.' However, it does not mention alternatives or when not to use it, 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_edgar_companyGet Company Fundamentals (SEC EDGAR)A
Read-onlyIdempotent
Inspect

Returns financial fundamentals for any US public company from SEC EDGAR XBRL filings: revenue, net income, total assets, stockholders equity, and EPS. Includes both annual (10-K) and quarterly (10-Q) data for the most recent periods. Works for any ticker listed on a US exchange (AAPL, MSFT, TSLA, AMZN, NVDA, GOOGL, META, JPM, BAC, etc.). Source: SEC EDGAR. Priced at $0.75 USDC via x402 on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
tickerYesStock ticker symbol e.g. AAPL, MSFT, TSLA, AMZN, NVDA, GOOGL

Output Schema

ParametersJSON Schema
NameRequiredDescription
cikYesSEC Central Index Key
as_ofYesDate the data was fetched
tickerYesTicker symbol
edgar_urlYesEDGAR filing browser URL for this company
company_nameYesCompany legal name
fundamentalsYesFinancial data: revenue, net_income, total_assets, stockholders_equity, eps_basic
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context beyond these annotations, including that it covers annual (10-K) and quarterly (10-Q) data, the source is SEC EDGAR, and it is priced at $0.75 USDC via x402 on Base. No contradiction with 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 slightly longer than minimal but every sentence earns its place: it provides the main purpose, the specific metrics, the data frequency, the scope with examples, the source, and the pricing. It is front-loaded with the primary function and maintains a logical flow.

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 tool is simple (single parameter) and an output schema exists (so return structure is defined), the description covers all essential aspects: purpose, scope, data types, frequency, source, and cost. It is complete for an agent to select and invoke 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 describes the ticker parameter with examples at 100% coverage, giving a baseline of 3. The description adds meaning by clarifying that the ticker must be listed on a US exchange and by expanding the example list, which helps the agent understand the accepted input scope beyond the schema's brief description.

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 'Returns financial fundamentals for any US public company from SEC EDGAR XBRL filings' and lists the specific metrics (revenue, net income, etc.), distinguishing it from sibling tools that focus on macro, crypto, or FX bundles. The verb 'Returns' is specific and the resource is well-defined.

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 provides clear context for when to use the tool: for any US public company ticker, with examples like AAPL, MSFT, TSLA. However, it does not explicitly mention when not to use it or recommend alternative tools among the siblings, so it earns 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_fx_rate_by_dateGet G10 FX Rate by DateA
Read-onlyIdempotent
Inspect

Returns the exchange rate for a G10 currency pair on a specific date. Source: European Central Bank. Use YYYY-MM-DD format.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate in YYYY-MM-DD format e.g. 2026-01-15
pairYesG10 currency pair e.g. EURUSD, USDJPY

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateYesDate of the rate (YYYY-MM-DD)
pairYesCurrency pair identifier
rateYesExchange rate on the requested date
labelYesHuman-readable pair name
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds only the ECB source and date format requirement, which are useful but not rich behavioral disclosures. It does not contradict any 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?

Two short, focused sentences. The first states the core function; the second gives the date format. No 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?

The tool is simple, annotations cover safety, an output schema exists, and parameters are fully described. The description supplies purpose, source, and format, which is complete for this context.

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% with detailed descriptions for both 'date' and 'pair', including a pattern and enum. The description reinforces the date format but adds no meaningful parameter semantics beyond what the schema already provides, 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?

The description clearly states the tool 'Returns the exchange rate for a G10 currency pair on a specific date,' using a specific verb and resource. It distinguishes from sibling tools like get_fx_rate_current and get_fx_rate_series by emphasizing the specific date, and adds the data source (ECB).

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 explicitly specifies the date-specific use case and instructs 'Use YYYY-MM-DD format,' which is direct guidance. It does not name alternative tools like get_fx_rate_current or get_fx_rate_series, but the qualifier 'on a specific date' clearly implies the intended context.

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

get_fx_rate_currentGet Current G10 FX RateA
Read-onlyIdempotent
Inspect

Returns the current exchange rate for a G10 currency pair. Source: European Central Bank. Supported: EURUSD, GBPUSD, USDJPY, USDCHF, USDCAD, AUDUSD, NZDUSD, USDSEK, USDNOK.

ParametersJSON Schema
NameRequiredDescriptionDefault
pairYesG10 currency pair e.g. EURUSD, USDJPY, GBPUSD

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateYesDate of the rate (YYYY-MM-DD)
pairYesCurrency pair identifier
rateYesCurrent exchange rate
labelYesHuman-readable pair name
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the source (European Central Bank) and explicitly lists supported pairs, but does not disclose update frequency, any latency, or whether the rate is a mid-price or bid/ask. This adds some context but not substantial behavioral detail beyond 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?

The description is a single sentence followed by a compact list of supported pairs. It is front-loaded with the primary action and resource, contains no filler, and every sentence earns its place. The structure is highly scannable and efficient.

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?

Given the tool has a single parameter, an output schema (true), and strong annotations, the description covers the essential what (current rate), source, and supported inputs. It does not mention how to retrieve historical or series data, but that is addressed via sibling tool names. For a simple read tool, the description is sufficiently complete for correct use.

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 has 100% coverage for the 'pair' parameter, including an enum and a description with examples. The description repeats the enum values and the phrase 'G10 currency pair', which is already in the schema. It adds no additional meaning about parameter semantics or formatting beyond what the schema provides, 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?

The description clearly states the tool returns the current exchange rate for a G10 currency pair, with a specific verb ('Returns') and resource ('current exchange rate'). It distinguishes from sibling tools by emphasizing 'current', contrasting with get_fx_rate_by_date and get_fx_rate_series. The supported pairs are explicitly listed, leaving no ambiguity.

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 implies this tool is for current rates, which contrasts with historical or series tools available as siblings. However, it does not explicitly name alternatives or state 'when not to use' this tool. The context signals include sibling names, so the agent can infer, but the description itself lacks direct exclusionary guidance.

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

get_fx_rate_seriesGet G10 FX Rate HistoryA
Read-onlyIdempotent
Inspect

Returns historical daily exchange rates for a G10 currency pair. Source: European Central Bank.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysYesHistory window: 30 ($0.05), 90 ($0.10), or 365 ($0.25)
pairYesG10 currency pair e.g. EURUSD

Output Schema

ParametersJSON Schema
NameRequiredDescription
endYesEnd date of the window
pairYesCurrency pair identifier
countYesNumber of observations returned
labelYesHuman-readable pair name
startYesStart date of the window
observationsYesDaily exchange rates
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value by revealing the data source ('Source: European Central Bank'), which is not present in annotations or schema. This provides context on data origin and reliability. It does not contradict annotations. However, it does not describe return structure or rate-limiting behavior, but given the output schema exists, that is acceptable.

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 exactly two sentences: one for core functionality and one for data source. Every sentence adds distinct value with zero filler or redundancy. It is highly efficient and front-loaded, making it easy for an agent to parse quickly.

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

Completeness4/5

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

For a simple tool with only two enum parameters, rich annotations (read-only, idempotent), and an output schema, the description is fairly complete. It states what is returned (historical daily rates), the scope (G10 pairs), and the source (ECB). However, it does not explicitly mention that it returns a time series, nor does it provide any usage context like typical applications. Given the low complexity, a score of 4 is appropriate; it is not fully maximized.

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 provides 100% coverage of both parameters, including enums (currency pairs and time windows) and per-parameter descriptions (e.g., days: '30 ($0.05)'). The tool description adds no additional parameter-level meaning beyond what the schema already contains. Baseline 3 is appropriate because the schema does the heavy lifting; the description adds no extra semantics.

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 uses a specific verb ('Returns') and resource ('historical daily exchange rates for a G10 currency pair'), which clearly states the tool's function. It is distinguishable from siblings like 'get_fx_rate_current' (current rates) and 'get_fx_rate_by_date' (single-date rates) due to 'historical daily' implying a time series, though it does not explicitly name alternatives. The title 'Get G10 FX Rate History' reinforces the purpose. A score of 4 reflects clear purpose without explicit 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention exclusions or when to prefer other FX tools such as 'get_fx_rate_current' or 'get_fx_rate_by_date'. There is also no mention of use cases or limitations. This is a clear gap in usage guidance.

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

get_policy_spreadGet Fed Policy Spread (EFFR vs IORB)A
Read-onlyIdempotent
Inspect

Returns the spread between the Effective Federal Funds Rate (EFFR) and Interest on Reserve Balances (IORB), with an interpretation of Fed policy stance. EFFR below IORB is the normal operating band. Source: FRED.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
effrYesEffective Federal Funds Rate (%)
iorbYesInterest on Reserve Balances (%)
as_ofYesDate of the most recent data
spreadYesEFFR minus IORB spread in percentage points
interpretationYesPolicy stance interpretation
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds value by noting the interpretation component, the normal operating band, and the FRED source, offering useful context about data provenance and analytical content beyond 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.

Conciseness5/5

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

The description is three concise sentences that front-load the core function, then add interpretation context and source. Every sentence earns its place with no redundant restatement of the title.

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?

This is a simple zero-parameter tool with rich annotations and an output schema. The description covers purpose, interpretation behavior, and source, which is sufficient for an agent to select and invoke 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 tool has zero parameters and schema coverage is trivially 100%. With no parameters to document, the baseline score of 4 applies, and the description appropriately needs no 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 uses the specific verb 'Returns' and identifies the exact resource: the spread between EFFR and IORB. It also mentions the interpretive output and source, clearly distinguishing it from sibling data-retrieval tools.

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 provides clear context on what the tool measures and its policy-stance interpretation, which implies when it should be used. It does not explicitly name alternatives or exclusions, but no sibling tool directly overlaps with this specific spread calculation.

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

get_recession_indicatorGet Sahm Rule Recession IndicatorA
Read-onlyIdempotent
Inspect

Returns the real-time Sahm Rule recession indicator. A value >= 0.50 signals a recession is likely underway. Measures the rise in unemployment from its recent low. Source: FRED SAHMREALTIME.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
as_ofYesDate of the most recent observation
valueYesSahm Rule indicator value
signalYesHuman-readable signal description
thresholdYesTrigger threshold (0.50)
triggeredYesTrue if value >= 0.50 (recession signal active)
Behavior4/5

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

Annotations already establish the tool as read-only and idempotent. The description adds valuable behavioral context: it defines the indicator as 'the rise in unemployment from its recent low,' specifies the 0.50 recession threshold, and cites the FRED SAHMREALTIME source. No contradiction with 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?

The description is three short sentences, each delivering specific content: what the tool returns, how to interpret the value, and the data source. There is no filler or redundancy.

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 tool with an output schema, the description is sufficient. It states the output, the interpretation threshold, and the source, with no missing prerequisites or edge cases.

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 confirms this with an empty properties object. The description does not need to explain input semantics, and it adds no param-specific information because none exists. Baseline 4 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 opens with a specific action and resource: 'Returns the real-time Sahm Rule recession indicator.' It also clearly states the interpretation threshold and source, which distinguishes it from sibling getters like get_series or get_current_value.

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 provides clear context for when to use this tool—to obtain the Sahm Rule indicator and check the recession threshold. It does not explicitly name alternatives or exclusions, but the tool's narrow scope makes its intended use obvious.

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

get_seriesGet FRED Data SeriesA
Read-onlyIdempotent
Inspect

Returns recent observations for any supported FRED data series. Use this to get current and historical values for mortgage rates, Treasury yields, Fed funds rate, CPI, SOFR, unemployment, GDP, energy prices, and more. Common use cases:

  • Current 30-yr mortgage rate: series_id=MORTGAGE30US, days=30

  • Current Fed funds rate: series_id=FEDFUNDS, days=30

  • Current 10-yr Treasury yield: series_id=DGS10, days=30

  • Current CPI (inflation): series_id=CPIAUCSL, days=30

  • Current WTI crude oil: series_id=DCOILWTICO, days=30 The most recent observation in the returned array is the current value.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysYesHistory window: 30 ($0.05), 90 ($0.10), or 365 ($0.25). Use 30 for current/recent values.
series_idYesFRED series ID. Use IORB for Interest on Reserve Balances, EFFR for Effective Fed Funds Rate, MORTGAGE30US for 30-yr mortgage rate, SAHMREALTIME for Sahm Rule, etc.

Output Schema

ParametersJSON Schema
NameRequiredDescription
endYesEnd date of the series window
countYesNumber of observations returned
labelYesHuman-readable series name
startYesStart date of the series window
series_idYesFRED series identifier
current_dateYesDate of the most recent observation
observationsYesAll observations in the window
current_valueYesMost recent observed value
Behavior4/5

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

Annotations already declare readOnly, openWorld, idempotent, and non-destructive behavior. The description adds a valuable behavioral detail: 'The most recent observation in the returned array is the current value,' which clarifies output ordering and how to extract the latest data point. No contradictions with 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?

The description is well-structured and front-loaded, with a clear first sentence followed by a bulleted list of five specific, actionable examples. The final note about the most recent observation is a critical piece of usage information. No fluff or redundant content; every line earns its place.

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?

Given the tool's moderate complexity, rich annotations, complete parameter schema, and presence of an output schema, the description covers the core purpose, provides common use cases, and clarifies output interpretation. It could be slightly more explicit about how it relates to sibling tools, but overall it is sufficiently complete for an agent to use correctly.

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 fully described, including enums and guidance like 'Use 30 for current/recent values.' The description's examples reinforce common series_id/day combinations but do not add substantial semantics beyond what the schema already provides, so a baseline score 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 clearly states the tool returns recent observations for any supported FRED data series, listing a wide range of economic indicators. This distinguishes it from sibling tools like get_current_value or get_value_by_date that focus on single values or specific dates, though it does not explicitly name these alternatives.

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 provides clear context for when to use the tool ('Use this to get current and historical values') and includes five concrete common use cases with exact series_id and days parameters. It does not explicitly mention when not to use it or name alternative tools, but the examples give strong practical guidance.

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

get_treasury_yield_by_dateGet 30-Year Treasury Yield by DateA
Read-onlyIdempotent
Inspect

Returns the 30-year US Treasury yield for a specific date. Business days only. Use YYYY-MM-DD format.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate in YYYY-MM-DD format e.g. 2026-05-09

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateYesDate of the observation (YYYY-MM-DD)
yield_percentYes30-year Treasury yield as a percentage
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the description need not repeat safety. It adds the business-days-only constraint, which is useful. Does not explain behavior for non-business days, but that is a minor gap given annotations cover safety.

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 sentences, no wasted words. States purpose, constraint, and format efficiently. Front-loaded with the core action and object.

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?

Simple tool with one param, full schema coverage, and output schema present. Description covers the essential constraint (business days) and format. Output schema handles return value details, so no additional need.

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 description reiterates the date format already present in the schema pattern. No additional semantic meaning beyond what the schema provides, so 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?

Description uses specific verb 'Returns' with explicit resource '30-year US Treasury yield' and scope 'for a specific date'. Clearly distinguishes from siblings like get_treasury_yield_current (current) and get_yield_curve (curve).

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 'Business days only' and date format, giving clear usage constraints. Does not explicitly name alternatives or when not to use, but the tool name and context make the specific-date use case obvious. Lacks explicit exclusions but provides adequate context.

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

get_treasury_yield_currentGet Current 30-Year Treasury YieldA
Read-onlyIdempotent
Inspect

Returns the most recent 30-year US Treasury constant maturity yield (DGS30) from FRED. Free — no payment required. For other series use get_current_value or get_series.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateYesDate of the observation (YYYY-MM-DD)
yield_percentYesCurrent 30-year Treasury yield as a percentage
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the FRED source and 'no payment required' context, but does not disclose response format, pagination, or rate limits. It does not contradict annotations, but adds minimal behavioral depth beyond 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?

Two sentences, with the first front-loading the core function and the second providing usage guidance. No wasted words, ideal length for the tool's simplicity.

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 zero parameters, an output schema, and strong annotations, the description fully covers the necessary context: what is returned, from where, and how it differs from related tools. 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 has 100% coverage (vacuously). Baseline for 0 params is 4. The description correctly does not attempt to explain parameters since there are none.

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 a specific verb ('Returns'), resource ('most recent 30-year US Treasury constant maturity yield'), and data source ('FRED'), even specifying the series code (DGS30). It distinguishes from siblings by explicitly directing users with different needs to get_current_value or get_series.

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?

The description explicitly says 'For other series use get_current_value or get_series', providing direct guidance on when to use this tool versus alternatives. It also notes 'Free — no payment required', a practical contextual guideline.

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

get_value_by_dateGet FRED Series Value by DateA
Read-onlyIdempotent
Inspect

Returns the value of any supported FRED series for a specific date. Business days only. Use YYYY-MM-DD format.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate in YYYY-MM-DD format e.g. 2026-01-15
series_idYesFRED series ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateYesDate of the observation (YYYY-MM-DD)
labelYesHuman-readable series name
valueYesObserved value on the requested date
series_idYesFRED series identifier
Behavior4/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds the meaningful behavioral constraint that the tool works only for business days, which is not present in the annotations. It does not explain what happens for non-business days (e.g., whether it returns null or errors), but this extra context goes beyond structured metadata.

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 two concise sentences with no redundant words. The main output is front-loaded, followed by key constraints. Every word earns its place, and the structure is ideal for quick parsing.

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?

Given the tool's simple interface, a rich output schema, and strong annotations, the description is nearly complete. It covers what the tool does, the date format, and the business-day limitation. The only missing piece is explicit guidance on fallback behavior for non-business days, but that is a minor gap given the output schema likely covers error handling or null values.

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 both parameters thoroughly (series_id enum with descriptions, date pattern with example), so the baseline is 3. The description adds semantic value by emphasizing 'Business days only' and reiterating the YYYY-MM-DD format, which reinforces date handling expectations. This extra contextual guidance warrants a 4.

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 uses a specific verb ('Returns') and clearly identifies the resource ('the value of any supported FRED series for a specific date'). This distinguishes it from sibling tools like get_current_value (which lacks date specification) and get_treasury_yield_by_date (which is narrower in scope).

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 conveys when to use this tool: when you need a historical value for a supported FRED series on a specific date. It adds the constraint 'Business days only' and a date format reminder, but it does not explicitly mention alternatives or exclusions, such as pointing to get_current_value for live data. This is clear context without explicit alternative references.

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

get_yield_curveGet Yield Curve SpreadsA
Read-onlyIdempotent
Inspect

Returns 2s10s (2-year vs 10-year) and 3m10y (3-month vs 10-year) Treasury yield curve spreads with inversion signal. An inverted yield curve (negative spread) historically precedes recessions. Source: FRED.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
DGS2Yes2-Year Treasury yield
DGS10Yes10-Year Treasury yield
as_ofYesDate of the most recent underlying data
DGS1MOYes1-Month T-Bill rate
signalYesCurve shape signal: Fully inverted, Partially inverted, or Normal
spread_2s10sYes10Y minus 2Y Treasury spread in percentage points
spread_3m10yYes10Y minus 3-Month T-Bill spread in percentage points
inverted_2s10sYesWhether the 2s10s spread is negative (inverted)
inverted_3m10yYesWhether the 3m10y spread is negative (inverted)
Behavior3/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds useful context about the specific spreads and inversion signal meaning, plus the source (FRED), but does not disclose additional behavioral details such as data latency or error handling.

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 concise sentences, front-loaded with the main function. The first sentence states exactly what is returned; the second adds interpretive context. Every word earns its place with no redundancy.

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-parameter tool with an output schema and comprehensive annotations, the description provides complete context: what spreads are returned, the inversion signal's meaning, and data source. 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 input schema is empty (0 parameters), and baseline for 0 params is 4. The description does not need to explain nonexistent parameters, and the schema already provides full coverage.

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 uses a specific verb and resource: 'Returns 2s10s (2-year vs 10-year) and 3m10y (3-month vs 10-year) Treasury yield curve spreads with inversion signal.' This clearly states what the tool does and distinguishes it from sibling tools that return yields or bundles.

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 implies usage when yield curve spreads and inversion signals are needed, noting their historical recession link. However, it does not explicitly name alternatives or state when not to use this tool, so it falls 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.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables LLM agents to query US macroeconomic time series from FRED, including GDP, CPI, unemployment, and interest rates, for contextual research.
    6
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Provides access to 800,000+ Federal Reserve Economic Data (FRED) time series, enabling users to search, retrieve, and analyze economic indicators like GDP, unemployment, inflation, and interest rates through natural language queries.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to search and retrieve FRED economic time series, including vintage (as-published) data, with tools for series search, observation retrieval, release calendar, revision history, and more.
    9
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.