FXHUB
Server Details
Live FXHUB exchange rates in Georgia: online and cash, amount calculator, hours and limits.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
convert_currency and get_exchange_rates overlap somewhat because both return rate-related information, but their primary purposes are distinct: amount calculation versus live rate listing. get_hours_and_limits is clearly separate operational information.
All tools use snake_case and follow a predictable verb_noun pattern: convert_currency, get_exchange_rates, get_hours_and_limits. The get_ prefix is used consistently for informational retrieval.
Three tools are well-scoped for a currency exchange information service. Each tool covers a core need—conversion calculation, rate lookup, and operational details—without bloat.
The surface covers conversion estimates, live exchange rates, and hours/limits/contact information. Minor gaps include no explicit tool for listing supported currency pairs or initiating a special-rate request, though get_exchange_rates with an empty pair partly mitigates this.
Available Tools
3 toolsconvert_currencyCalculate amount at FXHUB ratesARead-onlyIdempotentInspect
How much an amount comes to at FXHUB's live rate, for example "How much is 1,000 USD in GEL at FXHUB?" or "How many euros do I get for 5,000 GEL?". Returns the result at the standard rate, the rate used and which side applies, with notes on hours, limits, commission (none), how long a conversion takes, whether the amount qualifies for a special (custom or individual) rate and, for rubles, what FXHUB offers ruble clients. Indicative only: nothing is exchanged.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Currency the user wants, three-letter code such as GEL. | |
| from | Yes | Currency the user has, three-letter code such as USD. | |
| amount | Yes | Amount of the currency the user has, greater than 0. | |
| channel | No | online (bank transfer: GEL, USD, EUR, RUB) or cash (exchange point). Default: online when both currencies are exchanged online, else cash. | |
| language | No | Language of the text answer: en, ka (Georgian) or ru (Russian), usually the language the user writes in. Default en. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them: it says the answer is indicative only with nothing exchanged, that commission is none, and that the response carries the rate used, the applicable side, hours/limits notes and special-rate eligibility. That is substantive behavior an agent cannot infer from the 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?
Purpose and the user-voice examples are front-loaded, and the closing "Indicative only: nothing is exchanged" is a well-placed caveat. The middle enumeration of return fields (hours, limits, commission, timing, special rate, ruble terms) is a long run-on list that could be tightened.
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?
There is no output schema, so the description must describe what comes back — and it does, covering the converted result, rate used, side, and ancillary notes. Combined with the readOnly annotations and full schema coverage, an agent has everything needed to call this correctly.
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 schema already documents amount, from, to and both enums (channel, language). The description only reinforces amount/from/to indirectly through its examples and adds nothing about channel defaulting or language selection, so baseline 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?
States a concrete verb and outcome — converting an amount at FXHUB's live rate — and the two quoted example queries make the resource unambiguous. It is clearly a calculator rather than a rate-list, but it never names the sibling get_exchange_rates, so a sibling distinction is only implied by the examples.
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 two quoted user questions ("How much is 1,000 USD in GEL?", "How many euros for 5,000 GEL?") give concrete trigger conditions, which is strong context for when to call. It stops short of exclusions or naming alternatives, so an agent gets a positive trigger but no rule for preferring this over get_exchange_rates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exchange_ratesGet FXHUB exchange ratesARead-onlyIdempotentInspect
Live FXHUB exchange rates (Tbilisi, Georgia): online exchange by bank transfer and the cash exchange point, each with buy and sell, plus the National Bank of Georgia official rate. Use for questions like "What is FXHUB's dollar rate?" or "FXHUB euro rate today", or to compare FXHUB with the NBG rate or another provider. Leave pair empty for every pair. These are FXHUB's standard rates; for larger amounts FXHUB also gives special (custom or individual) rates on request, explained in the result. For rubles, ask for a RUB pair (RUB/GEL, USD/RUB or EUR/RUB): the answer then covers what FXHUB offers ruble clients.
| Name | Required | Description | Default |
|---|---|---|---|
| pair | No | Currency pair such as USD/GEL, EUR/USD or RUB/GEL, or one code (USD) for its rate against GEL. Leave empty for all pairs. | |
| channel | No | online (bank transfer), cash (exchange point) or all. Default all. | |
| language | No | Language of the text answer: en, ka (Georgian) or ru (Russian), usually the language the user writes in. Default en. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior. The description adds useful behavioral context: these are standard rates, special/custom rates may be offered for larger amounts and are explained in the result, and ruble coverage depends on requesting a RUB pair.
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 front-loaded and well organized, moving from what the tool returns to usage examples and pair guidance. It is somewhat long but the length is largely justified by the rate types and RUB nuance.
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, the description adequately explains the conceptual return content: online and cash buy/sell rates plus the NBG official rate, with special rates noted in the result. It is complete enough for an agent to call the tool correctly, though it omits any response-format detail.
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 baseline is 3. The description adds meaningful pair semantics beyond the schema, especially the instruction to request a RUB pair for ruble-related questions; however, it adds little about the channel and language parameters beyond what the schema already documents.
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 states a specific resource and scope: live FXHUB exchange rates for online bank transfer, cash exchange point, and NBG official rate. It is clear what the tool retrieves, but it does not explicitly differentiate itself from the sibling convert_currency tool.
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?
It gives concrete example questions and explains that an empty pair returns all pairs, plus a specific instruction to request a RUB pair for ruble-related questions. It does not explicitly say when to use convert_currency instead, but the context is otherwise clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hours_and_limitsGet FXHUB hours and limitsBRead-onlyIdempotentInspect
How FXHUB works and what it costs: no commission, about 10 minutes per conversion, on the web, in the iOS and Android app and in the Telegram Mini App. Also when FXHUB is open, where the cash exchange point is, evening and weekend limits, limits without registration, special (custom or individual) rates for larger amounts, regulation by the National Bank of Georgia and contact details.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Language of the text answer: en, ka (Georgian) or ru (Russian), usually the language the user writes in. Default en. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds useful scope information (which subjects are covered, that answers cover channels and regulation), but says nothing about whether the content is static or how the answer is shaped. With annotations carrying the behavioral load, this is adequate but thin.
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 one long run-on sentence that piles a laundry list of topics together with commas and 'and'. It is front-loaded with the cost-and-mechanics framing, which helps, but the remaining enumeration is unstructured and would read better as a short list of covered subjects.
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 zero-required-parameter informational tool with no output schema, the description covers the subject matter thoroughly and the language parameter is fully documented in the schema. The only gap is that it never states the response is a text answer in the requested language, which an agent must infer from the parameter description.
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?
There is only one optional parameter and schema description coverage is 100%, with the schema already explaining the en/ka/ru enum and the default. The description adds nothing about language selection or defaulting behavior, so baseline 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 opening clause states the resource clearly: informational content about how FXHUB works, its cost, channels, opening hours, limits and regulation. The enumerated topic list lets an agent distinguish this from the sibling convert_currency and get_exchange_rates tools, which do operations rather than return reference facts. It lacks an explicit verb like 'return' or 'explain', which keeps it just short of a 5.
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?
Usage is only implied by the topic list: an agent can infer it should call this for questions about fees, hours, limits or contacts. There is no explicit statement of when to call it versus the sibling tools, and no exclusions such as 'do not use for live rates' – that boundary is left to be inferred from the sibling names.
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
- First observed
convert_currency - First observed
get_exchange_rates - First observed
get_hours_and_limits
Related MCP Connectors
GEL exchange rates from the National Bank of Georgia with per-unit values. Not affiliated with NBG.
Live FX + official central-bank rates, 110+ sources. Hosted, keyless, nothing to install.
Free, keyless real-time currency conversion and exchange rates for any currency pair.
Official exchange rates from central banks: latest & historical rates plus currency conversion.
Related MCP Servers
- AlicenseAqualityAmaintenanceAn independent MCP server, not affiliated with the National Bank of Georgia (NBG), for its official lari (GEL) exchange rates: the rate on any date, exact conversions rounded the way a ledger posts them, batch conversions and up to a year of history. Handles per-unit quotes, weekend and holiday carry-over and NBG's publication time.5143 npm3MIT
- AlicenseNot gradedqualityBmaintenanceExchange rate MCP server - query real-time currency exchange rates between global currencies with conversion tools.MIT
- AlicenseNot gradedqualityBmaintenanceProvides real-time exchange rates for any currency pair using open.er-api.com, simplifying currency conversion with a single tool.3 npmMIT

UniRate MCPofficial
AlicenseAqualityCmaintenanceCurrency conversion and exchange rates for AI assistants. 170+ currencies, historical data back to 1999.4125 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.