DaedalMap Historical FX Rates
Server Details
Historical FX rates for 100+ currencies vs USD from IMF and World Bank data, 1940-present.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- xyver/daedal-map
- GitHub Stars
- 2
- Server Listing
- daedal-map
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.2/5 across 4 of 4 tools scored.
Each tool has a distinct role: get_catalog lists available packs, get_pack provides details on one pack, get_fx_rates queries actual data, and get_tool_help explains tool usage. There is no meaningful overlap; even get_catalog and get_pack are clearly list-vs-detail.
All tool names follow the exact same verb_noun pattern with 'get_' prefix and snake_case (get_catalog, get_fx_rates, get_pack, get_tool_help). This is highly predictable and consistent.
Four tools form a compact yet complete set for a focused FX rates server: discovery, metadata, data retrieval, and help. Nothing feels redundant or missing, and the size is appropriate for the purpose.
The server covers the full workflow from discovering available data (get_catalog), understanding a pack (get_pack), querying rates (get_fx_rates), and getting tool guidance (get_tool_help). There are no obvious gaps for a historical data retrieval service.
Available Tools
4 toolsget_catalogGet CatalogARead-onlyInspect
Free discovery. Returns the list of live agent-ready data packs available on DaedalMap.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description is consistent with this by stating it 'Returns the list.' It adds minimal extra context beyond 'live agent-ready' and 'Free discovery,' but does not disclose potential rate limits, pagination, or data staleness. With annotations covering the safety profile, a score of 3 is appropriate.
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 extremely concise with two short sentences, immediately front-loading 'Free discovery' and then stating the main purpose. Every word earns its place; there is no waste or redundancy.
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?
Given the tool's simplicity (no parameters, read-only annotation, no output schema), the description is largely sufficient. It conveys what the tool returns ('list of live agent-ready data packs') and its free nature. However, it could be more complete by specifying whether the list includes metadata or requires authentication, but these are minor gaps for such a simple tool.
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, and the schema is empty. As per the guidelines, the baseline for 0 parameters is 4. The description does not need to explain parameters since there are none, and it does not introduce any confusion about parameter usage.
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 verb and resource: 'Returns the list of live agent-ready data packs available on DaedalMap.' This distinguishes it from sibling tools like get_fx_rates and get_pack, which focus on specific data or individual packs.
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 phrase 'Free discovery' implies usage for browsing available data packs, but there is no explicit guidance on when to use this tool versus alternatives. The description does not mention exclusions or recommend pairing with get_pack or get_fx_rates, leaving the usage context somewhat implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fx_ratesGet FX RatesARead-onlyInspect
Free tool. Queries the currency pack using filters.region_ids plus filters.time.granularity to return daily, weekly, or monthly FX data.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Optional sort instructions for row-returning queries. | |
| limit | No | Maximum number of rows to return for the requested granularity and time span. | |
| output | No | Optional output controls such as response format hints. | |
| filters | Yes | Structured filters including region_ids with loc_id country codes, time range, and granularity. | |
| metrics | No | Optional metric ids. Defaults to 'local_per_usd' for FX rate queries. | |
| request_id | No | Optional caller-supplied request id for tracing and idempotency. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already signals that the tool is read-only. The description adds that it is a 'Free tool' and specifies the query mechanism, but it does not disclose return format, pagination, or rate limits, which would be useful beyond the annotation.
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 sentence, front-loaded with the 'Free tool' tag, and directly states the action, query inputs, and output granularity without redundant information.
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?
With no output schema and a nested filters object, the description conveys the essential query logic but lacks information about the response structure or edge cases. The readOnlyHint annotation mitigates safety concerns, but the description could be more complete for a tool with six parameters.
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 input schema already documents all parameters with descriptions (100% coverage). The description emphasizes filters.region_ids and filters.time.granularity as the core drivers, reinforcing their importance, but adds minimal meaning beyond the schema's parameter descriptions.
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 the tool queries the currency pack using specific filters (region_ids, time.granularity) and returns daily, weekly, or monthly FX data. This specific verb+resource+output distinguishes it from siblings like get_catalog and get_pack.
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 implies the tool is for FX rate queries by detailing the exact filters and granularity options. It does not explicitly exclude use cases or reference sibling alternatives, but the context is sufficiently clear that an agent can infer when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_packGet PackARead-onlyInspect
Free discovery. Returns detailed metadata, coverage, freshness, preferred canonical tool guidance, and first-query examples for one pack. Call this before querying a new pack so you can see time shape, coverage limits, and the paste-ready first query.
| Name | Required | Description | Default |
|---|---|---|---|
| pack_id | Yes | Pack identifier such as 'currency', 'earthquakes', 'floods', 'hurricanes', 'tornadoes', 'tsunamis', 'un_sdg', 'volcanoes', 'world_factbook', or 'worldpop'. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations only declare readOnlyHint, so the description carries minimal burden. It adds useful behavioral context by specifying what the tool returns (time shape, coverage limits, paste-ready first query) and notes that it is 'free discovery'. No contradiction with annotations.
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 sentences, front-loaded with the core function and followed by actionable guidance. Every word earns its place, with no redundancy or filler.
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?
With only one parameter, a readOnly annotation, and no output schema, the description sufficiently covers what the tool does, when to use it, and what it returns. It enumerates the return contents, which compensates for the lack of an output schema, but a few more details about response format could push it to a 5.
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 schema already provides 100% coverage with a detailed description of pack_id and examples of valid values. The description only adds that it operates on 'one pack', which is a minor reinforcement, so the baseline of 3 applies.
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 the tool returns detailed metadata, coverage, freshness, canonical tool guidance, and first-query examples for one pack. The verb 'Returns' is specific and the scope is bounded to one pack, but it does not explicitly distinguish itself from sibling tools like 'get_catalog' or 'get_fx_rates'.
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 explicitly instructs to call this before querying a new pack, providing a clear when-to-use scenario. However, it does not mention any alternatives or when-not-to-use conditions, which would make it a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tool_helpGet Tool HelpARead-onlyInspect
Free blind-caller guidance for one tool visible on this MCP facade. Returns when to use it, what it refuses, a working example, effective access limits, important outputs, provenance fields, recommended next calls, and the shared natural-language-to-strict-JSON interaction contract. Use tools/list to discover names, then call this before an unfamiliar tool.
| Name | Required | Description | Default |
|---|---|---|---|
| tool_name | Yes | Exact tool name from tools/list. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint annotation already establishes safety, but the description adds meaningful behavioral context: it is a free/guided help call, scoped to tools 'visible on this MCP facade,' and it returns specific categories including 'what it refuses' and the interaction contract. This goes well beyond the annotation, though it stops short of detailing error-handling or rate-limit 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?
Two sentences deliver high information density: the first defines scope and enumerates outputs, the second gives the actionable call pattern. No filler or redundancy; every phrase 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?
Despite having no output schema, the description compensates richly by listing the major output dimensions (when-to-use, refusals, example, limits, outputs, provenance, next calls, interaction contract). For a help/metadata tool, this is comprehensive and leaves little ambiguity about what the caller will receive.
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 schema already documents tool_name as 'Exact tool name from tools/list' (100% coverage), so the baseline is 3. The description adds value by reinforcing that the tool targets one tool on the facade and by instructing the agent to first use tools/list, which effectively explains how to populate the parameter correctly.
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 tool as providing 'free blind-caller guidance for one tool visible on this MCP facade' and enumerates exactly what it returns (usage, refusals, example, access limits, outputs, provenance, next calls, interaction contract). This distinguishes it from the sibling data-retrieval tools (get_catalog, get_fx_rates, get_pack), which are content-focused rather than meta-help 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?
Gives explicit workflow guidance: 'Use tools/list to discover names, then call this before an unfamiliar tool.' This tells the agent when to invoke it and what precedes it, making the intended context of use unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
AlicenseAqualityBmaintenanceCurrency conversion and exchange rates for AI assistants. 170+ currencies, historical data back to 1999.474MIT- Flicense-qualityDmaintenanceProvides real-time and historical foreign exchange rates for 31+ currencies, enabling currency conversion, historical rate lookups, and time series analysis using data from the Frankfurter API.
- Alicense-qualityAmaintenanceEnables AI coding tools to access real-time and historical currency exchange rates for 160+ currencies, sourced from Reuters/Refinitiv.49MIT
- Alicense-qualityBmaintenanceProvides live and historical foreign-exchange rates from the European Central Bank via Frankfurter API, enabling currency conversion, rate lookup, and trend analysis without API keys.MIT
Your Connectors
Sign in to create a connector for this server.