NetArz FX Rates
Server Details
Iranian rial/toman exchange rates (~30 currencies), conversion, history and gold. Free tier, no key.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 6 tools
Each tool targets a distinct shape of data: single rate, whole-board table, time series, currency list, amount conversion, and metals. The only mild overlap is between `get_rate` (today's rate for one currency) and `convert` (amount conversion using the dollar rate), but the descriptions make the boundary reasonably clear.
Five of six tools follow a clear verb_noun pattern (get_rate, get_rates_table, get_history, get_gold_prices, list_currencies). `convert` is a bare verb with no object, a minor deviation that is still unambiguous in context.
Six tools is well-scoped for an FX/gold rate API, with no redundant or filler endpoints. Each tool earns its place, covering listing, current rates, tables, history, conversion, and metals.
The surface covers discovery (list_currencies), current data (get_rate, get_rates_table), history, conversion, and gold/silver. Minor gaps: no historical conversion (convert appears tied to today's dollar rate) and no explicit way to fetch a specific day's snapshot other than via get_history ranges.
Available Tools
6 toolsconvertConvert an amount (تبدیل ارز)ARead-onlyIdempotentInspect
Convert an amount between any two currencies, Toman (IRT) or Rial (IRR; 1 Toman = 10 Rial), through the board's dollar rate. side=mid (default), buy or sell. تبدیل مبلغ بین دو ارز، تومان یا ریال با نرخ تابلو.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Currency code, or IRT (Toman) / IRR (Rial). | |
| from | Yes | Currency code, or IRT (Toman) / IRR (Rial). | |
| side | No | mid | |
| amount | Yes | Amount of ONE unit of `from` (not the board's quote unit). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint, idempotentHint, destructiveHint false), and the description adds meaningful domain behavior: conversion goes through the board's dollar rate and side selects mid/buy/sell. It does not explain return format or behavior for unsupported currencies, but with annotations covering the safety profile this is still useful context.
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 compact and front-loaded, stating the conversion operation and key constraints in two sentences. The Persian sentence duplicates the Persian title, causing slight redundancy but not significant verbosity.
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 read-only, 4-parameter conversion tool with no output schema, the description covers the conversion basis, IRT/IRR handling, and side behavior. It omits the return shape (converted amount, rate used) and unsupported-currency/error behavior, which leaves a gap an agent may care about.
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 75%, and the description adds important semantics beyond the schema: the IRT/IRR distinction and the ratio 1 Toman = 10 Rial, plus side defaulting to mid with buy/sell options. The amount-unit note is already in the schema, and precision/rounding is not discussed.
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 (convert) and resource (an amount between two currencies), plus the conversion basis (the board's dollar rate) and special IRT/IRR handling. The sibling tools are all retrieval-oriented (get_rate, get_rates_table, etc.), so the conversion operation is clearly distinguishable even 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?
The description gives useful context that conversion uses the board's dollar rate and that side can be mid, buy, or sell, with mid as default. However, it does not explicitly say when to use this tool instead of get_rate/get_rates_table or when not 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_gold_pricesGold and silver (طلا و نقره)ARead-onlyIdempotentInspect
Global gold and silver ounce in USD, and Toman values of 18k gold per gram, mesghal and coins as NetArz publishes them. The Toman gold figures are COMPUTED from the ounce and the dollar — not the Tehran market price (no premium or making charge); say so when you quote them. انس طلا و نقره و ارزش محاسبهای طلا به تومان (قیمت بازار تهران نیست).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description earns credit for disclosing a non-obvious data trait: the Toman figures are computed from the ounce and dollar rate and omit Tehran market premium/making charges, with an explicit instruction to disclose this to users. Freshness and update cadence are not mentioned.
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 English sentence front-loads the data scope, then the critical computed-vs-market caveat, then the disclosure instruction — a sensible priority order. The bilingual restatement adds tokens but serves a real audience; otherwise there is no 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 no input params, no nested objects and no output schema, the description carries the burden of describing returns, and it does enumerate the units and instruments (ounce/USD, per-gram 18k Toman, mesghal, coins). It stops short of stating freshness, whether values are cached, or the exact response shape, which an agent quoting live prices would want.
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, which is the baseline-4 case; there is nothing to disambiguate. The description correctly implies a single no-argument snapshot call rather than a filtered query.
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 the exact resources returned: global gold and silver ounce in USD plus Toman values for 18k gold per gram, mesghal and coins. That is far more specific than the title, which merely says 'Gold and silver'. It does not explicitly contrast with siblings like get_rate or convert, but the precious-metals scope is self-evidently distinct.
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 — the reader infers this is the tool for gold/silver quotes. The one concrete directive, 'say so when you quote them', tells the agent how to present results rather than when to pick this tool over get_rate or convert. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historyDaily rate history (تاریخچهٔ روزانهٔ نرخ)ARead-onlyIdempotentInspect
Daily Tehran open-market closing rate of a currency in Toman, with Gregorian and Jalali (Persian calendar) dates. Give days (back from today) or from/to (YYYY-MM-DD, Gregorian or Jalali such as 1404-01-01). Without a key: the last 365 days; a Pro FX API key reaches the whole archive (the dollar back to 1360 / 1981). At most 400 points per call; longer windows are sampled. نرخ پایانی روزانهٔ بازار آزاد با تاریخ شمسی و میلادی.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End day, YYYY-MM-DD, Gregorian or Jalali. Default: today. | |
| code | Yes | ISO 4217 code, e.g. USD, EUR, AED, TRY, GBP, CNY, IQD. | |
| days | No | Days back from today (default 30). Ignored when `from` is given. | |
| from | No | Start day, YYYY-MM-DD, Gregorian or Jalali. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantive context: the 365-day cap without a key, the extended archive with a Pro FX key back to 1360/1981, and the 400-point ceiling that causes longer windows to be sampled. These are non-obvious behavioral traits an agent could not infer from schema or 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?
Information is front-loaded: what is returned, then how to scope it, then limits and access tiers. Every sentence carries content, though the closing Persian sentence largely duplicates the opening and is the one element that does not earn extra space.
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 does some work here by indicating each point carries both Gregorian and Jalali dates, and by warning that long windows are sampled rather than returned in full. What it never shows is the actual response shape (field names, series structure), leaving a small gap for a data-returning 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?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: Jalali dates such as 1404-01-01 are accepted in the date params, and the sampling rule clarifies what `from`/`to` actually returns for long windows. It does not restate the ISO 4217 pattern or the `days` bounds, which the schema already covers.
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 verb+resource: 'Daily Tehran open-market closing rate of a currency in Toman' with Gregorian and Jalali dates. It clearly distinguishes a historical series from a point-in-time read, though it never names the sibling get_rate to make the contrast explicit.
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 tells the agent how to choose between `days` and `from`/`to`, and explains the key-based access tiers (anonymous = last 365 days, Pro key = full archive). It gives no explicit exclusions against siblings like get_rate or get_rates_table, so it stays below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rateRate of one currency (نرخ یک ارز)ARead-onlyIdempotentInspect
Today's Tehran free-market rate of one currency in Toman (IRT): buy, sell and mid per quote unit, change against yesterday, and the time of the data. نرخ امروز یک ارز در بازار آزاد تهران به تومان: خرید، فروش، میانگین و تغییر نسبت به دیروز.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ISO 4217 code, e.g. USD, EUR, AED, TRY, GBP, CNY, IQD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this to be a read-only, idempotent, closed-world tool, and the description adds genuinely useful context that they do not cover: the data is a Tehran free-market rate, it is denominated in Toman (IRT) rather than an ISO quote currency, and it includes change against yesterday. Permissions and rate-limit behavior remain unstated.
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 content is front-loaded: the English sentence states the scope and the returned fields first, and the Persian sentence mirrors it. The bilingual duplication doubles the length, but it is a deliberate localization rather than 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?
There is no output schema, so the description usefully lists the return values: buy, sell, mid, change against yesterday and the data timestamp. Combined with the single well-documented parameter, this is close to complete for a small lookup tool, with only pagination or failure behavior unspecified.
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%, and the only parameter is documented with the pattern, examples and an ISO 4217 explanation. The description adds nothing about the code parameter itself, so the schema does the heavy lifting and the baseline score 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 names a specific verb and resource: today's Tehran free-market rate of one currency, quoted in Toman, with the buy, sell and mid fields and the change against yesterday. 'Today's' implicitly separates it from get_history and get_rates_table, but it never names those siblings, so an agent must still infer the boundary.
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 word 'today's' implies that this tool covers only the current snapshot, which hints that get_history should be used for past data, but there are no explicit when-to-use or when-not-to-use instructions and no mention of convert or list_currencies as alternatives. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_rates_tableRates table (جدول نرخ ارزها)ARead-onlyIdempotentInspect
The whole board, or the codes you list, as structured rows plus a ready-to-show markdown table (buy / sell / mid in Toman, change vs yesterday). جدول نرخ همهٔ ارزها یا ارزهای انتخابی، با جدول markdown آماده.
| Name | Required | Description | Default |
|---|---|---|---|
| codes | No | Optional. Leave out for every currency. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint=false, destructiveHint=false). The description goes beyond them by disclosing what the response contains: buy/sell/mid values in Toman and a change-vs-yesterday field, plus a dual output form (rows and markdown). This matters because there is no output schema. It stops short of detailing row counts, ordering, or units for the change field, so it earns a 4, not 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The output shape is front-loaded and the whole thing takes one tight English sentence. The Persian restatement doubles the length, which is defensible for a localized tool but is still duplication penalty relative to a 5.
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 tool with zero required parameters and no output schema, the description covers what an agent needs: what comes back, in what format, with which price columns. Only minor gaps remain, such as row ordering and the exact meaning of the change column, which is why it is a 4 rather than 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?
Schema coverage is 100%, so the schema already documents that codes is optional, its ISO 4217 format, pattern, and maxItems. The description only restates that codes can be enumerated. With a 1-parameter tool and a fully documented schema, the baseline score of 3 is correct.
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 the resource (rates board) and the two scopes precisely: all currencies, or the specific codes supplied. It also names the return shape (structured rows plus a markdown table), which separates it implicitly from get_rate; it never names a sibling directly, so it falls 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?
"The whole board, or the codes you list" implies the when-to-use boundaries (bulk/batch retrieval vs a single rate in get_rate), and the schema confirms that omitting codes returns everything. However, no alternative tool is named and no exclusion or routing guidance is given, so the usage guidance stays implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_currenciesList currencies (فهرست ارزها)ARead-onlyIdempotentInspect
Every currency on the NetArz Tehran free-market board: ISO code, Persian and English name, quote unit (some are quoted per 10 or 100 units) and its netarz.ir page. Pro-only currencies are listed with pro_only=true. فهرست ارزهای تابلوی نرخ نِت اَرز با واحد مظنه و نشانی صفحهٔ هر ارز.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: quote units may be per 10 or 100 units (critical for interpreting later rate calls) and Pro-only currencies appear with pro_only=true. It does not say whether Pro-only entries are always present or how many currencies there are.
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 the scope and field list, with no filler. The Persian sentence mirrors the English rather than adding new information, which is reasonable for a bilingual board but is mild 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?
With no parameters and no output schema, the description carries the return-value burden and does so by enumerating the fields plus the pro_only flag. Missing minor items such as ordering or whether the list is exhaustive of the board, but an agent has everything needed to call and interpret it.
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 no parameters, so the baseline is 4. The description instead documents the return shape (fields and the pro_only flag), which is more useful here than parameter detail would be.
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 (list) and a precisely scoped resource (every currency on the NetArz Tehran free-market board), and names the returned fields: ISO code, Persian/English name, quote unit, page URL. It does not explicitly contrast with siblings like get_rate or convert, but the catalog-enumeration purpose is unmistakable.
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 or when-not-to-use statement, and no sibling is named. Usage is only implied: an agent can infer this is the discovery step that yields currency codes for get_rate/convert, 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.
6 tool updates
- First observed
convert - First observed
get_gold_prices - First observed
get_history - First observed
get_rate - First observed
get_rates_table - First observed
list_currencies
Related MCP Connectors
Live Iran exchange rates, gold, crypto, and Toman market data for AI agents.
Exchange rates for about 150 currencies from central banks (ECB and others). Free, no key.
Free, keyless real-time currency conversion and exchange rates for any currency pair.
Live FX + official central-bank rates, 110+ sources. Hosted, keyless, nothing to install.
Related MCP Servers
AlicenseNot gradedqualityDmaintenanceLive Iran exchange rates, gold, crypto, and Toman/Rial market data for AI agents.2MIT- AlicenseAqualityAmaintenanceProvides read-only access to Iranian market data from tgju.org, including live gold, coin, currency, and crypto prices, category tables, symbol search, and daily price history. Exposes six MCP tools for market summaries, live quotes, category browsing, and historical data with Jalali date filtering.6209 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceReal-time currency exchange rates and crypto prices via MCP. Convert between 60+ fiat currencies and 30+ cryptocurrencies with multi-source failover. No API keys needed for upstream data.5 npmISC
- AlicenseAqualityAmaintenanceEnables AI agents to compare cryptocurrency prices, order books, recent trades, candles, and top movers across seven Iranian exchanges in Toman or USDT. Provides read-only, unauthenticated access to public market data from Nobitex, Wallex, Bitpin, Ramzinex, Tabdeal, OMPFinex, and Exir.126MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.