Koskamo

EMpulse Street FX Index MCP

An MCP server providing AI agents with access to the EMpulse Street FX Index, delivering daily street exchange rates for 113 emerging-market currencies against the US dollar. It supports tools to retrieve current rates, historical data, stress signals, liquidity metrics, and unmet demand maps, enabling agents to analyze real-world currency dynamics and payment rail health in emerging markets.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

EMpulse Street FX Index MCP logo, by EMpulseCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by EMpulse
You need:the free level needs no key
MCP endpoint (Streamable HTTP)
https://api.empulse.ai/mcp
Vendor documentation

What you can do with it

  • Retrieve current street exchange rates for emerging-market currencies
  • Access historical rate data and confidence scores
  • Analyze FX stress signals and market events
  • Check USDT liquidity and premium data

Source and maintenance

Community listingRegistry 1.0.0
Maintenance checked

Protocol and capabilities

Server
empulse-street-fx 1.0.0
MCP protocol
2025-06-18
Tools
16 advertised
Resources
3 advertised
Resource templates
0 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

EMpulse Street FX Index: daily street exchange rates of emerging-market currencies against the US dollar (USDT) — the rate people actually pay where the official rate is managed, lagging or unavailable — built from transaction-based market data and quotes from independent public market sources, with a confidence class and the number of sources on every figure. Use get_street_rate for one currency, get_rate_history for a period, list_currencies to see coverage, get_official_vs_street for the premium over the central-bank rate, get_stress_signals for early warning, get_fx_events for the news that moves street FX, get_hourly for intraday (Pro). Payment-market products: get_rail_health for which payment methods work in a country today, get_rail_incidents for the status changes, get_unmet_demand for where payment demand goes unserved, get_usdt_liquidity for where the dollar moves through USDT, get_news_sentiment for what the news says about a country and how it relates to the street rate, get_rate_stack for the ladder of rates of a currency (official, interbank, bank, customs, card, street) and the gaps between them, get_corridor for the rate between two emerging-market currencies around the dollar with the corridor premium (Pro). Without a key you get the free level: the free currencies, data up to yesterday, a daily limit per network. Send an EMpulse key in the X-API-Key header for your plan; request_free_key(email) issues a free key right here. When you quote a figure, cite "EMpulse Street FX Index" and link the currency page (every answer carries a ready `citation`). Pass `lang` (a site language: en, ru, es, ar, tr, uz) to get the citation text and its page link in that language; figures, codes and product names are the same in every language. Rates are local currency per 1 USDT (counted as 1 US dollar); a rising number means the currency weakened. Street rates are not official or interbank rates and not investment advice.

Tools

16 advertised

get_street_rate — Street rate of a currency
Advertised by the server during the last successful anonymous check.

The latest street exchange rate of an emerging-market currency against the US dollar (USDT) from the EMpulse Street FX Index, or the rate on a given day: rate (mid), buy, sell, spread, 1/7/30-day changes, confidence class and a ready citation. Free access is delayed by one day; a Pro key gives the current day.

get_street_rate input schema
{
  "type": "object",
  "title": "get_street_rateArguments",
  "required": [
    "currency"
  ],
  "properties": {
    "date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Date",
      "default": null,
      "description": "UTC day, YYYY-MM-DD; default: the latest day available to your plan"
    },
    "lang": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Lang",
      "default": null,
      "description": "Language of the citation text (ISO 639-1 code of a site language: en, ru, es, ar, tr, uz); default English"
    },
    "currency": {
      "type": "string",
      "title": "Currency",
      "maxLength": 3,
      "minLength": 3,
      "description": "ISO 4217 code, for example EGP, NGN, ARS"
    }
  }
}
get_street_rate output schema
{
  "type": "object",
  "title": "get_street_rateDictOutput",
  "additionalProperties": true
}
get_rate_history — Street rate history
Advertised by the server during the last successful anonymous check.

