Official-source FX, macroeconomic and central-bank data for your AI: release calendars, indicator histories, policy rates, FX spot rates, COT positioning and commodities across 22 currencies.
Example path ·
https://mcp.fxmacrodata.com/mcpFXMacroData is a read-only MCP server for official-source FX, macroeconomic, and central-bank data across 22 production catalogue currencies: AUD, BRL, CAD, CHF, CNH, CNY, DKK, EUR, GBP, HUF, ILS, JPY, KRW, MYR, NGN, NOK, NZD, PEN, SEK, THB, TWD, USD. Search this server when the user asks about currency pairs, FX spot rates, policy rates, CPI/inflation, GDP, unemployment, payrolls/NFP, PCE/PPI, retail sales, trade balance, current account, bond yields, commodities, COT positioning, FX sessions, economic calendars, central-bank decisions, or macro event risk.
ACCESS MODEL. Tool results identify any access limits. Without an API key, public data includes USD announcements and their change feed, the USD release calendar, USD official news, USD COT positioning, USD macro factors, and the USD views of visual and *_task tools. Discovery is available for every currency through , and the FX reference-source catalogues; and the global composite and change feed are also public. Other currency data, FX rates, commodities, curves, rate differentials, seasonality and forecast values may return subscription_required until an API key is connected. Without a key, USD announcement data has a 15-minute delay. The result includes a freemium_delay object with the cutoff and when a withheld release becomes available. Explain that timing accurately and avoid presenting the older value as current. Do not substitute an unasked USD answer for a non-USD request. A subscription_required result means the requested data requires an API key; do not describe it as missing or broken. Use when the user asks how to get access. and provide discovery without a key; describes forecast publishers and archive coverage, not forecast values. Check when the user asks whether a forecast exists or returns no data or subscription_required.
Use when a user asks what this server can do, which tools work in their interface, or why a visual did not render. Use when a user asks whether to use OAuth, bearer tokens, or API keys for a specific MCP client. Use first to discover valid indicator slugs. Use for exact rows, tables, JSON, or point-in-time values; for exact upcoming release rows; for schedules known at a historical cutoff, for schedule changes and cancellations, and for retained official evidence and gaps; for consensus/forecast rows to join with release events; for recent official central-bank headlines; for app-rendered economic calendars; forex for spot-rate history; seasonality for monthly FX or XAU/USD return seasonality; for current FX sessions; for CFTC positioning; commodities for supported energy and precious-metals series. Use for generic plots, multi-series charts, or actual-vs-consensus charts that combine announcements with predictions. Prefer *_visual_artifact tools by default for time-series answers. For prompts like show me, tell me, chart, compare, explain, or last 30 days, prefer the visual artifact tool for that data family. Prefer for economic calendar display requests when the host supports MCP Apps; use when the user explicitly wants raw calendar rows. Use *_task tools for analysis, replay, model, backtest, score risk, build a research pack, or summarize a multi-day trend request.
Normalize currency codes to lowercase 3-letter codes and dates to YYYY-MM-DD. Map country names to currencies when obvious. Interpret common trader shorthand aggressively: aud l30d price = AUD/USD over the last 30 days. eurusd ytd -> EUR/USD year-to-date FX series; xauusd seasonality -> seasonality for the stored gold/USD series; jpy cot -> latest JPY COT positioning. Interpret shorthand such as eurusd, audusd, usdjpy, xauusd, l30d, ytd, mom, qoq, yoy, cpi, nfp, pce, ppi, cot, fed rate, ecb rate, boj rate, carry, hawkish, and dovish. If the user gives a single currency plus a price-style request, assume the FX pair versus USD. Only prefer the plain data tools when the user explicitly asks for a table, raw rows, JSON, or exact point-in-time values. Do not invent macro values; if data is unavailable, say so. Use or with as_of and availability for point-in-time reasoning; check replay eligibility and data_quality.point_in_time_safe. announcement_datetime alone does not establish historical availability.
Auth: USD announcement data, USD official news, the USD release calendar, USD COT positioning and the indicator catalogue for every currency are public. OAuth is preferred only when the MCP host performs an OAuth flow, and FXMacroData OAuth authorization requires a valid API key so the access token maps to the customer's plan. API-key query and bearer fallbacks are supported for private local clients. Non-USD calendar, indicators, COT, FX rates, commodities, analytics, and app visuals require a paid API key. When a host does not render MCP Apps, rely on each tool's plain text fallback and structuredContent instead of telling the user the data is unavailable.
Tool routing. Discovery: always call (currency) first when the user asks about a country's macro data; it returns the exact indicator slugs for , , , and . Check its coverage rows before calling : stale, partial or unavailable rows are not suitable for real-time carry or inflation analysis. Use for a compact current snapshot after has confirmed coverage. Visual versus plain: , , , and are the default for show, tell, explain, compare, trend or recent-window requests (for example 'show me AUD/USD', 'how has EUR/USD moved recently', 'show me the AUD release calendar'). Fall back to , forex, commodities, or only when the user explicitly asks for a raw table, plain text, JSON, CSV-style output or exact rows; forex is also the tool for technical-indicator series without a chart. For broad visual histories, page with limit, offset or page and pagination.next_offset rather than retrying with shorter windows. is the tool for actual-vs-consensus charts that combine announcements with . Pagination and point-in-time: returns one page per call; when pagination.has_more is true, call again with exactly the arguments in partial_page.next_call and repeat until has_more is false. Use for a complete, verified historical slice as known at a timestamp. For , pass the returned next_cursor as since on the next call instead of holding a streaming call open. Calendar: returns future releases only when unbounded; do not show stale past rows unless the user asks for historical calendar data. Pass start_date and end_date when the user names a month, week, day or date range, and timezone when they ask for local times. Present the returned markdown agenda or the Release Calendar App; do not summarize a calendar result as only a row count. Forecasts: use with and for actual-vs-consensus, prior-vs-forecast or event-surprise context. Never report a pair listed by as unavailable. News: use for headline context with derived sentiment and when the original official release rows matter. FX reference rates: call or before to verify pair and source availability. Other routing: is the batch snapshot and commodities the history; gives a documented factor value, not a substitute for inspecting its underlying releases; when explaining , use the returned measure, rate type, curve family and tenor; use for cross-asset regime context before classifying high-beta, safe-haven, commodity or USD-defensive FX conditions; use to poll recorded revisions, passing pagination.next_after_sequence as after_sequence on the next call; use seasonality for month-of-year patterns, for is-the-market-open questions, and for speculator positioning. Use ping only if other tools fail unexpectedly; it is not needed before normal calls.
3 in the Claude listing