Reported issues for exchange-rates-mcp-server
Pod holds 8 of 8 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.
Back to exchange-rates-mcp-server.
Most discussed
feat(errors): unsupported_currency omits the 30 accepted ECB codes it just checked against
Use case
unsupportedCurrency() names the rejected currency code but never the ECB's accepted set, so a caller that guesses a currency outside ECB coverage (ARS, AED, RUB, TWD, VND are ordinary requests the ECB does not publish) has to spend a second fx_list_currencies call before it can correct or abandon the request. The live set is small — GET https://api.frankfurter.dev/v1/currencies returned exactly 30 codes on 2026-09-12 (`AUD BRL CAD CHF CNY CZK DKK EUR GBP HKD HUF IDR ILS INR…
Read the thread · 2026-08-18 · closed · 1 comment
bug(fx_get_timeseries): spilled response omits the dataframe-tool pointer
Server version
0.2.1
mcp-ts-core version
0.11.0
Runtime
Bun
Runtime version
1.3.14
Transport
stdio
Description
Related: #11
When fx_get_timeseries spills a long range to DataCanvas, the response returns canvas_id and table_name but no guidance naming the tools that read them. A model holding an opaque 10-character canvas ID has to already know this server registers fx_dataframe_describe and fx_dataframe_query before it can reach the staged series —…
Read the thread · 2026-08-13 · closed · 1 comment
feat(fx_get_rates): surface historical date snapping
Use case
fx_get_rates returns the provider's actual rate_date, but nothing in the response tells a caller whether a historical request landed on the date it asked for. fx_get_rate and fx_convert_currency already expose date_snapped: boolean plus an explicit weekend/holiday notice for exactly this. A caller building a multi-currency snapshot for a specific historical date (e.g. a month-end close) currently has to retain its own request date and diff it against rate_date to know…
Read the thread · 2026-08-11 · closed · 1 comment
bug(fx_get_rates): mark live API access as open-world
Server version
0.3.1 (also present at the originally-filed 0.2.1 — reconfirmed against current main)
mcp-ts-core version
0.12.3 (also present at the originally-filed 0.11.0)
Runtime
Bun
Runtime version
N/A — this is a static tool-definition defect (the annotation value declared in fx-get-rates.tool.ts), not runtime- or transport-dependent. Reproduces identically under Bun or Node, any transport.
Transport
stdio
OS
N/A — not runtime-dependent (see Runtime…
Read the thread · 2026-08-11 · closed · 1 comment
bug(fx_dataframe_query): escape Markdown table cells
Server version
0.3.1
mcp-ts-core version
0.12.8
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
HTTP (Streamable HTTP)
Description
fx_dataframe_query's format() interpolates raw cell values into a Markdown table with no escaping. A cell containing | splits into extra table columns; <...> is interpreted as HTML by Markdown renderers; *, _, [...]/(...), and literal newlines are interpreted as Markdown emphasis, links, and row breaks instead of…
Read the thread · 2026-08-11 · closed · 1 comment
bug(fx_dataframe_query): bound immediate query results
Server version
0.3.1
mcp-ts-core version
0.12.8
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
HTTP (Streamable HTTP)
Description
fx_dataframe_query's format() independently slices content to the first 50 rows while structuredContent.rows carries every row DataCanvas's query() returns (up to its 10,000-row default cap). The two response surfaces diverge as soon as a result exceeds 50 rows — far below the DataCanvas cap — and nothing bounds…
Read the thread · 2026-08-11 · closed · 1 comment
bug(fx_get_timeseries): bound inline ranges and provide pagination
Server version
0.2.1
mcp-ts-core version
0.11.0
Runtime
Bun
Runtime version
1.3.14
Transport
HTTP (Streamable HTTP)
Description
When DataCanvas is disabled (CANVAS_PROVIDER_TYPE unset), fx_get_timeseries returns the entire requested range inline in structuredContent regardless of size. There is no limit/offset/cursor input and no truncation signal on this path, so a wide date range can return a multi-hundred-KB payload with no way for the caller to…
Read the thread · 2026-08-11 · closed · 1 comment
bug(fx_get_rates): empty symbols returns an unfiltered snapshot
Server version
0.2.1
mcp-ts-core version
0.11.0
Runtime
Bun
Runtime version
Bun 1.3.14
Transport
HTTP (Streamable HTTP)
Description
An explicit empty symbols array is accepted and silently treated as though the filter were omitted. A caller that constructs an empty selection receives every available quote instead of a validation error.
Steps to reproduce
Call fx_get_rates with:
{
"base_currency": "USD",
"symbols": []
}
Actual…
Read the thread · 2026-08-11 · closed · 1 comment
Most recent
The remaining reports are on the project's issue tracker.