Daily street rates of a currency between two dates (inclusive, UTC days, at most 400 days per call): rate, buy, sell, confidence per day, plus a summary (first, last, change, low, high). Defaults: the last 30 days up to the latest day of your plan.

get_rate_history input schema
{
  "type": "object",
  "title": "get_rate_historyArguments",
  "required": [
    "currency"
  ],
  "properties": {
    "lang": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Lang",
      "default": null,
      "description": "Language of the citation text (ISO 639-1 code of a site language: en, ru, es, ar, tr, uz); default English"
    },
    "to_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "To Date",
      "default": null,
      "description": "last day, YYYY-MM-DD"
    },
    "currency": {
      "type": "string",
      "title": "Currency",
      "maxLength": 3,
      "minLength": 3,
      "description": "ISO 4217 code, for example EGP, NGN, ARS"
    },
    "from_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "From Date",
      "default": null,
      "description": "first day, YYYY-MM-DD"
    }
  }
}
get_rate_history output schema
{
  "type": "object",
  "title": "get_rate_historyDictOutput",
  "additionalProperties": true
}
list_currencies — Covered currencies
Advertised by the server during the last successful anonymous check.

Every currency of the EMpulse Street FX Index with its status (active, or coverage in progress while market sources are being added), the confidence class and the number of sources behind the latest day, coverage since, and whether your plan covers it.

list_currencies input schema
{
  "type": "object",
  "title": "list_currenciesArguments",
  "properties": {}
}
list_currencies output schema
{
  "type": "object",
  "title": "list_currenciesDictOutput",
  "additionalProperties": true
}
get_official_vs_street — Official vs street premium
Advertised by the server during the last successful anonymous check.

How far the street rate of a currency is from its official central-bank rate: official rate and its publication day, street rate, premium in percent, 7-day average and 30-day maximum. Pro and Enterprise keys.

get_official_vs_street input schema
{
  "type": "object",
  "title": "get_official_vs_streetArguments",
  "required": [
    "currency"
  ],
  "properties": {
    "lang": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Lang",
      "default": null,
      "description": "Language of the citation text (ISO 639-1 code of a site language: en, ru, es, ar, tr, uz); default English"
    },
    "currency": {
      "type": "string",
      "title": "Currency",
      "maxLength": 3,
      "minLength": 3,
      "description": "ISO 4217 code, for example EGP, NGN, ARS"
    }
  }
}
get_official_vs_street output schema
{
  "type": "object",
  "title": "get_official_vs_streetDictOutput",
  "additionalProperties": true
}
get_stress_signals — FX stress signals
Advertised by the server during the last successful anonymous check.

Early warning from the street: a none / watch / alert flag per currency when the street market shows stress (a run of weakening days, a 7-day move in the top decile of the currency's own year, a buy–sell spread blow-out), with the rules that fired and the day the episode started. One currency or all. Pro and Enterprise keys.

get_stress_signals input schema
{
  "type": "object",
  "title": "get_stress_signalsArguments",
  "properties": {
    "currency": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Currency",
      "default": null,
      "description": "ISO 4217 code; omit for all"
    }
  }
}
get_stress_signals output schema
{
  "type": "object",
  "title": "get_stress_signalsDictOutput",
  "additionalProperties": true
}
get_fx_events — Currency-infrastructure events
Advertised by the server during the last successful anonymous check.

A dated feed of events that move street FX in emerging markets — devaluations, cash and withdrawal limits, bans of stablecoin services, currency controls, payment outages — each a short quotation with a link to the public source. Filter by country or currency; `days` back from the latest day of your plan (free: 48-hour delay).

get_fx_events input schema
{
  "type": "object",
  "title": "get_fx_eventsArguments",
  "properties": {
    "days": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 90,
          "minimum": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Days",
      "default": null,
      "description": "1–90, default 7"
    },
    "country": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Country",
      "default": null,
      "description": "country name in English"
    },
    "currency": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Currency",
      "default": null,
      "description": "ISO 4217 code"
    }
  }
}
get_fx_events output schema
{
  "type": "object",
  "title": "get_fx_eventsDictOutput",
  "additionalProperties": true
}
get_hourly — Hourly street rates (Pro)
Advertised by the server during the last successful anonymous check.

