Keyless Model Context Protocol server giving AI agents live and historical foreign-exchange rates: latest rates, currency conversion, historical rates, time-series, and the list of supported currencies. Data source: European Central Bank reference rates via the free, open-source Frankfurter API.
Market Intel MCP demonstrates solid definition quality with complete input/output schemas for all 5 tools, clear descriptions (avg 156 chars), and proper parameter typing. All tools follow verb_noun naming (fx_rates, fx_convert, fx_historical, fx_timeseries, fx_currencies). However, several parameters lack descriptions (e.g., fx_convert.amount has no description in inputSchema despite being in DK_AD patch), output schemas are incomplete for 3 of 5 tools (fx_convert, fx_historical, fx_timeseries missing outputSchema), and error handling is not documented. The codebase shows defensive validation (isRatesPayload, isCurrenciesPayload) but errors are not surfaced to LLMs with recovery guidance.
Convert an amount from one currency to another at the latest ECB reference rate. Returns the rate, the converted result, and the rate date.
List the currencies supported for exchange-rate lookups, with their full names.
Get foreign-exchange rates for a base currency on a specific past date (YYYY-MM-DD). ECB publishes rates on business days; a weekend/holiday date returns the most recent prior business day.
Get the latest foreign-exchange rates for a base currency (default USD), optionally limited to specific target currencies. Source: European Central Bank reference rates.
Get a time series of exchange rates for a base currency over a date range (max ~1 year), useful for trend analysis. Provide start and end as YYYY-MM-DD and one or more target currencies.
Three tools (fx_convert, fx_historical, fx_timeseries) lack outputSchema definitions. LLMs cannot plan downstream operations or validate response structure without documented return types.
fx_convert.amount parameter has no description in inputSchema (only patched via DK_AD lookup). LLMs cannot infer that this must be a number, not a string, without reading the patch code.
No error handling documentation. Tool descriptions do not explain what happens on invalid currency codes, malformed dates, or upstream API failures. LLMs have no recovery guidance.
fx_timeseries requires 'symbols' parameter but fx_rates makes it optional. Inconsistent parameter requirements across similar tools may confuse LLM tool selection.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2025-06-18+ | v2 |
No rate-limit or quota documentation in tool descriptions. The code enforces FREE_LIMIT=100 and uses Cloudflare KV for rate-limit tracking, but LLMs are unaware of these constraints.