FXMacroData
Server Details
Macroeconomic and FX time-series data for AI agents: indicators, calendars, COT, forex, commodities.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- fxmacrodata/fxmacrodata
- GitHub Stars
- 3
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
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.
Tool Definition Quality
Average 4/5 across 30 of 30 tools scored. Lowest: 3.3/5.
Every tool has a clearly distinct purpose. Data retrieval tools (e.g., commodities, cot_data, forex, indicator_query) are separate from their visual artifact counterparts (e.g., commodities_visual_artifact, cot_visual_artifact) and from analytical task tools (e.g., fx_backtest_task, macro_briefing_task). Descriptions explicitly differentiate when to use each variant, leaving no ambiguity.
The naming largely follows a predictable pattern: short_name for raw data, short_name_visual_artifact for chart-optimized versions, and short_name_task for composite analytical functions. Minor inconsistencies exist (e.g., 'commodities' vs. 'cot_data' both lacking a uniform suffix, and 'subscribe_for_mcp_access' breaking the pattern), but the overall scheme is coherent.
With 30 tools, the server is slightly larger than the typical well-scoped range (3–15) but still justified by the breadth of FX macro data and analysis capabilities. Each tool serves a specific function, and the count feels reasonable for a comprehensive data and analytics platform without being excessive.
The tool surface covers the full lifecycle of FX macro data needs: discovery (data_catalogue), raw data (forex, indicator_query, commodities, cot_data, release_calendar, market_sessions, official_dataset_family), visualization (visual_artifact tools), and advanced analytics (backtesting, trade setup, risk engine, scenario modeling, etc.). No obvious gaps are present for the stated domain.
Available Tools
30 toolscommoditiesCommodity IndicatorsBRead-onlyInspect
Get historical price series for commodities and energy (crude oil, natural gas, gold, silver, copper, etc.) — useful for analyzing commodity-currency correlations (CAD vs WTI, AUD vs iron ore, NOK vs Brent). Requires an API key. Supported indicators: gold, platinum, silver.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | Inclusive upper bound, YYYY-MM-DD. | |
| indicator | Yes | Commodity indicator slug. Supported: gold, platinum, silver. | |
| start_date | No | Inclusive lower bound, YYYY-MM-DD. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is clear. The description adds 'Requires an API key' and lists supported indicators, which is minimal extra behavioral context. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey core purpose and key details. Could be slightly more structured, but overall concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and full parameter descriptions, the description adequately covers essential context: purpose, example commodities, API key requirement, and supported indicators. Missing details like data frequency or pagination are acceptable due to output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter already has a description. The tool description adds 'Supported indicators: gold, platinum, silver' which partly overlaps with the indicator parameter's examples and description. No significant new semantic information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get historical price series for commodities and energy' with specific examples. However, it does not explicitly differentiate from sibling tools like commodities_visual_artifact, which may confuse an agent about which to use for visualization vs raw data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions usefulness for commodity-currency correlations and requires an API key, but does not specify when to avoid this tool or give alternatives. No explicit guidance on prerequisites or context for optimal use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commodities_visual_artifactCommodities Visual ArtifactARead-onlyInspect
Same payload as commodities, but packaged with MCP Apps chart metadata so compatible clients render an interactive commodity chart inline.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | Inclusive upper bound, YYYY-MM-DD. | |
| indicator | Yes | Commodity indicator slug. Supported: gold, platinum, silver. | |
| start_date | No | Inclusive lower bound, YYYY-MM-DD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety profile is clear. Description adds value by revealing that the tool packages the payload with MCP Apps chart metadata, which is a behavioral detail not covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 20 words. Extremely concise, no filler, front-loaded with purpose. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should clarify the return shape. It references 'same payload as commodities' but doesn't describe that payload. It also doesn't mention that the chart metadata is for rendering. For a simple tool with three parameters and no output schema, this is minimally adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents the three parameters. The description adds no additional parameter guidance beyond stating 'Same payload as commodities', but this does not contradict or enhance the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool's purpose: returns the same payload as 'commodities' but with chart metadata for inline rendering. It distinguishes itself from the sibling 'commodities' tool by specifying the addition of MCP Apps chart metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly indicates usage for chart rendering by 'compatible clients', but does not explicitly state when to use this tool versus alternatives like 'commodities' or other visual artifact tools. No exclusion criteria or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cot_dataCOT ReportARead-onlyInspect
Get weekly CFTC Commitment of Traders (COT) positioning data for a currency's FX futures contract on the CME. Use this when the user asks about speculator positioning, non-commercial longs vs shorts, hedge-fund FX positioning, or wants to gauge sentiment extremes. Returns weekly snapshots with long/short open interest by trader category. Updated every Friday at 15:30 ET reflecting the Tuesday cutoff. Requires an API key. Supported currencies: AUD, CAD, CHF, EUR, GBP, HUF, JPY, MXN, NZD, TRY, USD.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | 3-letter ISO currency code for the FX futures contract (case-insensitive). Supported: AUD, CAD, CHF, EUR, GBP, HUF, JPY, MXN, NZD, TRY, USD. | |
| end_date | No | Inclusive upper bound, YYYY-MM-DD. | |
| start_date | No | Inclusive lower bound, YYYY-MM-DD. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare safe read-only behavior. The description adds critical behavioral details: update frequency (Friday 15:30 ET with Tuesday cutoff) and authentication requirement (API key). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three well-structured sentences: purpose, usage, schedule. Front-loaded with key information, no redundancy. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, output schema present, annotations), the description fully covers what the agent needs: what data, when updated, supported currencies, auth requirements. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are fully described in the input schema (100% coverage). The description adds little beyond restating the currency list; for start_date and end_date, it provides no additional semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves weekly CFTC COT positioning data for FX futures on the CME. It lists specific use cases (speculator positioning, non-commercial longs vs shorts) and is distinct from sibling tools like commodities or forex data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance: 'Use this when the user asks about speculator positioning, non-commercial longs vs shorts, hedge-fund FX positioning, or wants to gauge sentiment extremes.' This helps the agent select the tool correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cot_visual_artifactCOT Visual ArtifactARead-onlyInspect
Same payload as cot_data, but with MCP Apps chart metadata. By default it charts noncommercial net positioning; pass metric to chart another COT field.
| Name | Required | Description | Default |
|---|---|---|---|
| metric | No | Field to plot from each COT row. Typical values: noncommercial_net, noncommercial_net_zscore, noncommercial_long, noncommercial_short, open_interest. | noncommercial_net |
| currency | Yes | 3-letter ISO currency code for the FX futures contract (case-insensitive). Supported: AUD, CAD, CHF, EUR, GBP, HUF, JPY, MXN, NZD, TRY, USD. | |
| end_date | No | Inclusive upper bound, YYYY-MM-DD. | |
| start_date | No | Inclusive lower bound, YYYY-MM-DD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds that it returns chart metadata but does not detail the output format, side effects, or response structure. It is consistent with annotations but adds limited behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. Front-loaded with the key distinction (chart metadata) followed by the default behavior. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description omits important details about the chart output (e.g., response format, how it 'charts' data). It relies on the agent's knowledge of 'MCP Apps chart metadata,' which is undefined. Parameter coverage is complete, but behavioral expectations remain vague.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description's contribution is minimal. It confirms the default value of `metric` and implies the parameter set matches cot_data, but does not explain currency, start_date, or end_date beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it produces a visual artifact (chart) from COT data, referencing the sibling cot_data for payload similarity. It specifies the default metric (noncommercial_net) and the ability to change it via the `metric` parameter, making the tool's purpose specific and distinguishable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly contrasts with cot_data ('Same payload as cot_data, but with MCP Apps chart metadata'), guiding agents to use this for chart output vs raw data. However, it does not compare with other visual artifact siblings (e.g., commodities_visual_artifact) or state exclusion criteria beyond this.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_catalogueIndicator CatalogueARead-onlyInspect
List every macroeconomic indicator FXMacroData publishes for a currency, with units and frequency. ALWAYS call this first when the user asks about a country's macro data — it returns the exact indicator slug strings to pass to indicator_query, release_calendar, and indicator_visual_artifact. Cheap, cacheable, and safe to call on every new conversation. Supported currencies (lowercase 3-letter codes): AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | 3-letter ISO currency code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and destructiveHint, covering the safety profile. The description adds useful behavioral context (cheap, cacheable) but does not significantly extend 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the main action, followed by usage guidance and supported currencies. Every sentence adds value, with no extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (single parameter, output schema exists), the description fully covers purpose, usage, and supported values. No gaps remain for an agent to correctly select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description repeats the currency list and case-insensitivity. While the parameter is well-documented, the description adds minimal semantic value beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: listing every macroeconomic indicator for a currency with units and frequency. It differentiates from sibling tools by directing agents to call this first to obtain indicator slugs for indicator_query, release_calendar, and indicator_visual_artifact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to 'ALWAYS call this first' when a user asks about a country's macro data, and it names the dependent tools. It also notes the tool is cheap, cacheable, and safe to call on every conversation, providing clear guidance on when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
event_impact_replay_taskEvent Impact Replay TaskARead-onlyInspect
Create a point-in-time replay timeline mapping macro announcements to FX context and heuristic impact markers. Supports MCP Tasks for async execution when clients send task-augmented requests.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | FX base currency for market context, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | eur |
| quote | No | FX quote currency for market context, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | usd |
| currency | Yes | Currency for macro event series, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| end_date | No | Optional inclusive upper bound, YYYY-MM-DD. | |
| indicator | Yes | Indicator slug for event replay. Supported examples: average_hourly_earnings, balance_on_goods, balance_on_services, boc_business_outlook, breakeven_inflation_rate, broad_money, building_approvals, building_permits, business_confidence, cb_assets, cb_reserves_domestic_currency, cb_reserves_foreign_currency, cb_reserves_gold, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, consumer_expectations, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, credit_growth, current_account_balance, deposit_rates, domestic_credit, durable_goods_orders, employment, exports, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_quarterly, gold_reserves, gov_bond_10y, gov_bond_1y, gov_bond_20y, gov_bond_2y, gov_bond_30y, gov_bond_3y, gov_bond_40y, gov_bond_4y, gov_bond_5y, gov_bond_7y, government_debt, house_price_index, house_prices, household_credit, housing_starts, imports, industrial_production, inflation, inflation_expectations, inflation_linked_bond, inflation_mom, initial_jobless_claims, job_openings, kof_barometer, m1, m2, m3, money_supply_currency, money_supply_savings_deposits, money_supply_term_deposits, money_supply_transaction_deposits, monthly_cpi, mortgage_rate, nairu, nmi, non_farm_payrolls, part_time_employment, participation_rate, pce, pce_mom, pmi, policy_rate, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, ppi_mom, private_sector_credit, real_exchange_rate, retail_sales, risk_free_rate, sight_deposits, snb_balance_sheet, tankan_capex, terms_of_trade, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages. | |
| start_date | No | Optional inclusive lower bound, YYYY-MM-DD. | |
| lookback_events | No | Maximum number of recent events to include in replay. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it supports async execution via MCP Tasks, but does not elaborate on data freshness, concurrency, or other behavioral traits. The verb 'Create' slightly conflicts with readOnlyHint, but overall the description adds moderate context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured sentences: the first captures the core purpose with specific noun phrases, and the second adds async execution context. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the tool's output at a conceptual level but lacks details on the output format or data structure, which is important given no output schema. It also does not mention prerequisites or compare directly to sibling tools for selection clarity. Adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add significant meaning beyond what the schema already provides for each parameter. It implicitly ties indicator and currency to the macro announcements concept.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a point-in-time replay timeline mapping macro announcements to FX context and heuristic impact markers. This distinguishes it from sibling tools like indicator_intel_task or macro_heatmap_task by specifying the unique output format and context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions support for MCP Tasks for async execution, which hints at usage context, but does not provide explicit when-to-use or when-not-to-use guidance. No comparisons to alternatives like indicator_intel_task for single indicator intel.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forexFX Spot RatesARead-onlyInspect
Get raw historical FX spot-rate rows for a currency pair (e.g. EUR/USD, USD/JPY). Prefer this tool when the user explicitly wants a plain-text table, raw rows, exact values, JSON-like data, or technical-indicator series (SMA, EMA, RSI, MACD, Bollinger Bands, etc.) computed from spot without a chart. If the user asks more generally to show/tell/explain the last few weeks or months of a pair, prefer forex_visual_artifact instead so the client can render a chart. Daily granularity from official central-bank reference rates with full multi-year history. Supported currencies (use lowercase 3-letter codes): AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. Optional indicators parameter accepts a comma-separated list of technical indicator slugs to attach to each row. Supported indicator values: bollinger_bands, ema_12, ema_26, macd, rsi_14, sma_20, sma_200, sma_50, all.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base currency, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| quote | Yes | Quote currency, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| end_date | No | Inclusive upper bound, YYYY-MM-DD. Defaults to today. | |
| indicators | No | Comma-separated technical-indicator slugs to attach to each row. Supported: bollinger_bands, ema_12, ema_26, macd, rsi_14, sma_20, sma_200, sma_50, all. | |
| start_date | No | Inclusive lower bound, YYYY-MM-DD. Defaults to ~5 years ago. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true. The description adds context about data source ('official central-bank reference rates'), granularity ('daily'), and history length ('full multi-year history'). It does not contradict annotations and provides useful behavioral context beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that front-loads the core purpose. It is efficient with no wasted sentences, though it could be slightly more structured (e.g., separate sections for usage and parameters). Still, it earns its conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, output schema exists, rich annotations), the description covers data source, granularity, supported currencies, indicator options, and use-case guidance. It is comprehensive and compensates for the lack of output schema description. Minor gap: no mention of rate limits or authorization.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by specifying case-insensitivity ('use lowercase 3-letter codes'), listing all supported currencies and indicators, and providing example values in context. It also explains the 'indicators' parameter's purpose (attach to each row) and lists supported slugs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Get raw historical FX spot-rate rows for a currency pair.' It clearly distinguishes this tool from its sibling 'forex_visual_artifact' by specifying when to prefer each (raw rows vs. chart).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('when the user explicitly wants a plain-text table, raw rows, exact values, JSON-like data, or technical-indicator series') and when to avoid it ('if the user asks more generally... prefer forex_visual_artifact instead'). This is high-quality guidance with a named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forex_visual_artifactFX Visual ArtifactARead-onlyInspect
Same payload as forex, but packaged with MCP Apps chart metadata so compatible clients render an interactive spot-rate chart inline. Prefer this by default for FX pair time-series requests, especially for prompts like 'show me AUD/USD', 'tell me the last 30 days', 'how has EUR/USD moved recently', or any request where a trend view is more useful than raw rows. Only prefer plain forex when the user explicitly asks for a table, raw values, JSON, CSV-style output, or exact row-by-row data.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base currency, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| quote | Yes | Quote currency, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| end_date | No | Inclusive upper bound, YYYY-MM-DD. | |
| indicators | No | Optional technical indicators to include in the raw payload. Supported: bollinger_bands, ema_12, ema_26, macd, rsi_14, sma_20, sma_200, sma_50, all. | |
| start_date | No | Inclusive lower bound, YYYY-MM-DD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, and description adds that it packages chart metadata. No contradictions; sufficient for understanding tool behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: purpose, when to use, when not to use. Highly efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description clearly explains what it returns (chart metadata for interactive chart). Annotations cover safety. Complete for its purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides descriptions for all 5 parameters, so description adds minimal extra value. Baseline score appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it returns chart metadata for interactive chart, differentiating from sibling 'forex' which returns raw data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to prefer this for time-series requests and only use plain forex when raw data is requested, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_backtest_taskFX Backtest TaskARead-onlyInspect
Run a transparent rule-based FX backtest on historical spot data using carry and/or momentum signals. Supports MCP Tasks for async execution when clients send task-augmented requests.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base currency, 3-letter ISO code. Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| quote | Yes | Quote currency, 3-letter ISO code. Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| end_date | No | Inclusive upper bound, YYYY-MM-DD. | |
| strategy | No | Signal mode: carry, momentum, or carry_momentum. | carry_momentum |
| start_date | No | Inclusive lower bound, YYYY-MM-DD. | |
| event_gated | No | When true, only allow positions during release-event windows derived from announcement_datetime on base and quote calendars. | |
| initial_capital | No | Starting capital for equity-curve calculations. | |
| event_window_days | No | Event gate window in days around each release date (0 means release-date only). | |
| momentum_lookback | No | Momentum lookback in observations for the momentum signal. | |
| transaction_cost_bps | No | Per-side transaction cost in basis points applied on position changes. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows it's a safe, non-destructive read operation. The description adds that the backtest is 'transparent rule-based' but does not elaborate on behavioral aspects like return format, pagination, or error handling. With good annotation coverage, the description provides marginal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, efficient and front-loaded. The first sentence conveys the core purpose, and the second adds an important capability (async execution). There is no redundant or unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 10 parameters and no output schema, the description is minimal. It does not explain what the backtest returns or how to interpret results. For a complex tool, the agent would benefit from hints about return values, result format, or common use cases. The description is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are well-documented in the schema with descriptions, examples, and defaults. The tool description adds no additional parameter-specific meaning beyond what the schema already provides. Baseline score of 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool does: 'Run a transparent rule-based FX backtest on historical spot data using carry and/or momentum signals.' It clearly identifies the verb (run), resource (FX backtest), and scope (historical spot data, specific signals). The title 'FX Backtest Task' reinforces the purpose. It distinguishes from sibling tools like fx_trade_setup_task by specifying backtesting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions support for MCP Tasks for async execution but provides no explicit guidance on when to use this tool versus alternatives. It does not state when not to use it or name alternative tools for comparison. Usage is implied but not clearly delineated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_trade_setup_taskFX Trade Setup TaskARead-onlyInspect
Build a trader-oriented FX pair setup using spot context, macro differentials, upcoming catalyst risk, and optional COT positioning. Supports MCP Tasks for async execution when clients send task-augmented requests.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base currency, 3-letter ISO code. Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| quote | Yes | Quote currency, 3-letter ISO code. Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| include_cot | No | When true, attempt to include COT positioning context for both legs. | |
| horizon_events | No | Maximum upcoming catalysts per leg to rank. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and non-destructive behavior. The description adds context about data sources (spot, macro, catalysts, COT) and async execution, which is useful. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose and data sources, second adds async capability. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core functionality well given no output schema. Mentions data sources and async support, but could elaborate on output format or behavior when COT data is unavailable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for each parameter, including allowed values for base/quote. The description mentions the data sources but does not add significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool builds a trader-oriented FX pair setup using specified data sources, distinguishing it from simpler query tools like forex or pair_intel_task. It also mentions async MCP Tasks support, which is unique among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for async trading setups but does not explicitly state when to use this vs alternatives like pair_intel_task. No direct exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
indicator_intel_taskIndicator Intelligence TaskARead-onlyInspect
Build an intelligence pack for one indicator by combining chart-ready series data, derived analytics, and nearest release timing context. Supports MCP Tasks for async execution when clients send task-augmented requests.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | 3-letter ISO currency code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| end_date | No | Inclusive upper bound, YYYY-MM-DD. | |
| indicator | Yes | Indicator slug for the given currency. Supported: average_hourly_earnings, balance_on_goods, balance_on_services, boc_business_outlook, breakeven_inflation_rate, broad_money, building_approvals, building_permits, business_confidence, cb_assets, cb_reserves_domestic_currency, cb_reserves_foreign_currency, cb_reserves_gold, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, consumer_expectations, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, credit_growth, current_account_balance, deposit_rates, domestic_credit, durable_goods_orders, employment, exports, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_quarterly, gold_reserves, gov_bond_10y, gov_bond_1y, gov_bond_20y, gov_bond_2y, gov_bond_30y, gov_bond_3y, gov_bond_40y, gov_bond_4y, gov_bond_5y, gov_bond_7y, government_debt, house_price_index, house_prices, household_credit, housing_starts, imports, industrial_production, inflation, inflation_expectations, inflation_linked_bond, inflation_mom, initial_jobless_claims, job_openings, kof_barometer, m1, m2, m3, money_supply_currency, money_supply_savings_deposits, money_supply_term_deposits, money_supply_transaction_deposits, monthly_cpi, mortgage_rate, nairu, nmi, non_farm_payrolls, part_time_employment, participation_rate, pce, pce_mom, pmi, policy_rate, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, ppi_mom, private_sector_credit, real_exchange_rate, retail_sales, risk_free_rate, sight_deposits, snb_balance_sheet, tankan_capex, terms_of_trade, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages. | |
| start_date | No | Inclusive lower bound, YYYY-MM-DD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to cover safety. It adds context about combining data types and release timing, but no additional behavioral traits like side effects or auth needs. Adequate but not enriching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core purpose. Every sentence adds value without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, no output schema, annotations present), the description covers the main output (intelligence pack with series data, analytics, release timing). It is reasonably complete but leaves some ambiguity about 'chart-ready series data' and 'derived analytics', hence not a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents all four parameters. The description does not add any extra meaning or clarification beyond what is in the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'build' and the resource 'intelligence pack' for one indicator, combining chart-ready series data, derived analytics, and nearest release timing context. It distinguishes from siblings like indicator_query and indicator_visual_artifact by emphasizing a composite output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions support for MCP Tasks and async execution, giving a hint on when to use this tool. However, it lacks explicit exclusions or comparisons with alternative tools, such as when to use indicator_query instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
indicator_queryIndicator Time SeriesARead-onlyInspect
Get the full historical time series of a single macroeconomic indicator for a currency, sourced directly from the official central bank or statistical agency. Use this for CPI/inflation, GDP, unemployment, policy rates, bond yields, payrolls, retail sales, PCE, PPI, trade balance, current account, money supply, and similar series. Each row returns date (value-as-of), val (numeric), and announcement_datetime (when the value was first published — useful for backtest point-in-time integrity). Successful responses are chart-ready by default for MCP Apps hosts while preserving the full raw result envelope for data workflows. Always call data_catalogue(currency) first to get the exact indicator slug. USD indicators are free; non-USD requires API key. Supported currencies: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. Supported indicators: average_hourly_earnings, balance_on_goods, balance_on_services, boc_business_outlook, breakeven_inflation_rate, broad_money, building_approvals, building_permits, business_confidence, cb_assets, cb_reserves_domestic_currency, cb_reserves_foreign_currency, cb_reserves_gold, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, consumer_expectations, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, credit_growth, current_account_balance, deposit_rates, domestic_credit, durable_goods_orders, employment, exports, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_quarterly, gold_reserves, gov_bond_10y, gov_bond_1y, gov_bond_20y, gov_bond_2y, gov_bond_30y, gov_bond_3y, gov_bond_40y, gov_bond_4y, gov_bond_5y, gov_bond_7y, government_debt, house_price_index, house_prices, household_credit, housing_starts, imports, industrial_production, inflation, inflation_expectations, inflation_linked_bond, inflation_mom, initial_jobless_claims, job_openings, kof_barometer, m1, m2, m3, money_supply_currency, money_supply_savings_deposits, money_supply_term_deposits, money_supply_transaction_deposits, monthly_cpi, mortgage_rate, nairu, nmi, non_farm_payrolls, part_time_employment, participation_rate, pce, pce_mom, pmi, policy_rate, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, ppi_mom, private_sector_credit, real_exchange_rate, retail_sales, risk_free_rate, sight_deposits, snb_balance_sheet, tankan_capex, terms_of_trade, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Optional compound `"<currency>:<indicator>"` slug (e.g. `"usd:cpi"`, `"jpy:policy_rate"`). Many small / open tool-calling models concatenate the two parts anyway. When supplied, overrides `currency` and `indicator`. | |
| currency | No | 3-letter ISO currency code (case-insensitive). Optional if `slug` is provided as a `"usd:cpi"`-style compound. Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| end_date | No | Inclusive upper bound, YYYY-MM-DD. | |
| indicator | No | Indicator slug for the given currency. Optional if `slug` is provided as a `"usd:cpi"`-style compound. Supported: average_hourly_earnings, balance_on_goods, balance_on_services, boc_business_outlook, breakeven_inflation_rate, broad_money, building_approvals, building_permits, business_confidence, cb_assets, cb_reserves_domestic_currency, cb_reserves_foreign_currency, cb_reserves_gold, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, consumer_expectations, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, credit_growth, current_account_balance, deposit_rates, domestic_credit, durable_goods_orders, employment, exports, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_quarterly, gold_reserves, gov_bond_10y, gov_bond_1y, gov_bond_20y, gov_bond_2y, gov_bond_30y, gov_bond_3y, gov_bond_40y, gov_bond_4y, gov_bond_5y, gov_bond_7y, government_debt, house_price_index, house_prices, household_credit, housing_starts, imports, industrial_production, inflation, inflation_expectations, inflation_linked_bond, inflation_mom, initial_jobless_claims, job_openings, kof_barometer, m1, m2, m3, money_supply_currency, money_supply_savings_deposits, money_supply_term_deposits, money_supply_transaction_deposits, monthly_cpi, mortgage_rate, nairu, nmi, non_farm_payrolls, part_time_employment, participation_rate, pce, pce_mom, pmi, policy_rate, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, ppi_mom, private_sector_credit, real_exchange_rate, retail_sales, risk_free_rate, sight_deposits, snb_balance_sheet, tankan_capex, terms_of_trade, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages. | |
| start_date | No | Inclusive lower bound, YYYY-MM-DD. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, openWorldHint=true, destructiveHint=false. The description adds context: data sourced from official central banks, response includes 'date', 'val', 'announcement_datetime', and is chart-ready. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose but becomes verbose with a long list of supported currencies and indicators that duplicate the schema. Some sentences could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description covers return value fields (date, val, announcement_datetime), prerequisites (data_catalogue), auth (API key), and supported currencies/indicators. Missing details on pagination or errors, but adequate for a timeseries retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value by explaining the compound slug format (e.g., 'usd:cpi') and that slug overrides currency/indicator, but the schema already documents parameters well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets the 'full historical time series of a single macroeconomic indicator for a currency' and lists many example indicators. It is specific but does not explicitly differentiate from sibling tools like 'indicator_intel_task' or 'indicator_visual_artifact'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use: for CPI, GDP, unemployment, etc., and provides a prerequisite: 'Always call data_catalogue(currency) first'. It also mentions USD free vs. non-USD API key requirements, but does not give explicit when-not-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
indicator_visual_artifactIndicator Visual ArtifactARead-onlyInspect
Same payload as indicator_query, but also returns MCP Apps metadata so compatible clients (Claude Desktop, ChatGPT, Codex, etc.) render an interactive line chart instead of a JSON dump. Prefer this by default for indicator time-series requests, especially when the user asks to show, tell, explain, compare, inspect a trend, or review a recent window. Only fall back to indicator_query when the user explicitly wants a raw table, plain text list, JSON, exact rows, or minimal structured data. Supported currencies: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. Supported indicators: average_hourly_earnings, balance_on_goods, balance_on_services, boc_business_outlook, breakeven_inflation_rate, broad_money, building_approvals, building_permits, business_confidence, cb_assets, cb_reserves_domestic_currency, cb_reserves_foreign_currency, cb_reserves_gold, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, consumer_expectations, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, credit_growth, current_account_balance, deposit_rates, domestic_credit, durable_goods_orders, employment, exports, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_quarterly, gold_reserves, gov_bond_10y, gov_bond_1y, gov_bond_20y, gov_bond_2y, gov_bond_30y, gov_bond_3y, gov_bond_40y, gov_bond_4y, gov_bond_5y, gov_bond_7y, government_debt, house_price_index, house_prices, household_credit, housing_starts, imports, industrial_production, inflation, inflation_expectations, inflation_linked_bond, inflation_mom, initial_jobless_claims, job_openings, kof_barometer, m1, m2, m3, money_supply_currency, money_supply_savings_deposits, money_supply_term_deposits, money_supply_transaction_deposits, monthly_cpi, mortgage_rate, nairu, nmi, non_farm_payrolls, part_time_employment, participation_rate, pce, pce_mom, pmi, policy_rate, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, ppi_mom, private_sector_credit, real_exchange_rate, retail_sales, risk_free_rate, sight_deposits, snb_balance_sheet, tankan_capex, terms_of_trade, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | 3-letter ISO currency code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| end_date | No | Inclusive upper bound, YYYY-MM-DD. | |
| indicator | Yes | Indicator slug. Supported: average_hourly_earnings, balance_on_goods, balance_on_services, boc_business_outlook, breakeven_inflation_rate, broad_money, building_approvals, building_permits, business_confidence, cb_assets, cb_reserves_domestic_currency, cb_reserves_foreign_currency, cb_reserves_gold, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, consumer_expectations, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, credit_growth, current_account_balance, deposit_rates, domestic_credit, durable_goods_orders, employment, exports, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_quarterly, gold_reserves, gov_bond_10y, gov_bond_1y, gov_bond_20y, gov_bond_2y, gov_bond_30y, gov_bond_3y, gov_bond_40y, gov_bond_4y, gov_bond_5y, gov_bond_7y, government_debt, house_price_index, house_prices, household_credit, housing_starts, imports, industrial_production, inflation, inflation_expectations, inflation_linked_bond, inflation_mom, initial_jobless_claims, job_openings, kof_barometer, m1, m2, m3, money_supply_currency, money_supply_savings_deposits, money_supply_term_deposits, money_supply_transaction_deposits, monthly_cpi, mortgage_rate, nairu, nmi, non_farm_payrolls, part_time_employment, participation_rate, pce, pce_mom, pmi, policy_rate, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, ppi_mom, private_sector_credit, real_exchange_rate, retail_sales, risk_free_rate, sight_deposits, snb_balance_sheet, tankan_capex, terms_of_trade, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages. | |
| start_date | No | Inclusive lower bound, YYYY-MM-DD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true, openWorldHint=true, destructiveHint=false) already declare safe read-only behavior. The description adds context about returning MCP Apps metadata for chart rendering, which is the key behavioral difference from indicator_query. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and usage guidelines. The long lists of supported currencies and indicators are necessary for completeness but increase length. Every part serves a purpose, and the structure is logical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the return value (MCP Apps metadata for chart rendering). It lists supported currencies and indicators. It does not cover pagination or errors, but for a read-only tool with high annotation coverage, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description lists supported currencies and indicators, which redundantly repeats schema but does not add further semantic meaning beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the same payload as indicator_query plus MCP Apps metadata for interactive charts, distinguishing it from its sibling indicator_query. It specifies the verb ('returns') and the resource ('indicator time-series data with metadata').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to prefer this tool by default for indicator time-series requests when users want to show, tell, explain, etc., and to fall back to indicator_query only when raw data is explicitly requested. This provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
known_at_time_taskKnown At Time TaskARead-onlyInspect
Return the slice of a macro series that would have been known at a specific timestamp, using announcement_datetime as the point-in-time integrity boundary. Supports MCP Tasks for async execution when clients send task-augmented requests.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | Yes | UTC ISO-8601 timestamp or YYYY-MM-DD cutoff. Only rows with announcement_datetime <= this moment are returned. | |
| currency | Yes | 3-letter ISO currency code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| end_date | No | Optional inclusive upper bound, YYYY-MM-DD. | |
| indicator | Yes | Indicator slug for the given currency. Supported: average_hourly_earnings, balance_on_goods, balance_on_services, boc_business_outlook, breakeven_inflation_rate, broad_money, building_approvals, building_permits, business_confidence, cb_assets, cb_reserves_domestic_currency, cb_reserves_foreign_currency, cb_reserves_gold, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, consumer_expectations, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, credit_growth, current_account_balance, deposit_rates, domestic_credit, durable_goods_orders, employment, exports, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_quarterly, gold_reserves, gov_bond_10y, gov_bond_1y, gov_bond_20y, gov_bond_2y, gov_bond_30y, gov_bond_3y, gov_bond_40y, gov_bond_4y, gov_bond_5y, gov_bond_7y, government_debt, house_price_index, house_prices, household_credit, housing_starts, imports, industrial_production, inflation, inflation_expectations, inflation_linked_bond, inflation_mom, initial_jobless_claims, job_openings, kof_barometer, m1, m2, m3, money_supply_currency, money_supply_savings_deposits, money_supply_term_deposits, money_supply_transaction_deposits, monthly_cpi, mortgage_rate, nairu, nmi, non_farm_payrolls, part_time_employment, participation_rate, pce, pce_mom, pmi, policy_rate, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, ppi_mom, private_sector_credit, real_exchange_rate, retail_sales, risk_free_rate, sight_deposits, snb_balance_sheet, tankan_capex, terms_of_trade, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages. | |
| start_date | No | Optional inclusive lower bound, YYYY-MM-DD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, destructiveHint. Description adds context about announcement_datetime boundary and async task support, which is valuable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with core behavior, no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 5 parameters, description covers essential point-in-time logic and async support. Lacks details on output structure, but overall adequate for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% parameter description coverage. Description adds high-level context about as_of using announcement_datetime, but does not significantly enhance parameter understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (return), resource (macro series), and unique aspect (pint-in-time using announcement_datetime). Also distinguishes from siblings by mentioning async MCP Tasks support.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use when point-in-time knowledge is needed but does not explicitly state when to avoid or name alternatives like indicator_query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_briefing_taskMacro Briefing TaskARead-onlyInspect
Build a compact macro briefing for a currency by combining catalogue, policy rate, GDP, and release-calendar data. Supports MCP Tasks for async execution when clients send a task-augmented request.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | 3-letter ISO currency code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and destructiveHint. The description adds behavioral context by specifying the data sources combined (catalogue, policy rate, GDP, release-calendar) and the async execution capability. This provides useful transparency beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only two sentences. The first sentence delivers the primary purpose, and the second adds critical context about async support. Every sentence earns its place without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a task with one parameter and no output schema, the description provides enough context: it specifies the input currency and the data sources for the briefing. It is sufficient for an AI agent to understand the tool's function, though it could mention return format or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single parameter 'currency', including examples and case-insensitivity. The description does not add additional meaning to the parameter beyond what is already in the schema. Thus, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool builds a compact macro briefing for a currency by combining multiple data sources. It is specific about the verb 'Build' and the resource. However, it does not explicitly differentiate from sibling tools like macro_heatmap_task or macro_regime_classifier_task, which could also be related to macro briefings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that the tool supports MCP Tasks for async execution, providing context on when to use it for async requests. However, it does not provide explicit when-not-to-use guidance or alternatives among the sibling tools, leaving usage somewhat implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_heatmap_taskMacro Heatmap TaskARead-onlyInspect
Build a cross-currency macro heatmap from indicator time series and return a matrix with latest values, recent changes, and z-scores. Supports MCP Tasks for async execution when clients send task-augmented requests.
| Name | Required | Description | Default |
|---|---|---|---|
| end_date | No | Optional inclusive upper bound, YYYY-MM-DD. | |
| currencies | No | Comma-separated 3-letter currency codes (lowercase preferred). Supported values include: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| indicators | No | Comma-separated indicator slugs to include in the matrix. Supported values include: average_hourly_earnings, balance_on_goods, balance_on_services, boc_business_outlook, breakeven_inflation_rate, broad_money, building_approvals, building_permits, business_confidence, cb_assets, cb_reserves_domestic_currency, cb_reserves_foreign_currency, cb_reserves_gold, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, consumer_expectations, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, credit_growth, current_account_balance, deposit_rates, domestic_credit, durable_goods_orders, employment, exports, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_quarterly, gold_reserves, gov_bond_10y, gov_bond_1y, gov_bond_20y, gov_bond_2y, gov_bond_30y, gov_bond_3y, gov_bond_40y, gov_bond_4y, gov_bond_5y, gov_bond_7y, government_debt, house_price_index, house_prices, household_credit, housing_starts, imports, industrial_production, inflation, inflation_expectations, inflation_linked_bond, inflation_mom, initial_jobless_claims, job_openings, kof_barometer, m1, m2, m3, money_supply_currency, money_supply_savings_deposits, money_supply_term_deposits, money_supply_transaction_deposits, monthly_cpi, mortgage_rate, nairu, nmi, non_farm_payrolls, part_time_employment, participation_rate, pce, pce_mom, pmi, policy_rate, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, ppi_mom, private_sector_credit, real_exchange_rate, retail_sales, risk_free_rate, sight_deposits, snb_balance_sheet, tankan_capex, terms_of_trade, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages. | |
| start_date | No | Optional inclusive lower bound, YYYY-MM-DD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and destructiveHint, so the tool is safe. The description adds behavioral details: it returns specific matrix components (latest values, recent changes, z-scores) and supports async execution via MCP Tasks. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first states the core action and output, the second adds an important execution detail. Every sentence carries value, and the description is front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that all parameters are optional and well-documented in the schema, the description sufficiently explains the output and async behavior. It could mention details on date range combination or z-score calculation, but overall it is complete enough for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all parameters described in the input schema. The description does not add additional 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: building a cross-currency macro heatmap from indicator time series, returning a matrix with latest values, recent changes, and z-scores. It distinguishes from sibling tools by specifying the unique heatmap output and async execution via MCP Tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a heatmap is needed and mentions MCP Tasks for async execution, but does not explicitly state when to use this tool versus alternatives or provide exclusion criteria. Usage context is clear but lacks guidance on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_regime_classifier_taskMacro Regime Classifier TaskARead-onlyInspect
Classify a currency's macro regime using policy rate, inflation, GDP, and unemployment context, with explicit assumptions and confidence notes. Supports MCP Tasks for async execution when clients send task-augmented requests.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | 3-letter ISO currency code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| end_date | No | Optional inclusive upper bound, YYYY-MM-DD. | |
| start_date | No | Optional inclusive lower bound, YYYY-MM-DD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, and open-world. The description adds that results include 'explicit assumptions and confidence notes', and explains it supports MCP Tasks for async execution, which is useful behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary purpose, no redundant words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description covers the main action and mentions output characteristics (assumptions, confidence notes). However, it lacks details on the exact return format or how the classification is presented, which is notable given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented. The description does not add new meaning to parameters beyond the schema, but it provides context about the data used (policy rate, inflation, GDP, unemployment) which indirectly aids understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: classify a currency's macro regime using specific economic context. It also mentions async execution, distinguishing it from non-task tools among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus siblings like macro_heatmap_task or indicator_intel_task. The async nature is implied but no alternatives or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_research_pack_taskMacro Research Pack TaskARead-onlyInspect
Bundle catalogue, indicator history, next release timing, and optional FX pair context into one persistent-host-friendly research payload. Supports MCP Tasks for async execution when clients send task-augmented requests.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Optional FX base currency for pair context. | |
| quote | No | Optional FX quote currency for pair context. | |
| currency | Yes | 3-letter ISO currency code. Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| end_date | No | Optional inclusive upper bound, YYYY-MM-DD. | |
| indicator | Yes | Indicator slug. Supported: average_hourly_earnings, balance_on_goods, balance_on_services, boc_business_outlook, breakeven_inflation_rate, broad_money, building_approvals, building_permits, business_confidence, cb_assets, cb_reserves_domestic_currency, cb_reserves_foreign_currency, cb_reserves_gold, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, consumer_expectations, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, credit_growth, current_account_balance, deposit_rates, domestic_credit, durable_goods_orders, employment, exports, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_quarterly, gold_reserves, gov_bond_10y, gov_bond_1y, gov_bond_20y, gov_bond_2y, gov_bond_30y, gov_bond_3y, gov_bond_40y, gov_bond_4y, gov_bond_5y, gov_bond_7y, government_debt, house_price_index, house_prices, household_credit, housing_starts, imports, industrial_production, inflation, inflation_expectations, inflation_linked_bond, inflation_mom, initial_jobless_claims, job_openings, kof_barometer, m1, m2, m3, money_supply_currency, money_supply_savings_deposits, money_supply_term_deposits, money_supply_transaction_deposits, monthly_cpi, mortgage_rate, nairu, nmi, non_farm_payrolls, part_time_employment, participation_rate, pce, pce_mom, pmi, policy_rate, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, ppi_mom, private_sector_credit, real_exchange_rate, retail_sales, risk_free_rate, sight_deposits, snb_balance_sheet, tankan_capex, terms_of_trade, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages. | |
| start_date | No | Optional inclusive lower bound, YYYY-MM-DD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and destructiveHint. The description adds 'persistent-host-friendly' and async task support, but does not detail rate limits, authentication, or what the payload contains. Some added value but limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose. No redundant information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions the components of the payload but does not describe the output structure or return format. Given no output schema, the description is incomplete about what the agent can expect. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 6 parameters. The description adds no extra meaning beyond stating 'optional FX pair context' for base/quote. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool bundles catalogue, indicator history, next release timing, and FX pair context into one payload. It distinguishes from siblings like indicator_query or release_calendar by being a composite, task-aware tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for getting a bundled research pack via MCP Tasks but does not explicitly state when to use alternatives or when not to use it. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_war_room_taskMacro War Room TaskARead-onlyInspect
Build a multi-panel macro market cockpit that combines FX sessions, upcoming release queue, pair context, and generated risk alerts. Supports MCP Tasks for async execution when clients send task-augmented requests.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Base currency for pair context, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | eur |
| quote | No | Quote currency for pair context, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | usd |
| currency | No | Release currency used for queue and spotlight indicator. Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | usd |
| end_date | No | Optional inclusive upper bound, YYYY-MM-DD. | |
| indicator | No | Spotlight indicator slug for release context. Supported examples: average_hourly_earnings, balance_on_goods, balance_on_services, boc_business_outlook, breakeven_inflation_rate, broad_money, building_approvals, building_permits, business_confidence, cb_assets, cb_reserves_domestic_currency, cb_reserves_foreign_currency, cb_reserves_gold, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, consumer_expectations, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, credit_growth, current_account_balance, deposit_rates, domestic_credit, durable_goods_orders, employment, exports, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_quarterly, gold_reserves, gov_bond_10y, gov_bond_1y, gov_bond_20y, gov_bond_2y, gov_bond_30y, gov_bond_3y, gov_bond_40y, gov_bond_4y, gov_bond_5y, gov_bond_7y, government_debt, house_price_index, house_prices, household_credit, housing_starts, imports, industrial_production, inflation, inflation_expectations, inflation_linked_bond, inflation_mom, initial_jobless_claims, job_openings, kof_barometer, m1, m2, m3, money_supply_currency, money_supply_savings_deposits, money_supply_term_deposits, money_supply_transaction_deposits, monthly_cpi, mortgage_rate, nairu, nmi, non_farm_payrolls, part_time_employment, participation_rate, pce, pce_mom, pmi, policy_rate, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, ppi_mom, private_sector_credit, real_exchange_rate, retail_sales, risk_free_rate, sight_deposits, snb_balance_sheet, tankan_capex, terms_of_trade, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages. | inflation |
| start_date | No | Optional inclusive lower bound, YYYY-MM-DD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false. The description adds value by explaining the tool builds a multi-panel cockpit and supports async execution, which is consistent with the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no surplus information. The first sentence front-loads the core purpose, and the second adds critical usage context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (6 parameters, no output schema), the description covers the main purpose and async capability. It could be more complete by hinting at the returned artifact or how parameters affect the output, but it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description does not need to add parameter details. It adds no new meaning beyond what's in the schema, hence baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb 'Build' and a specific resource 'multi-panel macro market cockpit' that combines FX sessions, release queue, pair context, and risk alerts. This distinguishes it from sibling tools like 'forex_visual_artifact' or 'release_calendar' which are single-purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use this tool ('Supports MCP Tasks for async execution') but does not explicitly state when not to use it or provide alternative tools. The context is clear for async dashboard building.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_sessionsFX Market SessionsARead-onlyInspect
Tell the user which FX trading sessions are currently open (Sydney, Tokyo, London, New York) and when the next session opens/closes. Use this when the user asks 'is the market open?', 'when does London open?', or 'which sessions overlap right now?'. Pass an ISO-8601 UTC timestamp via at to get the snapshot for a specific moment instead of now. Accounts for weekends and major banking holidays.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | Optional ISO-8601 UTC timestamp; defaults to now. Use to snapshot session state at a specific moment. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds valuable context about accounting for weekends and holidays, and explains the optional timestamp parameter for specific moments.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with key information front-loaded. No wasted words; parameter explanation is integrated naturally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 are provided, the description covers purpose, usage, parameter details, and behavioral nuances (weekends/holidays). It is complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both description and schema explain the 'at' parameter's purpose and format. The description adds context for its use case beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool tells which FX sessions are open and when next opens/closes. The verb 'tell' and resource 'FX trading sessions' are specific. It does not explicitly distinguish from the sibling 'forex' tool, but the purpose is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance with example user questions. Does not mention when not to use or suggest alternatives, but covers common use cases well.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
official_dataset_familyOfficial Dataset FamilyARead-onlyInspect
Get metadata-first official dataset payloads grouped by API endpoint type. Use endpoint_type to pick the API taxonomy group and dataset to choose the specific series family. Supported endpoint types: monetary_policy, fiscal_policy, international_trade, statistics_releases. Supported datasets: auction_metrics, bop, capital_flows, cb_liquidity, credit_conditions, external_debt, fx_intervention, iip, services_trade, treasury_cash, wage_settlements.
| Name | Required | Description | Default |
|---|---|---|---|
| dataset | Yes | Dataset slug within the selected endpoint_type. Supported: auction_metrics, bop, capital_flows, cb_liquidity, credit_conditions, external_debt, fx_intervention, iip, services_trade, treasury_cash, wage_settlements. | |
| currency | Yes | 3-letter ISO currency code (case-insensitive). | |
| component | No | Required only when dataset='bop'. Supported bop components: goods_balance, services_balance, primary_income, secondary_income, current_account, capital_account, financial_account. | |
| endpoint_type | Yes | Endpoint taxonomy group from the API structure. Supported: monetary_policy, fiscal_policy, international_trade, statistics_releases. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds useful behavioral context (metadata-first, grouped by endpoint type) and lists supported values, which aids understanding of the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a list of supported values, front-loaded with the primary purpose. Every sentence adds necessary context without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the main selection logic, it does not mention the 'component' parameter, which is conditionally required for the bop dataset. The schema covers this, but for complete context, the description should note this dependency. Output schema exists, so return values are not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, giving a baseline of 3. The description adds value by explaining the role of endpoint_type and dataset in selecting the series family, and lists supported values, which goes beyond the schema's individual parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose (Get metadata-first official dataset payloads grouped by API endpoint type) with a specific verb and resource. It distinguishes itself from siblings by focusing on 'official dataset families' but does not explicitly contrast with any sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to use the tool by selecting endpoint_type and dataset, and lists supported values. However, it provides no guidance on when not to use this tool or mention of alternative tools for similar data retrieval (e.g., data_catalogue).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pair_intel_taskFX Pair Intelligence TaskARead-onlyInspect
Build an intelligence pack for an FX pair by combining policy-rate spread context, spot-rate context, and release-timing metadata. Supports MCP Tasks for async execution when clients send task-augmented requests.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base currency, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| quote | Yes | Quote currency, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| end_date | No | Inclusive upper bound, YYYY-MM-DD. | |
| start_date | No | Inclusive lower bound, YYYY-MM-DD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, and destructiveHint. The description adds context about async execution but does not explain behavioral traits like rate limits, persistence, or side effects. The term 'build' could be interpreted as creating a new entity, but the readOnlyHint suggests no state change; this is a minor ambiguity but not a contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundant information. The first sentence covers the core purpose, and the second adds a key implementation detail. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Parameters are fully documented in the schema, but there is no output schema. The description mentions the three context types that go into the intelligence pack but does not describe the output format or fields, which would help the agent understand what to expect from the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% parameter description coverage, so the schema already explains all four parameters. The description summarizes the tool's purpose but does not add per-parameter guidance beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'build' and resource 'intelligence pack for an FX pair', listing three components (policy-rate spread context, spot-rate context, release-timing metadata). It distinguishes from sibling tools like indicator_intel_task or macro_briefing_task by specifying FX pair focus and async execution via MCP Tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions support for MCP Tasks and async execution, implying a specific usage scenario, but does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites. Given the many sibling tools, clearer guidance would improve the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingPingARead-onlyInspect
Quick health check that confirms the FXMacroData API and MCP server are reachable. Use this only if other tools fail unexpectedly — it is not needed before normal calls.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. Description adds quick health check context and reaffirms non-destructive nature. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose. Every sentence adds value; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, annotations present, and output schema exists, the description fully covers the tool's role and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; schema coverage is 100%. The description does not need to add param semantics. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Quick health check' specifies action, and 'confirms the FXMacroData API and MCP server are reachable' identifies the resource. Distinguishes from sibling tools by being a connectivity test.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use this only if other tools fail unexpectedly — it is not needed before normal calls.' Provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
policy_rate_differential_visual_artifactPolicy-Rate Differential Visual ArtifactARead-onlyInspect
Build a two-series chart comparing base and quote policy-rate history to visualize the rate differential setup for an FX pair.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base currency, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| quote | Yes | Quote currency, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| end_date | No | Inclusive upper bound, YYYY-MM-DD. | |
| start_date | No | Inclusive lower bound, YYYY-MM-DD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool builds a chart and focuses on policy-rate history, which provides some behavioral context beyond annotations, but does not detail data sources, output format, or potential constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, and front-loaded with the core action. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should ideally clarify the return format (e.g., image URL). However, the tool's purpose is clear, and the parameter set is simple. Adequate but could be more complete regarding output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents parameters fully. The description adds no additional meaning beyond what the schema provides, warranting a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it builds a two-series chart comparing base and quote policy-rate history. The term 'policy-rate differential' distinguishes it from sibling visual artifacts like 'forex_visual_artifact' or 'commodities_visual_artifact'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for visualizing rate differential setup for an FX pair but does not explicitly mention when to use this tool versus alternatives, nor does it provide exclusions or context on prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
policy_scenario_modeler_taskPolicy Scenario Modeler TaskARead-onlyInspect
Run a policy-rate spread what-if scenario for an FX pair and estimate directional spot impact using an explicit heuristic elasticity assumption. Supports MCP Tasks for async execution when clients send task-augmented requests.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base currency, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| quote | Yes | Quote currency, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| end_date | No | Optional inclusive upper bound, YYYY-MM-DD. | |
| shock_bps | No | Policy shock size in basis points (100 bps = 1.00 percentage point). | |
| shock_leg | No | Which leg receives the policy shock: base or quote. | base |
| start_date | No | Optional inclusive lower bound, YYYY-MM-DD. | |
| policy_shock_bps | No | Optional alias for shock_bps for compatibility with host-side app payloads. | |
| elasticity_per_100bps | No | Heuristic percent change in FX spot for a 100 bps spread change. Used as a scenario assumption, not a forecast guarantee. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool runs a what-if scenario with heuristic assumptions and supports async execution, providing useful behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences cover the core purpose and async capability with zero waste. Front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with no output schema and no nested objects, the description adequately covers the scenario modeling purpose and async execution. It could mention output format or return type, but this is partially mitigated by the annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for each parameter (e.g., ISO code lists, default values, aliases). The description does not add meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs a policy-rate spread what-if scenario for an FX pair and estimates directional spot impact using a heuristic elasticity assumption. It also mentions async execution via MCP Tasks. This distinguishes it from sibling tools like fx_backtest_task or event_impact_replay_task which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for policy rate spread scenarios and notes async execution support but lacks explicit guidance on when to use this tool versus alternatives like pair_intel_task or quant_scenario_lab_task. No when-not or comparator context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
portfolio_risk_engine_taskPortfolio Risk Engine TaskARead-onlyInspect
Analyze a multi-position FX book for concentration, stress exposure, and event-driven catalyst risk. Supports MCP Tasks for async execution when clients send task-augmented requests.
| Name | Required | Description | Default |
|---|---|---|---|
| horizon_events | No | Maximum release events to consider per currency leg. | |
| positions_json | Yes | JSON array of FX positions. Each item should include base, quote, side (long/short), and notional. Example: [{"base":"eur","quote":"usd","side":"long","notional":100000}] | |
| stress_shock_pct | No | Stress shock in percent applied to each pair. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, openWorldHint=true, and destructiveHint=false, which the description complements by stating the tool analyzes risk and supports async tasks. It provides behavioral context beyond annotations (e.g., async execution), but does not detail what 'event-driven catalyst risk' entails or the output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with purpose. Every sentence adds value. Highly concise for a tool with 3 parameters and no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description could mention the output format (e.g., 'returns a risk report'). It also lacks guidance on when to use this tool vs. similar sibling tasks. Adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter having a description and examples. The tool description does not add meaning beyond the schema; it only provides high-level context. Baseline 3 is appropriate as the schema already handles parameter semantics adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Analyze a multi-position FX book for concentration, stress exposure, and event-driven catalyst risk.' The verb 'Analyze' and the specific resource 'multi-position FX book' precisely define its function, distinguishing it from sibling tools that handle data retrieval or other analyses.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Supports MCP Tasks for async execution when clients send task-augmented requests,' which provides invocation context but does not explicitly guide when to use this tool over alternatives like fx_backtest_task or macro_briefing_task. No exclusions or comparative guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quant_scenario_lab_taskQuant Scenario Lab TaskARead-onlyInspect
Run an expanded quant-style policy scenario for an FX pair with deterministic projection, stress percentiles, and horizon assumptions. Supports MCP Tasks for async execution when clients send task-augmented requests.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base currency, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| quote | Yes | Quote currency, 3-letter ISO code (case-insensitive). Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| end_date | No | Optional inclusive upper bound, YYYY-MM-DD. | |
| shock_bps | No | Policy shock size in basis points (100 bps = 1.00 percentage point). | |
| shock_leg | No | Which leg receives the policy shock: base or quote. | base |
| start_date | No | Optional inclusive lower bound, YYYY-MM-DD. | |
| horizon_days | No | Scenario horizon in calendar days. | |
| elasticity_per_100bps | No | Heuristic percent FX move per 100 bps spread change. | |
| annualized_volatility_pct | No | Annualized volatility assumption (percent) for stress-band construction. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=true and destructiveHint=false. The description adds that the tool supports async execution via MCP Tasks, which is behavioral context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first delivers the core purpose, the second adds an important note on async support. No wasted words, front-loaded with key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While schema is fully described and annotations cover safety, the description omits what the output looks like (e.g., projection values, stress percentiles). For a 9-parameter tool, more detail on results would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description mentions parameters only generically (e.g., FX pair, horizon, shock), adding no additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it runs an expanded quant-style policy scenario for an FX pair, specifying deterministic projection, stress percentiles, and horizon assumptions. It also notes MCP Tasks for async execution, distinguishing it from similar tools like policy_scenario_modeler_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to use this tool versus alternatives like policy_scenario_modeler_task or other scenario tools. The description lacks explicit context on prerequisites or decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_calendarRelease CalendarARead-onlyInspect
Get upcoming scheduled macroeconomic release timestamps for a currency. Use this when the user asks 'when is the next CPI/GDP/payrolls/policy decision', or to plan a trade around a known release. Returns ISO-8601 announcement_datetime values in UTC; each row has a release string with the indicator name and a currency code. Pass an optional indicator filter to narrow to a single series. Supported currencies: AED, ARS, AUD, BOB, BRL, CAD, CHF, CLP, CNH, CNY, COMM, COP, CZK, DKK, DZD, EGP, EUR, GBP, HKD, HUF, IDR, ILS, INR, JPY, KRW, MAD, MXN, MYR, NGN, NOK, NZD, PEN, PHP, PKR, PLN, RUB, SAR, SEK, SGD, THB, TRY, TWD, USD, UYU, VND, ZAR. Supported indicators: average_hourly_earnings, balance_on_goods, balance_on_services, boc_business_outlook, breakeven_inflation_rate, broad_money, building_approvals, building_permits, business_confidence, cb_assets, cb_reserves_domestic_currency, cb_reserves_foreign_currency, cb_reserves_gold, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, consumer_expectations, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, credit_growth, current_account_balance, deposit_rates, domestic_credit, durable_goods_orders, employment, exports, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_quarterly, gold_reserves, gov_bond_10y, gov_bond_1y, gov_bond_20y, gov_bond_2y, gov_bond_30y, gov_bond_3y, gov_bond_40y, gov_bond_4y, gov_bond_5y, gov_bond_7y, government_debt, house_price_index, house_prices, household_credit, housing_starts, imports, industrial_production, inflation, inflation_expectations, inflation_linked_bond, inflation_mom, initial_jobless_claims, job_openings, kof_barometer, m1, m2, m3, money_supply_currency, money_supply_savings_deposits, money_supply_term_deposits, money_supply_transaction_deposits, monthly_cpi, mortgage_rate, nairu, nmi, non_farm_payrolls, part_time_employment, participation_rate, pce, pce_mom, pmi, policy_rate, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, ppi_mom, private_sector_credit, real_exchange_rate, retail_sales, risk_free_rate, sight_deposits, snb_balance_sheet, tankan_capex, terms_of_trade, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages.
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | 3-letter ISO currency code (case-insensitive). Supported: AED, ARS, AUD, BOB, BRL, CAD, CHF, CLP, CNH, CNY, COMM, COP, CZK, DKK, DZD, EGP, EUR, GBP, HKD, HUF, IDR, ILS, INR, JPY, KRW, MAD, MXN, MYR, NGN, NOK, NZD, PEN, PHP, PKR, PLN, RUB, SAR, SEK, SGD, THB, TRY, TWD, USD, UYU, VND, ZAR. | |
| indicator | No | Optional indicator slug to narrow results. Supported: average_hourly_earnings, balance_on_goods, balance_on_services, boc_business_outlook, breakeven_inflation_rate, broad_money, building_approvals, building_permits, business_confidence, cb_assets, cb_reserves_domestic_currency, cb_reserves_foreign_currency, cb_reserves_gold, commodity_price_energy, commodity_price_ex_energy, commodity_price_index, commodity_prices, consumer_confidence, consumer_expectations, core_inflation, core_inflation_median, core_inflation_mom, core_inflation_trim, core_pce, credit_growth, current_account_balance, deposit_rates, domestic_credit, durable_goods_orders, employment, exports, foreign_reserves, full_time_employment, fx_reserves, gdp, gdp_quarterly, gold_reserves, gov_bond_10y, gov_bond_1y, gov_bond_20y, gov_bond_2y, gov_bond_30y, gov_bond_3y, gov_bond_40y, gov_bond_4y, gov_bond_5y, gov_bond_7y, government_debt, house_price_index, house_prices, household_credit, housing_starts, imports, industrial_production, inflation, inflation_expectations, inflation_linked_bond, inflation_mom, initial_jobless_claims, job_openings, kof_barometer, m1, m2, m3, money_supply_currency, money_supply_savings_deposits, money_supply_term_deposits, money_supply_transaction_deposits, monthly_cpi, mortgage_rate, nairu, nmi, non_farm_payrolls, part_time_employment, participation_rate, pce, pce_mom, pmi, policy_rate, policy_rate_mlf, policy_rate_mro, policy_rate_target_lower, ppi, ppi_mom, private_sector_credit, real_exchange_rate, retail_sales, risk_free_rate, sight_deposits, snb_balance_sheet, tankan_capex, terms_of_trade, trade_balance, trade_weighted_index, trimmed_mean_inflation, unemployment, wage_price_index, wages. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true and destructiveHint=false, so the tool is safe. The description adds value by explaining that it returns 'upcoming scheduled timestamps' in ISO-8601 UTC format, and that each row has a release string and currency code. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and use cases, followed by output format and parameter details. It is well-structured but somewhat lengthy due to full lists of currencies and indicators; however, this is justified for clarity. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (as indicated in context signals), the description does not need to elaborate on return values. It covers purpose, usage, parameters, supported values, and output format. The tool is a simple retrieval of release timestamps, and the description provides all necessary information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters documented. The description adds context about the purpose of the currency parameter and the optional indicator filter, and lists supported values. However, since the schema already provides detailed descriptions, the additional value is marginal, making a baseline score of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get upcoming scheduled macroeconomic release timestamps for a currency.' It provides specific use case examples like 'when the user asks 'when is the next CPI/GDP/payrolls/policy decision''. However, it does not explicitly differentiate from sibling tools such as indicator_query or macro_briefing_task, which might also involve macroeconomic data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'Use this when the user asks... or to plan a trade'. It outlines the output format and filter options, but does not specify when not to use this tool or mention alternative tools for different scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_risk_score_taskRelease Risk Score TaskARead-onlyInspect
Score upcoming releases for a currency pair using release-calendar proximity and indicator-level heuristics. Supports MCP Tasks for async execution when clients send task-augmented requests.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base currency, 3-letter ISO code. Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| quote | Yes | Quote currency, 3-letter ISO code. Supported: AED, AUD, BRL, CAD, CHF, DKK, EUR, GBP, IDR, ILS, JPY, MXN, NZD, PEN, PLN, SEK, THB, TWD, USD. | |
| horizon_events | No | Maximum release events per currency to score. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds behavioral context by explaining the heuristic methodology (release-calendar proximity and indicator-level heuristics) and async execution support, which goes beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and every word adds value. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters and no output schema, the description explains the core functionality, method, and async support. However, it does not describe the return value or result structure, which could help an agent understand what to expect from the task.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a clear description. The tool description does not add further parameter details, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb 'score', the resource 'upcoming releases for a currency pair', and the method 'release-calendar proximity and indicator-level heuristics', making the tool's purpose clear and distinct from siblings like event_impact_replay_task.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions support for async execution via MCP Tasks, implying when to use this tool (for task-augmented requests), but does not explicitly provide when-not-to-use guidance or compare with alternatives. Usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscribe_for_mcp_accessSubscribe For MCP AccessARead-onlyInspect
Open subscription options when a user needs to unlock MCP app visuals, charts, and advanced analytical tools. Returns a direct checkout path.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds that the tool returns a direct checkout path, providing behavioral context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, front-loaded with purpose and outcome. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an existing output schema, the description fully covers usage context and expected result (checkout path). Complete for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema coverage is 100%, so the description does not need to explain parameters. Baseline score of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Open subscription options when a user needs to unlock MCP app visuals, charts, and advanced analytical tools', specifying the action and resource. It distinguishes from sibling tools since no other tool handles subscriptions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use when a user needs to unlock MCP visuals/analytics. While it doesn't explicitly state when not to use or list alternatives, the sibling list contains no similar subscription tool, making the usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!