The street rate of a currency per UTC hour for one day, with the day's summary (vwap, high, low, hours, busiest hour), for every currency with hourly market data; each hour says its component (transaction_based / multi_source / combined) and quality. Pro and Enterprise keys.

get_hourly input schema
{
  "type": "object",
  "title": "get_hourlyArguments",
  "required": [
    "currency"
  ],
  "properties": {
    "date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Date",
      "default": null,
      "description": "UTC day, YYYY-MM-DD; default: today"
    },
    "currency": {
      "type": "string",
      "title": "Currency",
      "maxLength": 3,
      "minLength": 3,
      "description": "ISO 4217 code, for example EGP, NGN, ARS"
    }
  }
}
get_hourly output schema
{
  "type": "object",
  "title": "get_hourlyDictOutput",
  "additionalProperties": true
}
get_rail_health — Payment rails of a country today
Advertised by the server during the last successful anonymous check.

Which payment methods work in a country today and how reliably: for every method class (cards, bank transfers, instant transfers, e-wallets, mobile money, cash, crypto, direct local rails) and direction (pay-ins, payouts) a status — healthy / degraded / outage / no_data — with the time it began and a ready citation. Free level: the free currencies, one day behind. Pro keys of the Rail Health Index: today, every currency, the health index (100 = the rail's own norm), availability, supply.

get_rail_health input schema
{
  "type": "object",
  "title": "get_rail_healthArguments",
  "required": [
    "currency"
  ],
  "properties": {
    "lang": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Lang",
      "default": null,
      "description": "Language of the citation text (ISO 639-1 code of a site language: en, ru, es, ar, tr, uz); default English"
    },
    "currency": {
      "type": "string",
      "title": "Currency",
      "maxLength": 3,
      "minLength": 3,
      "description": "ISO 4217 code, for example EGP, NGN, ARS"
    }
  }
}
get_rail_health output schema
{
  "type": "object",
  "title": "get_rail_healthDictOutput",
  "additionalProperties": true
}
get_rail_incidents — Payment-rail status changes (Pro)
Advertised by the server during the last successful anonymous check.

Every change of status of a payment method class — degraded, outage, back to healthy — over the last `days` (default 30), newest first, each with a one-line summary ("Bank transfers (pay-ins) in Egypt: degraded since 2026-10-24 14:00 UTC"). Optionally one currency. Pro keys of the Rail Health Index.

get_rail_incidents input schema
{
  "type": "object",
  "title": "get_rail_incidentsArguments",
  "properties": {
    "days": {
      "anyOf": [
        {
          "type": "integer",
          "maximum": 90,
          "minimum": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Days",
      "default": null,
      "description": "1–90, default 30"
    },
    "currency": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Currency",
      "default": null,
      "description": "ISO 4217 code; omit for all"
    }
  }
}
get_rail_incidents output schema
{
  "type": "object",
  "title": "get_rail_incidentsDictOutput",
  "additionalProperties": true
}
get_unmet_demand — Unmet payment demand
Advertised by the server during the last successful anonymous check.

Where payment demand in emerging markets is not being served. Without a currency: the ranking of covered markets by the share of demand no rail served, with the trend. With a currency: its rank and trend (free level, one day behind); Pro keys of the Unmet Demand Map also get the unmet share, the not-connected share, the index against the 90-day norm, the reason classes and the hours of day, per direction and method class.

get_unmet_demand input schema
{
  "type": "object",
  "title": "get_unmet_demandArguments",
  "properties": {
    "lang": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Lang",
      "default": null,
      "description": "Language of the citation text (ISO 639-1 code of a site language: en, ru, es, ar, tr, uz); default English"
    },
    "currency": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Currency",
      "default": null,
      "description": "ISO 4217 code; omit for the ranking"
    }
  }
}
get_unmet_demand output schema
{
  "type": "object",
  "title": "get_unmet_demandDictOutput",
  "additionalProperties": true
}
get_usdt_liquidity — USDT liquidity of a currency
Advertised by the server during the last successful anonymous check.

