Skip to main content
Glama
empulse-ai

EMpulse Street FX Index

Official
by empulse-ai

empulse-mcp

A small stdio bridge to the EMpulse Street FX Index MCP server (https://api.empulse.ai/mcp) for clients that only speak stdio. Standard library only, no build step: every JSON-RPC message from stdin is posted to the remote server and the answer is written to stdout. Clients that support remote servers can skip this package and connect to the URL directly — see https://github.com/empulse-ai/empulse-mcp#connect.

Install and run

uvx empulse-mcp                       # or: pipx run empulse-mcp
EMPULSE_API_KEY=emp_... uvx empulse-mcp

Client configuration (Claude Desktop, Cursor, Windsurf, Zed, …):

{
  "mcpServers": {
    "empulse": {
      "command": "uvx",
      "args": ["empulse-mcp"],
      "env": { "EMPULSE_API_KEY": "emp_..." }
    }
  }
}

Environment: EMPULSE_API_KEY (optional — without it the free level applies: free currencies, data up to yesterday, a daily limit per network), EMPULSE_MCP_URL (default https://api.empulse.ai/mcp).

Related MCP server: dolar-mcp

What the server offers

Street exchange rates of emerging-market currencies against the US dollar — 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.

Tools: get_street_rate, get_rate_history, list_currencies, get_official_vs_street, get_stress_signals, get_fx_events, get_hourly, get_rail_health, get_rail_incidents, get_unmet_demand, get_usdt_liquidity, get_methodology, request_free_key. Resources: empulse://methodology, empulse://coverage, empulse://pricing. Every answer carries source, as_of, confidence and a ready citation. Full description: https://empulse.ai/llms.txt · API docs: https://api.empulse.ai/docs

Citing

Cite as EMpulse Street FX Index with a link to the currency page (https://empulse.ai/rates/<CUR>). Street rates are not official or interbank rates and not investment advice. Terms: https://empulse.ai/terms

License

MIT for this bridge. The data is served under the EMpulse terms (https://empulse.ai/terms).

Available Tools

13 tools
get_fx_eventsCurrency-infrastructure eventsAInspect

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

NameRequiredDescriptionDefault
daysNo1–90, default 7
countryNocountry name in English
currencyNoISO 4217 code

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, this description carries the full behavioral burden and does a fair job: it discloses that results are quotations with public source links, that the feed is bounded by the plan's latest available day, and that free plans incur a 48-hour delay. It stops short of stating pagination/volume limits, what an empty result looks like, or whether the feed is strictly read-only, so it falls short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with what the feed contains before moving to filtering and plan mechanics. The em-dash enumeration of event types is informative but slightly long; overall tight with little wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return structure needn't be spelled out, and the description still sketches the item shape (quotation plus source link). Plan-tier delay and filtering are covered. Minor gaps remain: behavior when both country and currency are supplied, and whether the event-type list is exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning: 'filter by country or currency' signals these are alternative narrowing dimensions rather than combinable ones, and 'days back from the latest day of your plan' clarifies that the window is anchored to the plan's most recent data rather than to today — a nuance the schema's '1–90, default 7' does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb-like resource: a dated feed of FX-moving events in emerging markets, with concrete examples (devaluations, withdrawal limits, stablecoin bans, currency controls, payment outages) and the return form (short quotation plus source link). It is clear what an agent gets back, but it never distinguishes itself from nearby siblings such as get_stress_signals or get_rail_incidents, which plausibly overlap with 'payment outages'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives operational context — filter by country or currency, and `days` counted back from the latest day of the plan, with free tier limited to a 48-hour delay — which implies when the tool is useful (recent country/currency-specific news events). However, it offers no explicit when-to-use or when-not-to-use guidance versus get_stress_signals, get_rail_incidents, or get_rate_history, leaving the agent to infer routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_hourlyHourly street rates (Pro)AInspect

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.

NameRequiredDescriptionDefault
dateNoUTC day, YYYY-MM-DD; default: today
currencyYesISO 4217 code, for example EGP, NGN, ARS

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose two real behavioral facts: the tier restriction (Pro/Enterprise keys) and the data latency ('hours arrive with the daily update'). It stops short of saying how a non-Pro key fails or whether partial-day data is returned before the update, but the auth and freshness disclosure is above average for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that front-loads what is returned before naming the summary fields and access constraints. No wasted words, though the parenthetical field list slightly compresses readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be explained, and the two parameters are fully documented. Combined with the tier and update-timing notes, the agent has enough to call it correctly; only the failure mode for non-Pro keys is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters are documented there (ISO 4217 code, YYYY-MM-DD with today default). The description reinforces the date semantics ('per UTC hour for one day') but adds no syntax or format detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('The street rate of a currency per UTC hour for one day') and enumerates the included summary fields. The hourly granularity implicitly distinguishes it from get_street_rate and get_rate_history, but it never names those siblings explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a usage condition ('Pro and Enterprise keys; hours arrive with the daily update') that tells an agent about eligibility and data freshness. It does not say when to prefer this over get_street_rate or get_rate_history, so the agent must infer the choice from the granularity wording alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_methodologyMethodology and how to citeAInspect

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

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the return format ('as markdown') and enumerates the substantive content areas covered, which is useful behavioral context. It does not explicitly state that the operation is read-only or static, but that is strongly implied by a documentation getter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence is front-loaded with the core purpose and then lists the covered topics and output format. There is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a zero-parameter documentation tool with an output schema, the description is complete enough: it tells the agent what the markdown contains and that citation format is included. No additional parameter or return-value explanation is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the baseline is 4. The description correctly implies that no inputs are needed to retrieve the methodology.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the exact resource (the methodology for how the EMpulse Street FX Index is computed) and specifies its scope: components, confidence classes, outliers, revisions, coverage rules, and citation format. It is unmistakably a documentation tool and clearly distinct from the sibling data-retrieval tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly tells the agent this is the place to learn computation details and citation format, but it never states when to use it versus alternatives or when not to use it. For a zero-parameter documentation endpoint, the intended use is easy to infer, but explicit routing guidance is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_official_vs_streetOfficial vs street premiumBInspect

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.

NameRequiredDescriptionDefault
langNoLanguage of the citation text (ISO 639-1 code of a site language: en, ru, es, ar, tr, uz); default English
currencyYesISO 4217 code, for example EGP, NGN, ARS

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden; it does disclose the access-tier requirement ('Pro and Enterprise keys'), which is valuable and non-obvious. It omits freshness/update cadence, whether the call is read-only (inferable from the name), and any rate limits or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, front-loaded with the metric definition, with zero filler. It reads as a sentence fragment and could open with a verb for clarity, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so enumerating return fields is redundant though harmless, and the key tier info is a genuine addition. However, a low-complexity lookup tool still lacks any usage context or coverage notes (which currencies are supported), leaving it only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both currency (ISO 4217, examples EGP/NGN/ARS) and lang fully documented in-schema. The description adds nothing beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description defines the specific metric computed (street rate vs. official central-bank rate) and enumerates the resulting fields, which implicitly separates it from get_street_rate (street only). It never states a verb like 'get' or 'compute', so the purpose is clear but slightly implied rather than asserted.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus get_street_rate, get_rate_history, or get_stress_signals, all of which overlap on FX data. The only routing signal is the implicit 'this one includes the official rate'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rail_healthPayment rails of a country todayAInspect

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.

NameRequiredDescriptionDefault
currencyYesISO 4217 code, for example EGP, NGN, ARS

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the status enum (healthy/degraded/outage/no_data), that a start time and citation accompany each status, what the health index means (100 = the rail's own norm), and that free-tier data is one day behind and currency-limited. It doesn't mention rate limits or auth mechanics beyond the existence of Pro keys, which keeps it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is front-loaded: what it returns, the status model, then tier access. The long parenthetical method-class list is information-dense rather than filler, though the tier sentences drift toward promotional framing and could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return shape needn't be restated, yet the description usefully previews the key fields anyway; it also compensates for missing annotations by covering status semantics and data freshness. An agent has enough to call it correctly, with only auth/rate-limit mechanics left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage (ISO 4217 code with examples), so the schema already does the explanatory work. The description adds only the framing that the query is per-country/per-currency and date-sensitive, which is marginal but consistent with the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete resource (per-currency payment rail health) and enumerates its dimensions: method class, direction, status vocabulary. That scope cleanly separates it from siblings like get_rail_incidents or get_stress_signals, though those siblings are never named. It reads more as a capability pitch than a crisp 'returns X for Y' statement, costing it the top score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the content (look up rail reliability for a currency), and the free-vs-Pro tier split tells the agent what data depth is available. However, there is no explicit when-to-use/when-not guidance and no alternative tool is named for adjacent questions (incidents, stress signals, street rates).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rail_incidentsPayment-rail status changes (Pro)AInspect

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.

NameRequiredDescriptionDefault
daysNo1–90, default 30
currencyNoISO 4217 code; omit for all

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden well: it discloses default and max window, ordering (newest first), the output shape (one-line summary with timestamps), and an access requirement (Pro keys of the Rail Health Index). It does not state pagination limits, rate limits, or what is returned when nothing occurred in the window.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that front-loads the scope (all status changes), then window, ordering, output example, currency option, and access tier. The inline example earns its space by showing the exact result shape.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, and the description still gives a representative record, so an agent knows exactly what it will get. Window bounds, ordering, scoping, and access tier are all covered for a simple 2-parameter, zero-required read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and already documents the 1–90 bound, the default of 30, and the ISO 4217 currency code. The description only restates the default window and that currency is optional, adding no format or matching semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource: every status change (degraded, outage, healthy) of a payment method class, newest first, over `days`. The "change of status" framing distinguishes it in spirit from snapshot siblings like get_rail_health, but that sibling is never named, so the differentiation is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies the use case (reviewing rail outages/incidents over a recent window) and notes optional currency scoping, but gives no explicit when-not-to-use and does not name get_rail_health or get_fx_events as the alternatives for current state or event timelines.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_rate_historyStreet rate historyAInspect

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.

NameRequiredDescriptionDefault
langNoLanguage of the citation text (ISO 639-1 code of a site language: en, ru, es, ar, tr, uz); default English
to_dateNolast day, YYYY-MM-DD
currencyYesISO 4217 code, for example EGP, NGN, ARS
from_dateNofirst day, YYYY-MM-DD

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does well: it discloses the inclusive UTC day semantics, a hard 400-day-per-call limit, the default date range tied to the user's plan, and the shape of returned data (rate, buy, sell, confidence per day plus summary). It omits rate limiting, error behavior, and exact plan-tier constraints, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences, front-loaded with the core purpose, followed by limits and defaults. Every clause (inclusive/UTC, 400-day cap, output fields, default range) adds actionable information with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be spelled out, yet the description still summarizes them usefully. With 100% schema coverage and only four parameters, the definition is nearly complete; the remaining gap is the absence of any routing to sibling tools for current-rate or comparison use cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics beyond the schema: it clarifies that from/to dates are inclusive UTC days, that a single call may cover at most 400 days, and that omitting both dates yields a default 30-day window up to the latest day of the plan.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Daily street rates of a currency') with clear scope (between two dates, inclusive, UTC, max 400 days) and lists the returned fields. It implicitly distinguishes itself from get_street_rate by offering a daily history rather than a single current rate, but never names the sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains defaults (last 30 days up to the latest day of your plan) but gives no guidance on when to use this tool versus alternatives like get_street_rate for a current rate or get_official_vs_street for comparisons. There are no explicit when/when-not conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_street_rateStreet rate of a currencyAInspect

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.

NameRequiredDescriptionDefault
dateNoUTC day, YYYY-MM-DD; default: the latest day available to your plan
langNoLanguage of the citation text (ISO 639-1 code of a site language: en, ru, es, ar, tr, uz); default English
currencyYesISO 4217 code, for example EGP, NGN, ARS

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does substantial work: it enumerates the returned fields (mid, buy, sell, spread, 1/7/30-day changes, confidence class, citation) and discloses the tiered-access behavior — free data is one day delayed, a Pro key unlocks the current day. It stops short of stating rate limits or the exact auth mechanism.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core capability and the source, then closing with the access-tier caveat that affects result freshness. No filler, no repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need not be spelled out, yet the description still previews them usefully. Access tiering is covered. The only missing piece for a 3-parameter lookup tool is any mention of error behavior for unsupported currencies or dates outside plan coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so date, lang, and currency are already documented in the schema. The description only loosely gestures at them ('the rate on a given day', 'a ready citation'); it adds no format or constraint detail beyond what the schema already provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('latest street exchange rate of an emerging-market currency against USDT') and names the source index, so the agent knows this is a current street-rate lookup rather than history or official rates. It does not explicitly name the distinguishing siblings (get_rate_history, get_official_vs_street), leaving that inference to the agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'or the rate on a given day' implies the date-parameter use case, and the free/Pro delay sentence tells the agent when the returned value will be stale. However, there is no explicit statement of when to prefer this over get_rate_history or get_official_vs_street, which are the closest alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_stress_signalsFX stress signalsAInspect

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.

NameRequiredDescriptionDefault
currencyNoISO 4217 code; omit for all

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden well by disclosing the stress conditions, the returned flag levels, the fired rules, and the episode start day. It also mentions access-tier restrictions and scope, though it does not explicitly state read-only behavior, rate limits, or latency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose, then efficiently packs in criteria examples, return details, scope, and access requirements. Every phrase contributes useful information without filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It is nearly complete for a read-oriented analytical tool whose output schema exists: the description explains what stress means, what is returned conceptually, and who can call it. Minor omissions like data freshness or rate limits keep it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameter is already fully documented as an optional ISO 4217 code. The description's phrase 'One currency or all' aligns with the schema default but adds no further semantics beyond what is already structured.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and output: per-currency none/watch/alert stress flags from street-market conditions. It clearly distinguishes this signal-monitoring tool from siblings like get_street_rate or get_rate_history by focusing on early-warning stress episodes rather than raw rates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context as an early-warning stress monitor and notes that it works for one currency or all, plus the Pro/Enterprise key requirement. It does not explicitly name when to choose a sibling tool or give exclusions, so it falls short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_unmet_demandUnmet payment demandAInspect

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.

NameRequiredDescriptionDefault
currencyNoISO 4217 code; omit for the ranking

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden and usefully discloses access tiers and freshness: the free level is one day behind, while Pro keys of the Unmet Demand Map receive additional breakdowns. It does not cover rate limits or auth requirements beyond the Pro-key distinction, but it adds meaningful behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded and efficient: it establishes the subject, then immediately contrasts the no-currency and with-currency behavior, followed by tier-specific details. Every clause adds useful information, and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple one-parameter schema, full schema coverage, and the presence of an output schema, the description is complete enough for an agent to call the tool correctly. It explains both modes, the free-tier lag, and the Pro-key additions, leaving no major ambiguity about expected behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real semantic meaning by explaining how the optional currency parameter changes the response from a market ranking to a single-currency rank and trend. It also clarifies that omitting the parameter selects the ranking mode.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific analytical resource — unmet payment demand in emerging markets — and clearly explains what the tool returns in both modes: a market ranking when no currency is supplied, or a single currency’s rank and trend when one is. This is sufficiently distinct from sibling tools such as get_stress_signals and get_rail_health.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly explains the two usage modes: omit the currency for the ranking, or provide a currency for that market’s rank and trend. It does not name alternative sibling tools or state when not to use this tool, but the operational context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usdt_liquidityUSDT liquidity of a currencyAInspect

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.

NameRequiredDescriptionDefault
currencyYesISO 4217 code, for example EGP, NGN, ARS

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does a good job: it discloses data freshness per tier (yesterday vs today), currency coverage per tier (free vs every currency), and the exact Pro-level fields (pay-in/payout balance, spread, active hours, premium, supply class). It stops short of stating auth mechanics for Pro keys, rate limits, or failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the metric definition and scale anchor before the tier breakdown. The Pro-tier enumeration is long but each item is substantive information about returned data, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema, the description covers the metric's meaning, the scale reference point, freshness, and tier-gated field availability. That's sufficient to call it correctly; only the auth/permission mechanics of 'Pro keys' remain unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is one parameter with 100% schema coverage including format guidance ('ISO 4217 code, for example EGP, NGN, ARS'), so the schema already does the work. The description adds nothing about the parameter beyond 'a currency', giving the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

It names a specific metric (a 0–100 liquidity index of a currency, with 50 = the market's 90-day norm), which is precise enough to distinguish it from rate-oriented siblings like get_street_rate or get_official_vs_street. What's missing is an explicit pointer to sibling metrics such as get_rail_health or get_stress_signals, which an agent might otherwise confuse with 'liquidity'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The tier split ('Free level: yesterday, the free currencies' vs 'Pro keys... today, every currency') tells an agent whether a call will return useful data given the user's access, which implicitly guides usage. However, there's no explicit when-to-use or when-not-to-use statement, and no routing to alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_currenciesCovered currenciesAInspect

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.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does add useful context: the 'coverage in progress while market sources are being added' state and the per-plan coverage flag tell the agent results may be partial and entitlement-gated. It does not state whether authentication is required (the request_free_key sibling implies keys matter) or how large the list is, so gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that front-loads the resource and then the returned attributes. It is tightly packed with no filler, though the run-on list of attributes is slightly harder to scan than a short lead sentence followed by detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter catalog call with an output schema and no annotations, this is nearly complete: it explains what each entry means conceptually, which the schema's field names alone may not. The main remaining gap is confirming whether an API key/plan is needed before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline of 4 applies. The description adds nothing parameter-related and needs nothing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the exact resource — every currency of the EMpulse Street FX Index — and enumerates the attributes returned (status, confidence class, source count, coverage since, plan coverage). No sibling tool lists currencies, so differentiation is implicit and unambiguous, though the verb ('list') is only implied by the noun phrase rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is a discovery/catalog call to run before get_street_rate or get_rate_history, but the description never says when to call it or references any sibling as an alternative. No prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_free_keyRequest a free API keyAInspect

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.

NameRequiredDescriptionDefault
emailYesthe address the key is issued to

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the 100 calls/day rate limit, the data freshness limitation (up to yesterday), free-tier currency coverage, that the key is both returned and emailed with an example, and that it is sent via the X-API-Key header on this server and the REST API. It does not cover key expiry, revocation, or duplicate-email behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that is front-loaded with the core action and then layers on tier limits, delivery mechanics, and header usage. It is efficient, though the second half could be split for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description need not explain return values, and it correctly focuses on tier limits, data freshness, key delivery, and how to use the key. Missing only edge-case behavior such as duplicate requests or key expiration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single email parameter, so the schema already documents it thoroughly. The description only restates that the key is issued 'for an email address,' adding no extra syntax or format constraints beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (issue) and resource (free EMpulse API key) with the required input (email address). This is clearly distinguishable from all sibling tools, which are data-retrieval endpoints, not key provisioning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the offer in practical terms: free currencies, data up to yesterday, 100 calls per day, key returned and emailed. It does not explicitly say when not to use it (e.g., if the user already has a key) or mention alternatives, but the context is clear enough for an agent to act.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updatesv1.0.0
    • First observedget_fx_events
    • First observedget_hourly
    • First observedget_methodology
    • First observedget_official_vs_street
    • First observedget_rail_health
    • First observedget_rail_incidents
    • First observedget_rate_history
    • First observedget_street_rate
    • First observedget_stress_signals
    • First observedget_unmet_demand
    • First observedget_usdt_liquidity
    • First observedlist_currencies
    • First observedrequest_free_key

TDQS

A4/5.0

Scored across 13 tools

Disambiguation5/5

Each tool targets a clearly distinct data product or time granularity: latest rate, historical range, hourly rates, official-vs-street premium, stress signals, events, rail health, rail incidents, unmet demand, and USDT liquidity. The descriptions make the boundaries explicit, so an agent should not confuse similar-sounding tools like get_street_rate, get_rate_history, and get_hourly.

Naming Consistency5/5

All tools use snake_case with a predictable verb_noun or verb_noun_phrase pattern: get_*, list_*, and request_*. There are no mixed conventions or vague names.

Tool Count5/5

The set has 13 tools, which is well within a reasonable range for a multi-index FX and payments data API. Each tool appears to correspond to a distinct dataset or operation, with no obvious filler.

Completeness4/5

The surface covers the core lifecycle for this data domain: latest rates, history, hourly data, currency coverage, official comparisons, stress signals, events, rail health and incidents, unmet demand, USDT liquidity, methodology, and free-key issuance. Minor gaps remain, such as no explicit multi-currency latest-rate batch operation or account/usage management beyond requesting a free key, but agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides real-time Venezuelan economic data, including official and parallel exchange rates, inflation statistics, and basic goods basket prices. It enables AI assistants to query historical economic trends and current market indicators via natural language.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Real-time Argentine exchange rates for AI agents. Dollar blue, oficial, MEP, CCL, crypto rates plus currency conversion and spread calculator.
    6
    9 npm
    5
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to query public Latin American FX rates and perform auditable ledger reconciliation using a multi-rule matching engine.
    6
    MIT