# EMpulse Street FX Index

> Street FX rates of emerging-market currencies vs USD: latest, history, premium, stress, events

- name: io.github.empulse-ai/empulse-street-fx
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 97/100
- quality: 78/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.empulse-ai%2Fempulse-street-fx
- tools: https://api.protogrid.dev/v1/servers/io.github.empulse-ai%2Fempulse-street-fx/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "empulse-street-fx": {
      "type": "http",
      "url": "https://api.empulse.ai/mcp",
      "headers": {
        "X-API-Key": "${X_API_KEY}"
      }
    }
  }
}
```

Placeholders to fill: `${X_API_KEY}`.

## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-100% +updated-12d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 78/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_official_vs_street (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_methodology (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_street_rate (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 3,016 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 7 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 16, about 3,016 tokens to load them all
- tool set hash: 9e5467960463f67c7638d55d48b3d0c8
- tools last changed: 2026-10-29T15:41:18.681Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.empulse-ai/empulse-street-fx.svg)](https://protogrid.dev/servers/io.github.empulse-ai/empulse-street-fx)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-29 `get_hourly` changed (description)
  - before: The street rate of a currency per UTC hour for one day, with the day's summary (vwap, high, low, hours, busiest hour). Pro and Enterprise keys; hours arrive with the daily update.
  - after: 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.
- 2026-10-27 `get_corridor` added
  - 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.
- 2026-10-27 `get_rate_stack` added
  - 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.
- 2026-10-27 `get_news_sentiment` added
  - 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.
- 2026-10-26 `get_usdt_liquidity` changed (inputSchema)
- 2026-10-26 `get_unmet_demand` changed (inputSchema)
- 2026-10-26 `get_rail_health` changed (inputSchema)

Full history: https://api.protogrid.dev/v1/servers/io.github.empulse-ai%2Fempulse-street-fx/changes

## Remotes

- https://api.empulse.ai/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (16)

- `get_corridor`: 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_fx_events`: 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_hourly`: 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_methodology`: How the EMpulse Street FX Index is computed — components, confidence classes, outliers, revisions, coverage rules — as markdown, with the citation format.
- `get_news_sentiment`: 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_official_vs_street`: 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_rail_health`: 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_incidents`: 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_rate_history`: 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_stack`: 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_street_rate`: 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_stress_signals`: 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_unmet_demand`: 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_usdt_liquidity`: 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.
- `list_currencies`: 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.
- `request_free_key`: 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.