Where and when the dollar actually moves through USDT: the liquidity index of a currency (0–100, 50 = the market's own 90-day norm) with a ready citation. Free level: yesterday, the free currencies. Pro keys of USDT Liquidity & Premium: today, every currency, the pay-in / payout balance, the spread, the active hours of day, the premium over the official rate and the supply class.

get_usdt_liquidity input schema
{
  "type": "object",
  "title": "get_usdt_liquidityArguments",
  "required": [
    "currency"
  ],
  "properties": {
    "lang": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Lang",
      "default": null,
      "description": "Language of the citation text (ISO 639-1 code of a site language: en, ru, es, ar, tr, uz); default English"
    },
    "currency": {
      "type": "string",
      "title": "Currency",
      "maxLength": 3,
      "minLength": 3,
      "description": "ISO 4217 code, for example EGP, NGN, ARS"
    }
  }
}
get_usdt_liquidity output schema
{
  "type": "object",
  "title": "get_usdt_liquidityDictOutput",
  "additionalProperties": true
}
get_news_sentiment — News tone of a currency's country
Advertised by the server during the last successful anonymous check.

What the news says about the country of a currency, day by day. Without a currency: the map of covered currencies ranked by the 7-day fall in the tone of the news. With a currency: its latest day — a label (negative … positive) and the direction of the trend (free level, one day behind); Pro keys of EM FX News & Sentiment also get the score (−1 … 1), the index against the country's own 90-day norm, the number of articles, the early signal when the tone falls while the street rate is calm, the global topics (macro, crypto, markets) and the link between the tone and the next 1-, 3- and 7-day moves of the street rate, with confidence.

get_news_sentiment input schema
{
  "type": "object",
  "title": "get_news_sentimentArguments",
  "properties": {
    "lang": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Lang",
      "default": null,
      "description": "Language of the citation text (ISO 639-1 code of a site language: en, ru, es, ar, tr, uz); default English"
    },
    "currency": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Currency",
      "default": null,
      "description": "ISO 4217 code; omit for the map"
    }
  }
}
get_news_sentiment output schema
{
  "type": "object",
  "title": "get_news_sentimentDictOutput",
  "additionalProperties": true
}
get_rate_stack — Rate stack of a currency
Advertised by the server during the last successful anonymous check.

The ladder of rates a currency has on its latest day: the central bank's official rate, the interbank rate, what banks quote (buy / sell), the customs rate duties are computed at, what international cards settle at and the street rate — each with its publication day, the number of sources and a confidence class — the gap of the street over every rung, the width of the ladder, its 7- and 30-day trend and a widening signal (none / watch / alert), with a ready citation. A rung the country does not publish on its own says which rung it equals. Free level: the official, customs and street rungs of the free currencies, one day behind. Paid keys of the FX Rate Stack: every rung, every active currency, today.

get_rate_stack input schema
{
  "type": "object",
  "title": "get_rate_stackArguments",
  "required": [
    "currency"
  ],
  "properties": {
    "lang": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Lang",
      "default": null,
      "description": "Language of the citation text (ISO 639-1 code of a site language: en, ru, es, ar, tr, uz); default English"
    },
    "currency": {
      "type": "string",
      "title": "Currency",
      "maxLength": 3,
      "minLength": 3,
      "description": "ISO 4217 code, for example EGP, NGN, ARS"
    }
  }
}
get_rate_stack output schema
{
  "type": "object",
  "title": "get_rate_stackDictOutput",
  "additionalProperties": true
}
get_corridor — Corridor rate of a currency pair
Advertised by the server during the last successful anonymous check.

