FX Macrodata MCP Server
Submission-ready long-form publish copy for Anthropic MCP catalog review.
Description
FX Macrodata MCP provides read-only tools for macroeconomic indicators and FX spot rates across USD, AUD, EUR, GBP, CHF, JPY, NZD, and CAD. It is designed for analyst workflows in Claude and other MCP-compatible clients, with normalized output schemas and consistent indicator metadata.
Features
- Read-only macroeconomic time-series queries by currency and indicator.
- FX spot rate history between currency pairs.
- Release calendar queries for upcoming indicator announcements.
- Indicator catalogue discovery by currency.
- OAuth 2.0 authorization code flow with PKCE support for authenticated usage.
- Streamable HTTP MCP transport for remote connector compatibility.
Server Details
- MCP base URL: https://fxmacrodata.com/api/mcp
- OAuth authorization endpoint: https://fxmacrodata.com/api/oauth/authorize
- OAuth token endpoint: https://fxmacrodata.com/api/oauth/token
- OAuth metadata endpoint: https://fxmacrodata.com/api/.well-known/oauth-authorization-server
- Transport: Streamable HTTP
- Security: HTTPS/TLS
Anthropic Compliance References
Catalog Submission Readiness (Cross-Catalog)
This section is designed for submission to multiple MCP catalogs, marketplaces, and connector directories.
- Service ownership: FX Macro Data controls and operates the published MCP endpoints and connected APIs.
- Public HTTPS endpoints: All production endpoints are publicly reachable over TLS.
- Authentication model: OAuth 2.0 authorization code + PKCE for authenticated access; read-only access behavior is documented.
- Tool safety metadata: All tools are annotated as read-only where applicable.
- Support channel: support@fxmacrodata.com with website support route.
- Privacy and terms: Public privacy policy and terms URLs are published and stable.
- Error transparency: Structured error envelopes and clear status codes are returned.
- Operational testing: Health, initialize, metadata, and tools/list checks are documented below.
Compatibility Notes
- Primary transport is Streamable HTTP.
- Remote connector flows are designed for Claude Web and Claude Desktop.
- If infrastructure uses strict firewall rules, allowlist current Anthropic outbound IP ranges for hosted connector traffic.
- If relying only on IP allowlisting (without OAuth), Claude Code compatibility may be limited.
Authentication and Authorization Model
- Primary model: OAuth 2.0 authorization code with PKCE.
- Scopes: fxmacrodata.read.
- Bearer transport: MCP supports Authorization: Bearer <access_token>.
- Entitlements: USD indicators are public; non-USD indicators require professional access.
- Session invalidation guidance: return 401 for invalid/expired auth contexts.
Rate Limits, Timeouts, and Payload Guidance
- Clients should keep tool requests bounded by date range to reduce payload size and latency.
- For long horizons, prefer segmented requests (for example, yearly windows) rather than single large queries.
- Use filters (currency, indicator, start/end date) to keep responses token-efficient.
- Server-side caching is enabled for hot-path API calls to reduce repeated upstream fetches.
Data Handling and Privacy
- The service is designed for macroeconomic and FX data retrieval only.
- Tool input should include only the minimum context needed for the requested data query.
- No tool is designed to read prior chat history or hidden model memory.
- No tool performs financial transactions or side-effecting account operations.
- Official policy links: Privacy Policy and Terms.
Security and Vulnerability Reporting
- Security contact: support@fxmacrodata.com (include “Security” in subject line).
- All production traffic is HTTPS/TLS only.
- If firewall controls are enabled, allowlist current platform IP ranges as required by target catalog guidance.
- Use least-privilege credentials for all reviewer/test accounts.
Reviewer Test Account and QA Access
For catalogs that require authenticated QA, provide a dedicated reviewer account with representative sample access.
- Test credentials are provisioned for reviewers during submission.
- Account includes access required to exercise all listed tools.
- Sample scenarios used in review are covered by the Usage Examples section.
- If secure credential delivery is required, share via approved secure channel in the submission process.
Versioning and Change Management
- MCP server reports a version in serverInfo.version during initialize.
- Backward-compatible updates are preferred; breaking changes should be announced before rollout.
- Operational validation (health + initialize + tools/list + OAuth metadata) should be rerun after each deployment.
Catalog-Specific Notes
- Anthropic: Streamable HTTP and tool safety annotations are implemented; callback allowlist values are documented above.
- Other catalogs/clients: Use the same base MCP endpoint and OAuth metadata endpoint unless the platform requires alternate onboarding fields.
- Where catalogs request additional compliance artifacts (DPA, security questionnaire, SLA), provide links or documents during submission.
Tool Catalog
1) ping
Health check for service readiness.
Input: none
Output: service status payload
Safety: readOnlyHint=true, destructiveHint=false
2) data_catalogue
Returns available indicators and metadata for a currency.
Input: currency
Output: {currency, catalogue}
Safety: readOnlyHint=true, destructiveHint=false
3) release_calendar
Returns upcoming release timestamps with optional indicator filtering.
Input: currency, optional indicator
Output: {currency, indicator, data[]} with announcement_datetime and release
Safety: readOnlyHint=true, destructiveHint=false
4) forex
Returns historical FX spot rates between two currencies.
Input: base, quote, optional start_date, optional end_date
Output: {base, quote, start_date, end_date, data[]}
Safety: readOnlyHint=true, destructiveHint=false
5) indicator_query
Returns macroeconomic indicator time series for a currency.
Input: currency, indicator, optional start_date, optional end_date
Output: {currency, indicator, start_date, end_date, data[]} where each row uses {date, val, announcement_datetime}
Safety: readOnlyHint=true, destructiveHint=false
Authentication
OAuth 2.0
This server supports OAuth 2.0 authorization code flow with PKCE.
Supported callback URLs to allowlist:
- http://localhost:6274/oauth/callback
- http://localhost:6274/oauth/callback/debug
- https://claude.ai/api/mcp/auth_callback
- https://claude.com/api/mcp/auth_callback
Access behavior
- USD indicator queries are public.
- Non-USD indicator queries require professional access.
Discovery behavior
- OAuth metadata is published at /api/.well-known/oauth-authorization-server (issuer path includes /api).
- Metadata should return public HTTPS issuer and endpoint URLs under https://fxmacrodata.com/api.
Setup
- Open your MCP-capable client and add a remote MCP server.
- Use the server URL: https://fxmacrodata.com/api/mcp.
- Complete OAuth sign-in when prompted.
- Start with ping, then run data_catalogue and indicator_query.
Usage Examples
Example 1 — USD inflation time series
User prompt: “Get USD inflation data from 2024-01-01 to 2025-01-01”
Calls: indicator_query(currency="usd", indicator="inflation", start_date="2024-01-01", end_date="2025-01-01")
Example 2 — AUD catalogue discovery
User prompt: “What AUD indicators are available?”
Calls: data_catalogue(currency="aud")
Example 3 — USD release calendar filter
User prompt: “Show upcoming USD GDP release dates”
Calls: release_calendar(currency="usd", indicator="gdp")
Error Handling
- Tool responses are normalized as ok, status_code, result, and error.
- 406 Not Acceptable when client does not accept text/event-stream.
- 400 Bad Request for invalid MCP request format.
- 401/403 for authentication/authorization failures on protected data.
Client Behavior Notes
- A plain browser-style GET /api/mcp can return 406; this is expected for non-MCP probes.
- A valid MCP initialize request with Accept: text/event-stream should return 200 and an MCP session id.
Performance and Limits
- Target is production-grade remote MCP operation over HTTPS.
- Tool responses remain concise and token-efficient for agent workflows.
- Caching and source-specific fetch behavior are handled by the API service.
Privacy and Support
- Privacy: https://fxmacrodata.com/privacy
- Terms: https://fxmacrodata.com/terms
- Email: support@fxmacrodata.com
- Website: https://fxmacrodata.com
Production Status
- Intended status: General Availability (GA)
- Deployment: Google Cloud Run
- Transport: Streamable HTTP MCP
Quick Validation
# API health
curl -i https://fxmacrodata.com/api/ping
# MCP route probe (406 is acceptable for non-MCP clients)
curl -i https://fxmacrodata.com/api/mcp
# OAuth metadata
curl -i https://fxmacrodata.com/api/.well-known/oauth-authorization-server
# MCP initialize
curl -i -X POST "https://fxmacrodata.com/api/mcp" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
--data '{"jsonrpc":"2.0","id":"1","method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}'
# MCP tools/list (replace SESSION_ID)
curl -i -X POST "https://fxmacrodata.com/api/mcp" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Mcp-Session-Id: SESSION_ID" \
--data '{"jsonrpc":"2.0","id":"2","method":"tools/list","params":{}}'
# Optional authenticated tool call example
curl -i -X POST "https://fxmacrodata.com/api/mcp" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Mcp-Session-Id: SESSION_ID" \
--data '{"jsonrpc":"2.0","id":"3","method":"tools/call","params":{"name":"indicator_query","arguments":{"currency":"usd","indicator":"inflation","start_date":"2024-01-01","end_date":"2025-01-01"}}}'