iran-crypto-mcp
An unofficial, read-only MCP server for querying public market data from 13 Iranian crypto exchanges in Toman or USDT.
List supported exchanges, their native price units, and available markets.
Compare one coin’s price across all exchanges, cheapest first, with spread.
Get tickers with price, bid/ask, 24h range, change, and volume where available.
Read order books, recent public trades, and OHLC candles.
Rank top 24h gainers/losers, filtering out illiquid coins.
Find the best exchange for buying or selling a specified amount, including slippage.
Scan cross-exchange arbitrage opportunities.
Get a market overview with Tether rate and major coin prices.
Compare trading fees and withdrawal networks/fees/minimums.
No authentication, account access, or trading capabilities.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@iran-crypto-mcp Compare the BTC price across all Iranian exchanges in Toman — where is it cheapest?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
iran-crypto-mcp: Iranian crypto exchanges MCP server for AI agents
Compare any coin across thirteen Iranian crypto exchanges, in Toman, from Claude, Cursor or Copilot. An unofficial, read-only MCP server (model context protocol) for the public market data of Nobitex, Wallex, Bitpin, Ramzinex, Tabdeal, OMPFinex, Exir, Bit24, Balinex, Aban Tether, Kifpool, OK-EX and Tetherland: prices, order books, recent trades, candles and top movers.
For AI agents · Why · Quick start · Exchanges · Tools · FAQ · فارسی
For AI agents
What: unofficial MCP server for the public market data of 13 Iranian crypto exchanges and brokers (Nobitex, Wallex, Bitpin, Ramzinex, Tabdeal, OMPFinex, Exir, Bit24, Balinex, Aban Tether, Kifpool, OK-EX, Tetherland).
Install:
uvx iran-crypto-mcporclaude mcp add iran-crypto -- uvx iran-crypto-mcp. Transport: stdio. Needs uv (Python 3.10+).Auth: none, no API key or account. Optional
IRAN_CRYPTO_MCP_PROXY(HTTP proxy URL, or a comma-separated list); system proxy settings are ignored.Access: read-only. No login, balances, orders or trading, so no confirmation is needed before calling any tool.
Tools: 8, all prefixed
ic_. Start withic_compare_price. Typical sequence:ic_compare_price->ic_get_orderbook->ic_candles.Use when: comparing a coin's price across Iranian exchanges, checking a spread, reading an order book or recent trades, or listing 24h movers.
Do not use when: the user wants to buy, sell or transfer, needs account data, or wants non-Iranian exchanges.
Output: compact JSON. Every IRT price is in Toman (field names say
*_toman); USDT markets say*_usdt.Machine-readable:
server.jsonand the iran-mcp catalog.
Related MCP server: Arzbin MCP Server
Why
Rial vs Toman. Nobitex, Ramzinex and OMPFinex publish Rial; Wallex, Bitpin, Tabdeal and Exir publish Toman. The same BTC price differs 10x between them. This server converts everything to Toman, so the numbers compare directly.
Seven sites to check by hand. Each exchange has its own app, its own symbols and its own API shape. One call to
ic_compare_pricereturns the coin on every exchange, cheapest first, with the spread.Persian names. Every exchange row carries
name_fa, the exchange's own Persian name, so answers in Persian do not depend on the model spelling it.
What it can do
Compare one coin's price on all thirteen exchanges, in Toman or USDT, cheapest first, with the spread
Get a ticker: last price, 24h range and change, volume, and best bid/ask where the exchange publishes them
Read order books (up to 20 levels per side) and recent public trades
Pull OHLC candles (15m, 1h, 4h, 1d) from all eight order-book exchanges and Balinex (and Aban Tether for USDT/IRT)
Rank the biggest 24h gainers and losers on an exchange, with illiquid coins filtered out
List the coins an exchange trades against Toman or USDT
Find the best exchange for a buy or sell of a given size, walking each order book for slippage
Scan all coins for price gaps between exchanges (arbitrage), on real bid/ask prices
Compare trading fees and each coin's withdrawal networks, fees and minimums across exchanges
Get a one-call market overview: the Tether rate and major coins, median price and range across exchanges
Example prompts:
"Compare the BTC price on all Iranian exchanges in Toman. Where is it cheapest?"
"What is the Tether (USDT) rate in Toman on each exchange right now?"
"Show the Nobitex ETH order book. Is the spread real?"
"Top 5 gainers on Wallex in the last 24 hours."
"Give me 1-hour BTC candles from Wallex for the last two days."
"Where do I get the most USDT for 50 million Toman?"
"Which exchange has the cheapest USDT withdrawal on TRC20?"
"Any arbitrage between Iranian exchanges right now?"
با ۵۰ میلیون تومان کجا بیشترین تتر را می‌گیرم؟
قیمت بیت‌کوین را در همه صرافی‌های ایرانی به تومان مقایسه کن.
قیمت تتر الان در کدام صرافی ارزان‌تر است؟
دفتر سفارش اتریوم در نوبیتکس را نشان بده.
Supported exchanges
Exchange | Persian name | Site | Published unit | Ticker | Order book | Trades | Candles |
Nobitex | نوبیتکس | Rial | full | yes | yes | yes (not USDT/IRT) | |
Wallex | والکس | Toman | full | yes | yes | yes | |
Bitpin | بیت‌پین | Toman | no bid/ask | yes | yes | yes | |
Ramzinex | رمزینکس | Rial | full | yes | yes | yes | |
Tabdeal | تبدیل | Toman | no bid/ask, no volume | yes | yes | yes | |
OMPFinex | او ام پی فینکس | Rial | no bid/ask | yes | no | yes | |
Exir | اکسیر | Toman | no bid/ask | yes | yes | yes | |
Bit24 | بیت ۲۴ | Toman | no bid/ask | yes | yes (no side) | yes | |
Balinex | بالینکس | Toman | no bid/ask; no 24h stats for USDT/IRT | no | no | yes (not USDT/IRT) | |
Aban Tether (broker) | آبان تتر | Toman | buy/sell price, no high/low | no | no | USDT/IRT only (1h+) | |
Kifpool (broker) | کیف پول من | Toman | sell price only; no USDT/IRT | no | no | no | |
OK-EX (broker) | اوکی اکسچنج | Toman | buy/sell price, no high/low | no | no | no | |
Tetherland (broker) | تترلند | Toman | one price, no high/low | no | no | no |
All thirteen give prices in both quotes: Toman (IRT) and USDT. USDT markets stay in USDT.
"Full" means last price, bid, ask, 24h high and low, change and volume.
Bitpin volume comes from a best-effort second call; if it fails, the ticker has no volume.
Exir publishes base volume only, so quote volume is approximated as volume times last price.
Use
ic_get_orderbookfor the best bid and ask where the ticker lacks them (not Balinex: it has no order book here).Nobitex refuses USDT/IRT candles (its CDN answers HTTP 403, browsers included): use Wallex for those.
Balinex is an order-book exchange, but its book is public only over a websocket and its trades not at all, so this server offers neither. Its price list refreshes about once a minute, so its price is a snapshot, not a last trade;
ic_best_dealranks it as an indicative listed price andic_arbitrageleaves it out unlessexecutable_onlyis false. Balinex has no USDT/IRT candles (use Wallex).ic_fees: every exchange except Balinex (which publishes no fee data) has trading fees; all but Aban Tether and OK-EX also publish withdrawal networks and fees. Ramzinex, OMPFinex, Bit24, Aban Tether and Tetherland publish trading fees only on a web page, so those values are fixed in the server (checked 2026-10-28).
Quick start
You need uv. No API key or account.
claude mcp add iran-crypto -- uvx iran-crypto-mcpSettings → Developer → Edit Config, then add:
{
"mcpServers": {
"iran-crypto": { "command": "uvx", "args": ["iran-crypto-mcp"] }
}
}Add the Claude Desktop block to ~/.cursor/mcp.json (or .cursor/mcp.json in a project).
Click Install in VS Code above, or add to .vscode/mcp.json:
{
"servers": {
"iran-crypto": { "type": "stdio", "command": "uvx", "args": ["iran-crypto-mcp"] }
}
}codex mcp add iran-crypto -- uvx iran-crypto-mcpOr in ~/.codex/config.toml:
[mcp_servers.iran-crypto]
command = "uvx"
args = ["iran-crypto-mcp"]Add the Claude Desktop block to ~/.gemini/settings.json, or run:
gemini mcp add iran-crypto uvx iran-crypto-mcpAdd the Claude Desktop block to ~/.codeium/windsurf/mcp_config.json.
It is a standard stdio MCP server: run uvx iran-crypto-mcp, or pip install iran-crypto-mcp and run iran-crypto-mcp.
Tools
All 8 tools are read-only. Exchange ids: nobitex, wallex, bitpin, ramzinex, tabdeal, ompfinex, exir, abantether, kifpool, okex, tetherland, bit24, balinex. quote is IRT (Toman, default) or USDT.
Tool | What it does |
| The supported exchanges, their native price unit and what each can answer |
| Coins an exchange trades against Toman (IRT) or USDT |
| One coin's price on every exchange in one call, cheapest first, with the spread (an exchange that fails is reported, not fatal) |
| Live price, best bid and ask, 24h range, change and volume of a coin on one exchange |
| Top bids and asks (1 to 20 levels) with the spread |
| Latest public trades, newest first (1 to 50; every order-book exchange except OMPFinex) |
| OHLC candles, 15m / 1h / 4h / 1d, up to 100 (order-book exchanges, Aban Tether for USDT/IRT) |
| Biggest 24h gainers or losers on one exchange, illiquid coins filtered out (up to 25) |
| Ranks exchanges by what a buy or sell of a given size gets, with order-book slippage and fill |
| Biggest cross-exchange price gaps over all coins, buy at the lowest ask and sell at the highest bid |
| Trading fees per exchange and, for one coin, withdrawal networks, fees and minimums, with the cheapest per network |
| Tether rate and major coins in one call: median Toman price, cheapest and dearest exchange, median change |
How it works
AI agent (Claude, Cursor, Copilot, ...)
│
│ MCP over stdio
▼
iran-crypto-mcp (runs on your machine)
│
│ HTTPS
└──────▶ public market-data endpoints of the 13 exchangesRuns locally and calls the public endpoints the exchanges' own websites use. No hosted server in between, no API key.
Uses a Chrome-like HTTP client and sends each exchange's own Origin and Referer, like its website does.
Answers are cached for 15 seconds and at most 2 requests run at once. Failed GET requests are retried.
Read-only: it never calls account, order or trading endpoints.
Good to know
Units are normalized. IRT prices are Toman (Rial exchanges are divided by 10); USDT prices are unchanged. The unit is in the field name:
price_toman,price_usdt.name_faon every exchange row is the exchange's own Persian name.One exchange can fail alone.
ic_compare_pricereports a failing exchange undererrorsand still compares the rest. HTTP 403 means that exchange's CDN refuses your network. SetIRAN_CRYPTO_MCP_PROXYto an Iranian HTTP proxy and try again.A spread is not always real. Quotes differ for real reasons (fees, liquidity, a stale last trade). Check the order book on both exchanges before acting on it.
Reply sizes are capped to stay under about 15 KB: order books 20 levels, trades 50, candles 100, movers 25.
Top movers skip coins below a 24h volume floor (default 100,000,000 Toman or 10,000 USDT; set
min_volumeto change it). Tabdeal publishes no volume, so its coins are not filtered.Prices are informational. They are live-ish (15 s cache), not a quote you can trade at.
FAQ
iran-crypto-mcp is an unofficial MCP server with 8 read-only tools over the public endpoints of Nobitex, Wallex,
Bitpin, Ramzinex, Tabdeal, OMPFinex, Exir, Bit24, Balinex, Aban Tether, Kifpool, OK-EX and Tetherland. It needs no API key.
Add the server (see Quick start) and ask, for example, "compare BTC on all Iranian exchanges in Toman".
The agent calls ic_compare_price, which returns every exchange's price in Toman, cheapest first, with the spread.
Some exchanges publish Rial and others Toman (1 Toman = 10 Rial). This server converts everything to Toman. If you still see a big gap, it is a real difference or a stale quote: check the order book.
No. It has no login or keys and never calls account, order or trading endpoints. It only reads public market data.
That exchange's CDN refuses requests from your network. The other exchanges still work. Set IRAN_CRYPTO_MCP_PROXY to
an HTTP proxy with an Iranian exit and retry. System proxy variables are ignored on purpose.
Bitpin, Tabdeal, OMPFinex, Exir, Bit24, Balinex and Tetherland publish no bid/ask in their ticker feeds, and Tabdeal publishes no volume. Call
ic_get_orderbook for the best bid and ask. The brokers (Aban Tether, Kifpool, OK-EX, Tetherland) and Balinex have no order book here.
Instant-swap brokers publish no price history of their own (Aban Tether only for USDT/IRT). Every order-book exchange has candles, and so does Balinex. Nobitex and Balinex have no USDT/IRT candles; use Wallex for those.
Use the full path to uvx (where uvx on Windows, which uvx on macOS/Linux) as command.
Configuration
Variable | Default | Meaning |
| unset | Optional HTTP proxy URL for exchange requests; system proxy settings are ignored. A comma-separated list is used one at a time: the next proxy takes over when one is blocked or fails to connect |
فارسی
iran-crypto-mcp یک سرور MCP غیررسمی و فقط‌خواندنی برای داده‌های عمومی بازار صرافی‌های ارز دیجیتال ایرانی است: نوبیتکس، والکس، بیت‌پین، رمزینکس، تبدیل، او ام پی فینکس و اکسیر. به دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و ...) اجازه می‌دهد قیمت یک ارز را در همه صرافی‌ها به تومان مقایسه کند.
چه کارهایی می‌کند
مقایسه قیمت صرافی‌ها: قیمت بیت‌کوین، تتر و بقیه ارزها در هر هفت صرافی با یک درخواست، از ارزان به گران، همراه با اختلاف قیمت.
قیمت تتر و بیت‌کوین به تومان: قیمت صرافی‌هایی که ریال می‌دهند تقسیم بر ۱۰ می‌شود، پس همه عددها قابل مقایسه‌اند.
دفتر سفارش (تا ۲۰ سطح)، معاملات اخیر و کندل‌ها (۱۵ دقیقه، ۱ ساعت، ۴ ساعت، روزانه؛ فقط نوبیتکس و والکس).
بیشترین رشد و افت ۲۴ ساعته هر صرافی، بدون ارزهای کم‌حجم.
نکته‌ها
فقط داده عمومی بازار؛ بدون ورود به حساب، کلید API، خرید و فروش.
اگر یک صرافی خطای ۴۰۳ بدهد، یعنی شبکه شما را نمی‌پذیرد؛ بقیه صرافی‌ها کار می‌کنند. متغیر
IRAN_CRYPTO_MCP_PROXYرا روی یک پروکسی HTTP ایرانی بگذارید.اختلاف قیمت همیشه فرصت واقعی نیست؛ قبل از هر تصمیم دفتر سفارش را ببینید.
قیمت‌ها ۱۵ ثانیه نگه داشته می‌شوند و توصیه مالی نیستند.
نصب (اول uv را نصب کنید). در Claude Code:
claude mcp add iran-crypto -- uvx iran-crypto-mcpدر Claude Desktop، Cursor و بقیه برنامه‌ها همان تنظیم بخش Quick start را بگذارید.
نمونه پرسش‌ها
«قیمت بیت‌کوین را در همه صرافی‌ها به تومان مقایسه کن.»
«تتر در کدام صرافی ارزان‌تر است؟»
«دفتر سفارش اتریوم در نوبیتکس را نشان بده.»
«بیشترین رشد ۲۴ ساعته در والکس چیست؟»
Development
git clone https://github.com/sepehr071/iran-crypto-mcp && cd iran-crypto-mcp
uv sync
uv run ruff check . && uv run ruff format --check .
uv run python -m pytest -q # offline unit tests
uv run python -m pytest -m live -q # calls the real exchange APIs
uv buildTools live in src/iran_crypto_mcp/markets.py, the per-exchange adapters in exchanges.py. Issues and PRs are welcome.
Releases: bump the version in pyproject.toml and server.json, then push a v* tag.
Related servers
iran-mcp: catalog of all Iranian-service MCP servers
tgju-mcp for dollar, gold, coin and commodity prices from TGJU
tsetmc-mcp for the Tehran stock exchange
milligold-mcp for gold prices
iran-news-mcp for Iranian news
Listed on mcpfarsi.ir, the Persian MCP marketplace
Disclaimer
Unofficial and not affiliated with or endorsed by any exchange. It reads public market data only: no keys, no account access, no trading. Prices are informational, not financial advice, and the endpoints can change without notice.
Author
Built and maintained by Sepehr Radmard (سپهر رادمرد). Connect on LinkedIn or follow @sepehr071 on GitHub for more MCP servers for Iranian websites, all listed in iran-mcp. If this saves you time, a star on the repo helps other people find it.
License
Available Tools
12 toolsic_arbitrageArbitrage ScannerARead-onlyIdempotent
Scan every coin on every exchange for the biggest price gaps: buy where it is cheapest, sell where it is dearest.
Buy legs use the ask, sell legs the bid; basis: last means only a last price, so the gap may not be executable.
Gaps over 15% are dropped (stale markets or same-symbol tokens). Fees and network costs are not included.
Inputs: limit, quote, min_gap_pct, min_exchanges, +1 more.
ic_best_dealBest Deal For An AmountARead-onlyIdempotent
Rank every exchange by what a buy or sell of a given size actually gets, with order-book slippage.
Order books are walked level by level (filled_pct < 100: book too thin); brokers fill at their own price;
source: listed_price (Tetherland, Balinex) is indicative, ranked last. receive is coins for a buy, Toman/USDT for a
sell. Fees are not deducted (see ic_fees). A snapshot, not a quote.
Inputs: coin (required), side (required), amount (required), quote.
ic_candlesPrice CandlesARead-onlyIdempotent
Get recent OHLC candles of one coin on one exchange, oldest first.
Rows are [time, open, high, low, close, volume in coin]. Nobitex and Balinex have no USDT/IRT candles (use Wallex).
Inputs: coin (required), exchange (required), limit, quote, +1 more.
ic_compare_priceCompare Coin PriceARead-onlyIdempotent
Compare one coin's price on every supported exchange in one call, cheapest first, with the spread.
coin='USDT' with quote='IRT' is the Tether rate in Toman. Exchanges that fail or do not list the coin appear under
errors; the rest are still compared. To check a spread is real, call ic_get_orderbook on the cheapest and priciest.
Inputs: coin (required), quote.
ic_feesFees And NetworksARead-onlyIdempotent
Compare trading fees and, for one coin, each exchange's withdrawal networks, fees and minimums.
Trading fees are level 1 for Toman markets, in percent. Withdrawal fees and minimums are in coin units;
withdraw: false = network closed now; cheapest = lowest open fee per network; missing = no fee data.
Inputs: coin, network.
ic_get_orderbookGet Order BookARead-onlyIdempotent
Get the top bids and asks of one coin's order book on one exchange, with the spread.
Levels are [price, quantity in coin], best first. Not on the brokers (Aban Tether, Kifpool, OK-EX, Tetherland) nor Balinex.
Inputs: coin (required), exchange (required), depth, quote.
ic_get_tickerGet TickerARead-onlyIdempotent
Get the live price, best bid and ask, 24h range, change and volume of one coin on one exchange.
Bid and ask are missing for Bitpin, Tabdeal, OMPFinex, Exir and Balinex; volume is missing for Tabdeal.
Inputs: coin (required), exchange (required), quote.
ic_list_exchangesList ExchangesARead-onlyIdempotent
List the supported Iranian crypto exchanges, their native price unit and what each can answer.
Inputs: no named parameters.
ic_list_marketsList MarketsARead-onlyIdempotent
List the coins an exchange trades against Toman (IRT) or USDT, to check a symbol.
Inputs: exchange (required), quote.
ic_market_overviewMarket OverviewARead-onlyIdempotent
Get the key Iranian crypto rates in one call: the Tether rate in Toman and major coins across all exchanges.
Per coin: median Toman price, cheapest and dearest exchange, median 24h change, exchange count. Start here for the Tether rate or "how is the market today".
Inputs: coins.
ic_recent_tradesRecent TradesARead-onlyIdempotent
Get the most recent public trades of one coin on one exchange, newest first.
Order-book exchanges except OMPFinex.
Inputs: coin (required), exchange (required), limit, quote.
ic_top_moversTop MoversARead-onlyIdempotent
List the biggest 24h gainers or losers on one exchange, with illiquid coins filtered out.
Tabdeal publishes no volume, so it is not volume-filtered.
Inputs: exchange (required), limit, quote, direction, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 12 tools
Most tools have clearly distinct scopes: raw order book, single-exchange ticker, recent trades, candles, fees, exchange listing, and cross-exchange analytics. There is some conceptual overlap among ic_get_ticker, ic_compare_price, ic_market_overview, ic_best_deal, and ic_arbitrage, but the descriptions make their different jobs reasonably clear.
All tools use a consistent ic_ prefix and snake_case, which makes the set predictable. The verb/noun pattern is mostly consistent, though a few names are noun-only (ic_candles, ic_fees, ic_arbitrage) rather than verb_noun.
Twelve tools is well scoped for an Iranian crypto market-data server. Each tool appears to cover a distinct workflow: discovery, pricing, order books, trades, candles, arbitrage, fees, and overview.
The surface covers the core market-data lifecycle well: exchanges, markets, tickers, order books, trades, candles, movers, arbitrage, fees, and overview. Minor gaps may exist around historical candle depth or global coin metadata, but agents can work around these.
Maintenance
Related MCP Connectors
Crypto market data for AI agents: live prices, OHLCV, sentiment, indicators and exchanges.
Live crypto + IDX stock market intelligence for AI agents — 19 tools, no API key.
Crypto market & research MCP for AI agents: prices, derivatives, options, on-chain, sentiment, news.
Crypto screener for AI agents: Binance, Bybit, OKX, Hyperliquid data, trends, charts and alerts.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides live cryptocurrency market data from over 100 exchanges, enabling AI agents to fetch prices, order books, funding rates, and more for trading analysis and arbitrage opportunities.132MIT

Arzbin MCP Serverofficial
AlicenseNot gradedqualityDmaintenanceLive Iran exchange rates, gold, crypto, and Toman/Rial market data for AI agents.2MIT- AlicenseAqualityCmaintenanceConnects AI assistants to the BitPin Iranian cryptocurrency exchange API, enabling users to inspect market prices and orderbooks, place and cancel trading orders, view wallet balances, and manage deposits and withdrawals. It supports public market data without API keys, authenticated trading and wallet operations, and Persian-language inputs for currencies, market pairs, order sides, and numerals.2637 npmMIT
- AlicenseAqualityBmaintenanceEnables AI agents to read Tehran Stock Exchange and Iran Fara Bourse market data—quotes, top movers, order books, price history, sector indices, and real vs legal trading—through read-only tools. Requires no API key, returning compact JSON in Rial directly to Claude, Cursor, or Copilot.8239 PyPI6MIT