protogrid

Search / io.github.CurrencyCore/currency-core-mcp

CurrencyCore

R0· no sign-in

Live FX rates, conversion, IMF PPP, and historical currency analytics.

v1.0.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality89new
Trust97of 100
Uptime, 30 days100%
Latency p50339 ms

Connect

8 clients · secrets stay placeholders
{
  "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

Quality 89 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations14 of 14 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 5,112 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
  • pass
    tools.hidden_textno hidden text in tool names, descriptions, schemas or annotations
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pull, stability.new_linkstool history recorded for 3 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

14 tools, about 5,112 tokens to load them all · tool set 3a4d56c26f3a · tools last changed 2026-11-11 · checked 2026-11-14 07:03 UTC

Tool changes

  • analyze_mean_reversionchangedtitle, description, output schemameaning changed
    before

    Ranks currencies by how strongly they revert to their mean (crossing frequency + reversion half-life). Growth plan or higher.

    after · 21% of words in common

    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 changed
    before

    Ranks currencies by a composite safe-haven score (low volatility + shallow drawdown + 2008-crisis resilience). Growth plan or higher.

    after · 20% of words in common

    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 changed
    before

    Maximum peak-to-trough decline vs a base (with peak/trough/recovery), or a drawdown ranking. Growth plan or higher.

    after · 17% of words in common

    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 changed
    before

    Correlation of each currency's daily returns with a base currency's, over a window. Growth plan or higher.

    after · 22% of words in common

    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 changed
    before

    Annualized volatility of a currency vs a base, or a stability ranking of the liquid currencies. Growth plan or higher.

    after · 16% of words in common

    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 changed
    before

    PPP over time: how a country's purchasing-power-parity factor changed, comparing countries, or 'movers'. Growth plan or higher.

    after · 18% of words in common

    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 changed
    before

    A single country's purchasing-power-parity conversion factor for a year (IMF World Economic Outlook).

    after · 13% of words in common

    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 changed
    before

    Trends, comparisons & 'movers': % change, strength, and min/max/avg over a window. Growth plan or higher.

    after · 14% of words in common

    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 changed
    before

    A single currency's daily rate time series over a date range. Free: last 30 days; Starter and above: full history.

    after · 19% of words in common

    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 changed
    before

    The same snapshot re-expressed against any base currency.

    after · 7% of words in common

    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.

Trust 97 / 100

provenance90
liveness100
freshness100
hygiene100

+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.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.currency-core.com/mcp streamable-httpnoneyes100%339 ms2025-11-252026-11-14

Tools (14)

analyze_correlationread-onlyReturn 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-onlyReturn 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-onlySummarise 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-onlyRank 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-onlyMeasure 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-onlyRank 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-onlyReturn 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-onlyConvert 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-onlyReturn 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-onlyReturn 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-onlyReturn 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-onlyReturn 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-onlyReturn 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-onlyReturn 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.

Similar MCP servers

Official server.json
{
  "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."
}