Market Intel MCP
Server Details
Live & historical FX rates and currency conversion for AI agents. No API keys.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- datakoot/market-intel-mcp
- GitHub Stars
- 0
- Server Listing
- Market Intel MCP
TDQS
Scored across 5 tools
Each tool serves a clearly distinct purpose: conversion, listing currencies, single-date historical rates, latest rates, and multi-date time series. The boundaries between historical, latest, and timeseries are evident from their descriptions.
All tools share a consistent fx_ prefix and snake_case style, making them easy to recognize as part of the same domain. The only minor deviation is that fx_convert uses a verb while the others use nouns or adjectives, but this does not create confusion.
5 tools is a well-scoped set for a focused FX market-intel server. O n tool is redundant; each adds a distinct capability without excessive overlap.
The tool set covers the essential FX domain needs: discovering supported currencies, fetching latest rates, retrieving historical rates for a single date, obtaining time series for trend analysis, and performing currency conversion. No critical workflow appears missing.
Available Tools
5 toolsfx_convertAInspect
Convert an amount from one currency to another at the latest ECB reference rate. Returns the rate, the converted result, and the rate date.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target 3-letter currency | |
| from | Yes | Source 3-letter currency | |
| amount | Yes | Amount in the 'from' currency to convert. Send it as a number, not a string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure on its own. It does state the rate source (ECB reference rate) and the return payload (rate, converted result, rate date), which is good. But it omits potential nuances such as ECB rate lag or business-day staleness, and does not explicitly confirm the operation is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence leads with the action and resource, then summarizes the output. Every word carries information; there is no repetition of the tool name or schema descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, and the description covers the core operation and return fields, which partially compensates for the missing output schema. However, it leaves out edge cases like unsupported currency codes, rate availability timing, or how 'latest' relates to ECB publication dates. These gaps are notable when no annotations or output schema exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (amount, from, to) are already documented in the input schema. The description adds no parameter-level meaning beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Convert'), identifies the exact resource (amount between currencies), and names the data source ('latest ECB reference rate'). This clearly differentiates it from siblings like fx_historical and fx_timeseries, which serve different time-range purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the verb and resource: convert an amount at the current or latest rate. However, it does not explicitly tell the agent when to choose this over fx_historical, fx_rates, or fx_timeseries, and provides no 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_currenciesAInspect
List the currencies supported for exchange-rate lookups, with their full names.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | Number of supported currencies |
| source | Yes | |
| currencies | Yes | ISO 4217 codes mapped to currency names |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. The simple read-only nature is clear from 'List', and the description adds that it returns full names, which is useful behavioral detail. For a simple listing operation, this is adequate transparency; it doesn't hide side effects or require prerequisite knowledge.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the purpose and a key output detail with no wasted words. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple zero-parameter list operation. The description explains what is returned (currencies and their full names), the output schema provides structure, and there are no prerequisites or edge cases to mention. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description cannot add parameter meaning. The baseline of 4 applies because there are no parameters to document, and nothing is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List'), names a clear resource ('currencies supported for exchange-rate lookups'), and specifies the output includes full names. This clearly distinguishes it from sibling tools like fx_convert, fx_historical, fx_rates, and fx_timeseries, which all perform operations on rates rather than listing supported currencies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this tool is for discovering which currencies are available for exchange-rate lookups. It doesn't explicitly name alternatives or exclusions, but the context is sufficient for an agent to understand when to call it versus the rate-operation siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_historicalAInspect
Get foreign-exchange rates for a base currency on a specific past date (YYYY-MM-DD). ECB publishes rates on business days; a weekend/holiday date returns the most recent prior business day.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | 3-letter base (default USD) | |
| date | Yes | YYYY-MM-DD | |
| symbols | No | Optional comma-separated targets |
Output Schema
| Name | Required | Description |
|---|---|---|
| base | Yes | ISO 4217 base currency actually used |
| date | Yes | ECB rate date actually used YYYY-MM-DD |
| rates | Yes | Quote currencies mapped to the ECB reference rate |
| source | Yes | |
| requested_date | Yes | Caller-requested date YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral disclosure burden. It explains the ECB source, the business-day publication model, and the fallback behavior for weekend/holiday dates. This is meaningful non-obvious behavior that helps an agent interpret results correctly. It could mention whether missing symbols returns all rates, but the output schema mitigates that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the essential action is front-loaded. The second sentence earns its place by disclosing the most important behavioral nuance. Nothing needs to be trimmed or reordered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter tool with full schema coverage and an output schema, the description is close to complete. It states the date restriction, the base-currency concept, and the holiday fallback that could otherwise confuse an agent. The only missing piece is explicit routing among sibling tools, but that is not necessary for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents base, date, and symbols. The description adds extra semantic value for the date parameter by specifying 'past date' and explaining weekend/holiday fallback. It does not add much for base or symbols, but the schema already covers those, so the description's added date semantics justify a slightly above-baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action (get foreign-exchange rates), a resource (base currency on a specific past date), and clearly distinguishes this single-date tool from historical ranges or conversions. The phrase 'specific past date' immediately signals the tool's scope without requiring the agent to inspect sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: for a single historical date rather than a range or current rates. It also provides important operational context about business-day publishing and weekend/holiday fallback. It does not explicitly name alternatives or state 'use fx_rates for current rates,' but the context is strong enough for an agent to select it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_ratesAInspect
Get the latest foreign-exchange rates for a base currency (default USD), optionally limited to specific target currencies. Source: European Central Bank reference rates.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | 3-letter base currency, e.g. USD, EUR (default USD) | |
| symbols | No | Optional comma-separated targets, e.g. EUR,GBP,JPY |
Output Schema
| Name | Required | Description |
|---|---|---|
| base | Yes | ISO 4217 base currency actually used |
| date | Yes | ECB rate date YYYY-MM-DD |
| rates | Yes | Quote currencies mapped to the ECB reference rate |
| source | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It does state the operation is a 'get' and cites the European Central Bank as the data source, which signals a read-only, authoritative feed. However, it does not disclose details like update frequency, latency, or real-time versus reference-rate behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences with no redundancy. The main action and resource are front-loaded, and the source attribution is relegated to the second sentence, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter rate retrieval tool with both parameters optional and an output schema present, the description covers the purpose, scope, and data source sufficiently. It could add a brief pointer to sibling tools for historical data, but it is not necessary for a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already fully documented. The description repeats the default USD and optional target-currency limitation without adding new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('Get the latest foreign-exchange rates') and the resource ('for a base currency'), and it signals current rather than historical data, distinguishing it from fx_historical and fx_timeseries. It also contrasts with fx_convert by focusing on rates rather than conversions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: call when you need the latest ECB reference rates for a base currency, optionally restricted to specific targets. It does not explicitly name sibling tools or say when not to use it, but 'latest' and the ECB source imply the scope well.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_timeseriesAInspect
Get a time series of exchange rates for a base currency over a date range (max ~1 year), useful for trend analysis. Provide start and end as YYYY-MM-DD and one or more target currencies.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | YYYY-MM-DD | |
| base | No | 3-letter base (default USD) | |
| start | Yes | YYYY-MM-DD | |
| symbols | Yes | Comma-separated targets, e.g. EUR,GBP |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It discloses the approximate one-year range limit and implies a series of exchange rates, but it does not cover other behavioral details such as output structure, rate limits, or handling of invalid date ranges. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates the tool's purpose, its primary use case, the date range limit, and the input requirements without any filler or redundancy. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with fully documented parameters, the description covers the core operational details: purpose, date range, input formats, and target currencies. There is no output schema, so the response shape is not specified, but the phrase 'time series' gives a reasonable expectation of the return concept.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces that start and end are YYYY-MM-DD and that one or more target currencies are needed, but it does not add meaning beyond what the input schema already documents, such as the comma-separated format or the default base currency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: retrieving a time series of exchange rates for a base currency over a date range. It also adds the use case of trend analysis, which helps distinguish it from a simple conversion or currency-list tool, though it does not explicitly contrast with the similarly named fx_historical or fx_rates siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: for trend analysis over a date range of roughly up to one year. It does not explicitly mention alternatives or exclusions, but the stated use case is sufficient for an agent to select it appropriately in most situations.
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.
3 tool updates
- Changed
fx_currencies1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "count": { + "description": "Number of supported currencies", + "type": "integer" + }, + "currencies": { + "additionalProperties": { + "maxLength": 128, + "minLength": 1, + "type": "string" + }, + "description": "ISO 4217 codes mapped to currency names", + "maxProperties": 256, + "minProperties": 1, + "propertyNames": { + "pattern": "^[A-Z]{3}$" + }, + "type": "object" + }, + "source": { + "type": "string" + } + }, + "required": [ + "count", + "currencies", + "source" + ], + "type": "object" +}
- Changed
fx_historical1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "base": { + "description": "ISO 4217 base currency actually used", + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "date": { + "description": "ECB rate date actually used YYYY-MM-DD", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" + }, + "rates": { + "additionalProperties": { + "type": "number" + }, + "description": "Quote currencies mapped to the ECB reference rate", + "maxProperties": 256, + "minProperties": 1, + "propertyNames": { + "pattern": "^[A-Z]{3}$" + }, + "type": "object" + }, + "requested_date": { + "description": "Caller-requested date YYYY-MM-DD", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "base", + "date", + "requested_date", + "rates", + "source" + ], + "type": "object" +}
- Changed
fx_rates1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "base": { + "description": "ISO 4217 base currency actually used", + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "date": { + "description": "ECB rate date YYYY-MM-DD", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" + }, + "rates": { + "additionalProperties": { + "type": "number" + }, + "description": "Quote currencies mapped to the ECB reference rate", + "maxProperties": 256, + "minProperties": 1, + "propertyNames": { + "pattern": "^[A-Z]{3}$" + }, + "type": "object" + }, + "source": { + "type": "string" + } + }, + "required": [ + "base", + "date", + "rates", + "source" + ], + "type": "object" +}
5 tool updates
- First observed
fx_convert - First observed
fx_currencies - First observed
fx_historical - First observed
fx_rates - First observed
fx_timeseries
Related MCP Connectors
Live & historical FX rates and currency conversion for AI agents. No API keys.
Live FX + official central-bank rates, 110+ sources. Hosted, keyless, nothing to install.
Convert currencies and fetch blended FX rates from 50+ institutional sources.
60+ units, live FX, timezones, and date arithmetic for AI agents.
Related MCP Servers
AlicenseAqualityCmaintenanceCurrency conversion and exchange rates for AI assistants. 170+ currencies, historical data back to 1999.427 npmMIT- AlicenseAqualityBmaintenanceEnables AI coding tools to access real-time and historical currency exchange rates for 160+ currencies, sourced from Reuters/Refinitiv.428 npmMIT
- AlicenseAqualityBmaintenanceProvides real-time foreign-exchange rates, historical data, and multi-currency lookups to MCP-compatible AI coding assistants like Claude Code and Cursor.4130 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables searching and converting currencies, stocks, crypto, ETFs, and funds with current rates and source freshness for AI agents.3MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.