Thai FX Compare
Server Details
Free Thai bank FX MCP: current TT rates, best bank, bank list, and historical observations.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct operation: comparing all bank rates, retrieving the best rate, fetching history, and listing banks. The compare vs. best distinction is clear from descriptions and directional parameters.
All tool names use consistent snake_case with a verb_noun structure (compare_, get_, get_, list_) and consistently reference the Thai FX domain.
Four tools is well-scoped for a focused FX rate comparison server, and each tool earns its place without redundancy.
The surface covers comparison, best rate, history, and bank listing for Thai FX. A minor gap is the lack of a direct current-rate lookup for a single bank, though compare_thai_bank_rates can still provide that information.
Available Tools
4 toolscompare_thai_bank_ratesCompare Thai bank FX ratesAInspect
Compare current Thai bank TT rates for one currency. Use side=selling when paying THB to buy foreign currency (lower is better), and side=buying when receiving THB from foreign currency (higher is better).
| Name | Required | Description | Default |
|---|---|---|---|
| side | No | selling | |
| currency | No | 3-letter ISO currency code such as CNY, USD, EUR, JPY | CNY |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does add real behavioral value by explaining the interpretation rule for results ('lower is better' for selling, 'higher is better' for buying) and clarifying these are TT (telegraphic transfer) rates. It does not state that the operation is read-only, whether data is cached/live, rate limits, or what the comparison output looks like.
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, zero filler, and the core purpose is front-loaded before the parameter guidance. Every clause carries information an agent needs.
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?
Adequate for a two-parameter, zero-required comparison tool, and the side semantics are covered well. Missing is any indication of the return shape (e.g. a per-bank rate list) and any routing hint among the three sibling FX tools, which matters given there is no output schema to fall back on.
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 only 50% — the enum values for side are listed but never explained in the schema, and the description fills exactly that gap by defining what selling and buying mean and which direction is favorable. The currency parameter is already documented in the schema, so no compensation is needed there.
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 specific verb and resource ('Compare current Thai bank TT rates') with the scope narrowed to 'one currency', which is more precise than the tool name alone. It does not explicitly distinguish itself from siblings like get_best_thai_fx_rate, but the comparison-across-banks framing is reasonably self-evident.
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 genuine conditional guidance for the side parameter ('use side=selling when paying THB...'), which is useful. However, it offers no guidance on when to choose this tool over get_best_thai_fx_rate or get_thai_fx_history, so tool-level selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_best_thai_fx_rateGet best Thai bank FX rateBInspect
Return the current best Thai bank TT rate for one currency and direction.
| Name | Required | Description | Default |
|---|---|---|---|
| side | No | selling | |
| currency | No | CNY |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. "Current" hints at real-time data, but there is no disclosure of refresh cadence, caching, latency, whether rates are indicative or executable, or which banks are in scope — meaningful gaps for a financial-rate tool with zero annotation coverage.
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 front-loaded sentence with no filler; the verb, scope, and inputs all appear immediately. Nothing could be removed without losing 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?
For a two-parameter read tool this is roughly minimally viable, but with no output schema the description should say what a "best rate" response contains (single rate, bank name, timestamp), and it leaves the "TT" jargon and rate freshness unexplained.
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 0%, so the description must compensate, and it partially does by mapping "one currency and direction" to the currency and side parameters. It still adds no meaning for the enum values, the default of selling, or the 3-character currency code constraint, leaving the schema's bare enum as the only documentation.
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 specific verb+resource ("Return the current best Thai bank TT rate") and implies aggregation across banks, which separates it from compare_thai_bank_rates and get_thai_fx_history. However, it never names those siblings or clarifies how "best" is computed, so differentiation is inferred 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no exclusions, and no alternatives named. An agent is left to guess whether this is a fallback for compare_thai_bank_rates or a distinct use case, which is exactly the ambiguity the description should resolve given three closely related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_thai_fx_historyGet Thai bank FX historyBInspect
Return historical TT rates for one Thai bank and currency. History is stored observations and may not contain a point for every hour.
| Name | Required | Description | Default |
|---|---|---|---|
| bank | Yes | Bank ID such as BOCT, KBANK, BBL, ICBCT | |
| days | No | ||
| side | No | selling | |
| currency | No | CNY |
TDQS
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 disclose a real behavioral trait: history is stored observations and may be sparse ('may not contain a point for every hour'). It says nothing about return shape, pagination, auth, or rate limits, so it only partly covers the burden.
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, front-loaded with purpose, second sentence delivering the caveat. No filler, nothing repeated from the title.
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?
No output schema and no annotations, so the description should say more about what a returned observation looks like and how the 'days'/'side' parameters shape results. It covers purpose and one data caveat, which is minimally viable for a simple read tool but leaves real gaps.
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 only 25% (only 'bank' is documented), but the description does add that the query is scoped to one bank and one currency. It says nothing about 'days' or 'side'; those parameters are still partly inferable from schema constraints (1-90 default 30) and the enum, which keeps this at a baseline 3 rather than lower.
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 specific verb ('Return'), a specific resource ('historical TT rates'), and the scoping dimensions ('one Thai bank and currency'). This separates it from siblings like get_best_thai_fx_rate and list_thai_fx_banks, though no sibling is named explicitly.
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?
No statement of when to choose this over compare_thai_bank_rates or get_best_thai_fx_rate, and no prerequisites or exclusions. The only guidance is the data caveat about missing hourly points, which is a data-quality note rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_thai_fx_banksList Thai FX banksAInspect
List banks available in Thai FX Compare with stored currencies and latest quote time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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 usefully discloses the shape of the result set (currencies and latest quote time), but says nothing about ordering, pagination, freshness guarantees, or whether the bank list is scoped to any account or region.
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 front-loaded sentence with no filler. The core action comes first and the returned-content detail follows compactly.
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-parameter, read-only enumeration tool with no output schema, the description is nearly sufficient: it names the resource and the two most relevant returned attributes. What is missing is any hint of ordering or result size, which matters for a list endpoint with no filter controls.
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 takes zero parameters, so there is no parameter semantics to explain; the baseline of 4 applies. The description's field hints apply to the response, not to inputs, so nothing further is required here.
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 specific verb and resource ('List banks available in Thai FX Compare') and even names the returned fields (stored currencies, latest quote time). It is distinguishable from siblings like compare_thai_bank_rates and get_thai_fx_history, though it never explicitly contrasts itself with them.
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?
No explicit when-to-use statement or named alternatives. Usage is only implied: an agent would infer this is the discovery call to run before comparing rates or fetching a best rate, but the description never says so.
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.
4 tool updates
- First observed
compare_thai_bank_rates - First observed
get_best_thai_fx_rate - First observed
get_thai_fx_history - First observed
list_thai_fx_banks
Related MCP Connectors
Macau AMCM MCP — daily interbank FX mid-rates for the Macau pataca (MOP)
Free, source-labeled FX rates: 10,296 pairs across 144 currencies, all update ~60s intraday.
Official exchange rates from central banks: latest & historical rates plus currency conversion.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceExchange rate MCP server - query real-time currency exchange rates between global currencies with conversion tools.MIT

iPayX FX Auditofficial
FlicenseNot gradedqualityCmaintenanceForensic FX audit MCP. Detects hidden bank markups on cross-border payments and scores them 1-10. FINTRAC MSB registered (C10001283). Fully remote, no install required.-- AlicenseNot gradedqualityAmaintenanceConvert currencies, get FX rates, and query historical ECB exchange rate data via MCP.350 npm1Apache 2.0
- AlicenseAqualityCmaintenanceAn MCP server for the Xe Currency Data API that brings live FX rates, historical analysis, and quant-flavored tools into AI tools, working out of the box with zero credentials via Frankfurter/ECB data.128 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.