Search / io.github.CurrencyCore/currency-core-mcp
CurrencyCore
R0· no sign-inLive FX rates, conversion, IMF PPP, and historical currency analytics.
v1.0.0 · active · repository · website · descriptor JSON · versions
Search / io.github.CurrencyCore/currency-core-mcp
R0· no sign-inLive FX rates, conversion, IMF PPP, and historical currency analytics.
v1.0.0 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"currency-core-mcp": {
"type": "http",
"url": "https://mcp.currency-core.com/mcp"
}
}
}claude mcp add --transport http currency-core-mcp https://mcp.currency-core.com/mcp[mcp_servers.currency-core-mcp]
url = "https://mcp.currency-core.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"currency-core-mcp": {
"type": "remote",
"url": "https://mcp.currency-core.com/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"currency-core-mcp": {
"type": "http",
"url": "https://mcp.currency-core.com/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=currency-core-mcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmN1cnJlbmN5LWNvcmUuY29tL21jcCJ9"
}{
"servers": {
"currency-core-mcp": {
"type": "http",
"url": "https://mcp.currency-core.com/mcp"
}
}
}{
"mcpServers": {
"currency-core-mcp": {
"httpUrl": "https://mcp.currency-core.com/mcp"
}
}
}extensions:
"currency-core-mcp":
enabled: true
name: "currency-core-mcp"
type: streamable_http
uri: "https://mcp.currency-core.com/mcp"
timeout: 300
protocol.modernprotocol.statelessprotocol.transportprotocol.list_ttlauth.prm, auth.as_metadata, auth.cimdauth.secret_in_urltools.descriptionstools.description_lengthtools.schemastools.annotationstools.directory_hintstools.token_costtools.api_dumptools.hidden_textstability.changes, stability.rug_pull, stability.new_linksdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableanalyze_mean_reversionchangedtitle, description, output schemameaning changedRanks currencies by how strongly they revert to their mean (crossing frequency + reversion half-life). Growth plan or higher.
Rank currencies by how strongly they revert to their historical mean, using a composite 0–100 score (crossing frequency + reversion half-life), plus current deviation and half-life in days. Use for questions like "does EUR snap back to its average". Provide `currencies` to score specific codes, or omit to rank the liquid set. Use `analyze_history` for raw change and `analyze_volatility` for dispersion. Defaults: roughly a 2-year window, `base` USD, `limit` 10. Returns `{ base, from, to, results[] }`; `score` and `halfLifeDays` are null when there is not enough reverting data. Requires a signed-in connection and the Growth plan or higher; each successful call bills 1 API request.
analyze_safe_havenchangedtitle, description, output schemameaning changedRanks currencies by a composite safe-haven score (low volatility + shallow drawdown + 2008-crisis resilience). Growth plan or higher.
Rank currencies by a 0–100 safe-haven score that combines low volatility, shallow drawdown, and 2008-crisis resilience. Use for "which currency holds up in a crisis" questions. Provide `currencies` to score specific codes, or omit to rank the liquid-fiat pool. Precious metals are not supported. Use `analyze_volatility` for pure dispersion and `analyze_drawdown` for peak-to-trough loss. Defaults: window from 2007-01-01 (or 20 years before `to`), `base` USD, `limit` 10. Returns `{ base, from, to, crisis, results[] }`. Returns an error when no rate data is available for the window. Requires a signed-in connection and the Growth plan or higher; each successful call bills 1 API request.
analyze_drawdownchangedtitle, description, input schema, output schemameaning changedMaximum peak-to-trough decline vs a base (with peak/trough/recovery), or a drawdown ranking. Growth plan or higher.
Return the worst peak-to-trough decline of each currency vs `base`, with peak, trough, and recovery dates/days. Use for "how far did it fall and did it recover" questions or to rank the deepest drawdowns. Omit `currency` to rank the universe (`sort` deepest or recovery); provide one currency or a list to compare. Use `analyze_volatility` for dispersion and `analyze_safe_haven` for crisis behaviour. Defaults: 365-day window, `base` USD, `sort` deepest, `universe` liquid, `limit` 10. Returns `{ base, from, to, mode, results[] }`; peak/trough dates are omitted and recovery fields are null when there is no drawdown or recovery in the window. Requires a signed-in connection and the Growth plan or higher; each successful call bills 1 API request.
analyze_correlationchangedtitle, description, output schemameaning changedCorrelation of each currency's daily returns with a base currency's, over a window. Growth plan or higher.
Return the Pearson correlation of each currency's daily returns with `base` over a window (−1..1), plus the number of overlapping observations. Use for diversification or co-movement questions such as "does CHF track EUR?". `currencies` is required and comma-separated; a non-USD `base` is usually more meaningful. Use `analyze_volatility` for dispersion and `analyze_history` for raw change. Defaults: 365-day window ending today. Returns `{ base, from, to, results[] }`; `correlation` is null when it is undefined for the window. Requires a signed-in connection and the Growth plan or higher; each successful call bills 1 API request.
analyze_volatilitychangedtitle, description, input schema, output schemameaning changedAnnualized volatility of a currency vs a base, or a stability ranking of the liquid currencies. Growth plan or higher.
Return annualized volatility (%) for each currency against `base`, with the number of daily returns used. Use to rank stability or find the most volatile currency or pair. Omit `currency` to rank the universe (`sort` stable or volatile); provide one currency or a comma-separated list to compare. Use `analyze_drawdown` for worst peak-to-trough loss and `analyze_safe_haven` for crisis resilience. Defaults: 365-day window, `base` USD, `sort` stable, `universe` liquid, `limit` 10. Returns `{ base, from, to, mode, basis, results[] }`; `volatility` is null when there is too little data. Requires a signed-in connection and the Growth plan or higher; each successful call bills 1 API request.
analyze_pppchangedtitle, description, input schema, output schemameaning changedPPP over time: how a country's purchasing-power-parity factor changed, comparing countries, or 'movers'. Growth plan or higher.
Measure how a country's IMF PPP conversion factor changed over a year window: start/end year and factor, % change, and optional min/max/avg. Use for purchasing-power trends and cross-country PPP rankings. Omit `countries` to rank all countries (movers); provide ISO alpha-3 codes to compare specific ones. Use `get_ppp_factor` for a single country/year value, and `convert` with `ppp=true` to price an amount. Defaults: 10-year window, `sort` increased, `limit` 10, `stats` true. Returns `{ from, to, mode, stats, results[] }`, with `projected: true` marking an IMF projection. Returns an error when no PPP data exists in the window. Requires a signed-in connection and the Growth plan or higher; each successful call bills 1 API request.
get_ppp_factorchangedtitle, description, output schemameaning changedA single country's purchasing-power-parity conversion factor for a year (IMF World Economic Outlook).
Return the IMF World Economic Outlook PPP conversion factor for one country and year: local currency units per international dollar. Use when the user needs the raw multiplier for one country/year, for example a cost-of-living comparison. Use `convert` with `ppp=true` to price an amount, and `analyze_ppp` for change over time or a cross-country ranking. `year` defaults to the latest configured PPP year (2024). Returns `{ year, countryCode, pppFactor, projected }`; `projected: true` marks an IMF projection rather than observed data. An unknown country or year is a 404. Requires a signed-in connection; each successful call bills 1 API request.
analyze_historychangedtitle, description, input schema, output schemameaning changedTrends, comparisons & 'movers': % change, strength, and min/max/avg over a window. Growth plan or higher.
Summarise how currencies moved against `base` over a window: start/end rate, change %, strengthened % (positive = stronger vs base), and optional min/max/avg. Use for questions like "how did EUR do over 10 years" and for movers rankings. Omit `currencies` to rank the universe (movers mode); provide them to compare specific ones. Use `get_history` for raw points, and the other `analyze_*` tools for volatility, correlation, drawdown, safe-haven, or mean-reversion questions. Defaults: 20-year window, `base` USD, `sort` strengthened, `assetClass` fiat, `limit` 10, `stats` true. Returns `{ base, from, to, mode, sort?, assetClass?, stats, results[] }`. A 404 means no rate data at the window edges. Requires a signed-in connection and the Growth plan or higher; each successful call bills 1 API request.
get_historychangedtitle, description, input schema, output schemameaning changedA single currency's daily rate time series over a date range. Free: last 30 days; Starter and above: full history.
Return one currency's rate series over a date range, expressed against `base`: `rates` maps each date (or aggregated period) to units of `currency` per 1 `base`. Use for a line chart or raw daily/weekly/monthly/yearly points for one currency. Use `analyze_history` for computed change, trend, and movers; use `convert` or `get_rates` for a single value or snapshot. Defaults: `to` today, `from` 7 days earlier, `base` USD, `interval` daily; coarser intervals average the daily rates per bucket. Returns `{ currency, base, interval, from, to, rates }`. Free plans are limited to the last 30 days; an invalid code or missing history is a 404. Requires a signed-in connection; each successful call bills 1 API request.
get_rates_by_basechangedtitle, description, output schemameaning changedThe same snapshot re-expressed against any base currency.
Return the daily FX snapshot re-based to `base`: every supported currency quoted as units per 1 unit of `base`, with `base` itself at 1. Use when the user wants a multi-currency table in a non-USD base (for example "rates in EUR"). Use `get_rates` for the USD table, `convert` for one pair or amount, and `get_history` for a time series. Omitting `date` returns the latest available snapshot, which is not necessarily today. Returns `{ base, date, rates }`; an unsupported base or a date with no snapshot is a 404. Requires a signed-in connection; each successful call bills 1 API request.
Showing the latest 10. Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-4d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://mcp.currency-core.com/mcp streamable-http | none | yes | 100% | 339 ms | 2025-11-25 | 2026-11-14 |
analyze_correlationread-only | Return the Pearson correlation of each currency's daily returns with `base` over a window (−1..1), plus the number of overlapping observations. Use for diversification or co-movement questions such as "does CHF track EUR?". `currencies` is required and comma-separated; a non-USD `base` is usually more meaningful. Use `analyze_volatility` for dispersion and `analyze_history` for raw change. Defaults: 365-day window ending today. Returns `{ base, from, to, results[] }`; `correlation` is null when it is undefined for the window. Requires a signed-in connection and the Growth plan or higher; each successful call bills 1 API request. |
analyze_drawdownread-only | Return the worst peak-to-trough decline of each currency vs `base`, with peak, trough, and recovery dates/days. Use for "how far did it fall and did it recover" questions or to rank the deepest drawdowns. Omit `currency` to rank the universe (`sort` deepest or recovery); provide one currency or a list to compare. Use `analyze_volatility` for dispersion and `analyze_safe_haven` for crisis behaviour. Defaults: 365-day window, `base` USD, `sort` deepest, `universe` liquid, `limit` 10. Returns `{ base, from, to, mode, results[] }`; peak/trough dates are omitted and recovery fields are null when there is no drawdown or recovery in the window. Requires a signed-in connection and the Growth plan or higher; each successful call bills 1 API request. |
analyze_historyread-only | Summarise how currencies moved against `base` over a window: start/end rate, change %, strengthened % (positive = stronger vs base), and optional min/max/avg. Use for questions like "how did EUR do over 10 years" and for movers rankings. Omit `currencies` to rank the universe (movers mode); provide them to compare specific ones. Use `get_history` for raw points, and the other `analyze_*` tools for volatility, correlation, drawdown, safe-haven, or mean-reversion questions. Defaults: 20-year window, `base` USD, `sort` strengthened, `assetClass` fiat, `limit` 10, `stats` true. Returns `{ base, from, to, mode, sort?, assetClass?, stats, results[] }`. A 404 means no rate data at the window edges. Requires a signed-in connection and the Growth plan or higher; each successful call bills 1 API request. |
analyze_mean_reversionread-only | Rank currencies by how strongly they revert to their historical mean, using a composite 0–100 score (crossing frequency + reversion half-life), plus current deviation and half-life in days. Use for questions like "does EUR snap back to its average". Provide `currencies` to score specific codes, or omit to rank the liquid set. Use `analyze_history` for raw change and `analyze_volatility` for dispersion. Defaults: roughly a 2-year window, `base` USD, `limit` 10. Returns `{ base, from, to, results[] }`; `score` and `halfLifeDays` are null when there is not enough reverting data. Requires a signed-in connection and the Growth plan or higher; each successful call bills 1 API request. |
analyze_pppread-only | Measure how a country's IMF PPP conversion factor changed over a year window: start/end year and factor, % change, and optional min/max/avg. Use for purchasing-power trends and cross-country PPP rankings. Omit `countries` to rank all countries (movers); provide ISO alpha-3 codes to compare specific ones. Use `get_ppp_factor` for a single country/year value, and `convert` with `ppp=true` to price an amount. Defaults: 10-year window, `sort` increased, `limit` 10, `stats` true. Returns `{ from, to, mode, stats, results[] }`, with `projected: true` marking an IMF projection. Returns an error when no PPP data exists in the window. Requires a signed-in connection and the Growth plan or higher; each successful call bills 1 API request. |
analyze_safe_havenread-only | Rank currencies by a 0–100 safe-haven score that combines low volatility, shallow drawdown, and 2008-crisis resilience. Use for "which currency holds up in a crisis" questions. Provide `currencies` to score specific codes, or omit to rank the liquid-fiat pool. Precious metals are not supported. Use `analyze_volatility` for pure dispersion and `analyze_drawdown` for peak-to-trough loss. Defaults: window from 2007-01-01 (or 20 years before `to`), `base` USD, `limit` 10. Returns `{ base, from, to, crisis, results[] }`. Returns an error when no rate data is available for the window. Requires a signed-in connection and the Growth plan or higher; each successful call bills 1 API request. |
analyze_volatilityread-only | Return annualized volatility (%) for each currency against `base`, with the number of daily returns used. Use to rank stability or find the most volatile currency or pair. Omit `currency` to rank the universe (`sort` stable or volatile); provide one currency or a comma-separated list to compare. Use `analyze_drawdown` for worst peak-to-trough loss and `analyze_safe_haven` for crisis resilience. Defaults: 365-day window, `base` USD, `sort` stable, `universe` liquid, `limit` 10. Returns `{ base, from, to, mode, basis, results[] }`; `volatility` is null when there is too little data. Requires a signed-in connection and the Growth plan or higher; each successful call bills 1 API request. |
convertread-only | Convert an amount from one currency to one or more targets at the reference rate for `date`, optionally PPP-adjusted. Use for any single-pair or amount conversion (for example "100 USD to EUR"). Use `get_rates`/`get_rates_by_base` for a full rate table, `get_history` for a series, and the `analyze_*` tools for statistics. `amount` defaults to 1 (each result then equals the rate); `ppp=true` applies purchasing-power parity and needs `CUR:COUNTRY` when a currency is used in more than one country; `date` must be today or earlier and defaults to the latest rate date. Returns `{ from, amount, date, results[] }`, each result carrying `result`, `rate`, and an optional `ppp` block. Invalid codes or dates return a 4xx error; no rate for the date is a 404. Requires a signed-in connection; each successful call bills 1 API request. |
get_historyread-only | Return one currency's rate series over a date range, expressed against `base`: `rates` maps each date (or aggregated period) to units of `currency` per 1 `base`. Use for a line chart or raw daily/weekly/monthly/yearly points for one currency. Use `analyze_history` for computed change, trend, and movers; use `convert` or `get_rates` for a single value or snapshot. Defaults: `to` today, `from` 7 days earlier, `base` USD, `interval` daily; coarser intervals average the daily rates per bucket. Returns `{ currency, base, interval, from, to, rates }`. Free plans are limited to the last 30 days; an invalid code or missing history is a 404. Requires a signed-in connection; each successful call bills 1 API request. |
get_ppp_factorread-only | Return the IMF World Economic Outlook PPP conversion factor for one country and year: local currency units per international dollar. Use when the user needs the raw multiplier for one country/year, for example a cost-of-living comparison. Use `convert` with `ppp=true` to price an amount, and `analyze_ppp` for change over time or a cross-country ranking. `year` defaults to the latest configured PPP year (2024). Returns `{ year, countryCode, pppFactor, projected }`; `projected: true` marks an IMF projection rather than observed data. An unknown country or year is a 404. Requires a signed-in connection; each successful call bills 1 API request. |
get_ratesread-only | Return the full USD-based exchange-rate snapshot for one date: `rates` maps every supported currency to units per 1 USD. Use when the user wants a multi-currency table in USD (for example "today's rates"). Use `get_rates_by_base` for a non-USD base, `convert` for one pair or amount, and `get_history` for a time series. Omitting `date` returns the latest available snapshot, which is not necessarily today. Returns `{ base: "USD", date, rates }`; a date with no snapshot is a 404. Requires a signed-in connection; each successful call bills 1 API request. |
get_rates_by_baseread-only | Return the daily FX snapshot re-based to `base`: every supported currency quoted as units per 1 unit of `base`, with `base` itself at 1. Use when the user wants a multi-currency table in a non-USD base (for example "rates in EUR"). Use `get_rates` for the USD table, `convert` for one pair or amount, and `get_history` for a time series. Omitting `date` returns the latest available snapshot, which is not necessarily today. Returns `{ base, date, rates }`; an unsupported base or a date with no snapshot is a 404. Requires a signed-in connection; each successful call bills 1 API request. |
list_countriesread-only | Return the supported countries and their official currencies as an array of `{ code, name, currencies }`. Use to resolve a country name to its ISO alpha-3 code before `get_ppp_factor` or `analyze_ppp`, or to check which countries are covered. Use `list_currencies` for currency codes. Returns the full list in one call and takes no parameters. Public tool: no sign-in and no API request billed. |
list_currenciesread-only | Return the full ISO 4217 currency catalogue as an array of `{ code, numeric, name, symbol }`. Use to resolve a currency name or symbol to its code, or to confirm a currency is supported before calling another tool, so a typo fails at selection rather than silently. Use `list_countries` for country codes. Non-ISO codes CNH, GGP, IMP, and JEP have an empty `numeric`. Returns the full list in one call and takes no parameters. Public tool: no sign-in and no API request billed. |
Schemas: list_tools.
{
"name": "io.github.CurrencyCore/currency-core-mcp",
"icons": [
{
"src": "https://currency-core.com/logo.png",
"mimeType": "image/png"
}
],
"title": "CurrencyCore",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://mcp.currency-core.com/mcp",
"type": "streamable-http"
}
],
"version": "1.0.0",
"repository": {
"id": "1261210951",
"url": "https://github.com/CurrencyCore/currency-core-mcp",
"source": "github"
},
"websiteUrl": "https://currency-core.com",
"description": "Live FX rates, conversion, IMF PPP, and historical currency analytics."
}