The rate between two emerging-market currencies as quoted in public exchange listings between the two countries (units of `b` per 1 `a`), the day's range, the number of sources and the confidence class, next to the cross rate implied by the two dollar legs of the index and the corridor premium (positive: going directly is dearer than through the dollar). Pro and Enterprise keys of the index.

get_corridor input schema
{
  "type": "object",
  "title": "get_corridorArguments",
  "required": [
    "a",
    "b"
  ],
  "properties": {
    "a": {
      "type": "string",
      "title": "A",
      "maxLength": 3,
      "minLength": 3,
      "description": "ISO 4217 code, for example EGP, NGN, ARS"
    },
    "b": {
      "type": "string",
      "title": "B",
      "maxLength": 3,
      "minLength": 3,
      "description": "ISO 4217 code, for example EGP, NGN, ARS"
    },
    "lang": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Lang",
      "default": null,
      "description": "Language of the citation text (ISO 639-1 code of a site language: en, ru, es, ar, tr, uz); default English"
    }
  }
}
get_corridor output schema
{
  "type": "object",
  "title": "get_corridorDictOutput",
  "additionalProperties": true
}
get_methodology — Methodology and how to cite
Advertised by the server during the last successful anonymous check.

How the EMpulse Street FX Index is computed — components, confidence classes, outliers, revisions, coverage rules — as markdown, with the citation format.

get_methodology input schema
{
  "type": "object",
  "title": "get_methodologyArguments",
  "properties": {}
}
get_methodology output schema
{
  "type": "object",
  "title": "get_methodologyDictOutput",
  "additionalProperties": true
}
request_free_key — Request a free API key
Advertised by the server during the last successful anonymous check.

Issue a free EMpulse API key for an email address, right here: the free currencies, data up to yesterday, 100 calls per day. The key is returned and also emailed with a ready example; send it in the X-API-Key header on this server and on the REST API.

request_free_key input schema
{
  "type": "object",
  "title": "request_free_keyArguments",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "title": "Email",
      "description": "the address the key is issued to"
    }
  }
}
request_free_key output schema
{
  "type": "object",
  "title": "request_free_keyDictOutput",
  "additionalProperties": true
}

Prompts

0 advertised

No prompt definitions available.

Resources

3 advertised

methodology — Index methodology

Advertised by the server during the last successful anonymous check.

How the EMpulse Street FX Index is computed and how to cite it (markdown).

methodology URI
empulse://methodology

MIME type: text/markdown

coverage — Coverage

Advertised by the server during the last successful anonymous check.

Every currency of the index with status, confidence and sources (public view, one-day delay).

coverage URI
empulse://coverage

MIME type: application/json

pricing — Plans

Advertised by the server during the last successful anonymous check.

Free, Pro and Enterprise plans of the index.

pricing URI
empulse://pricing

MIME type: text/markdown

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
2133 ms
95th percentile latency
2133 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 2133 ms · metadata changed · 16 tool(s), 3 resource(s), 0 resource template(s), 0 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http empulse-street-fx-index-mcp https://api.empulse.ai/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add empulse-street-fx-index-mcp --url https://api.empulse.ai/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable empulse-street-fx-index-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "empulse-street-fx-index-mcp": {
      "url": "https://api.empulse.ai/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "empulse-street-fx-index-mcp": {
      "type": "streamableHttp",
      "url": "https://api.empulse.ai/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start empulse-street-fx-index-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "empulse-street-fx-index-mcp": {
      "type": "http",
      "url": "https://api.empulse.ai/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http empulse-street-fx-index-mcp https://api.empulse.ai/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "empulse-street-fx-index-mcp": {
      "url": "https://api.empulse.ai/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "empulse-street-fx-index-mcp": {
      "serverUrl": "https://api.empulse.ai/mcp"
    }
  }
}

Let your agent find its tools

Find servers like EMpulse Street FX Index MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.