
Security News
PHP Foundation Says Chainguard Broke Security Embargo Ahead of Emergency Patches
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.
iran-crypto-mcp
Advanced tools
Unofficial read-only MCP server for Iranian crypto exchanges: public prices, order books, trades and candles in Toman.
Compare any coin across seven 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 and Exir: prices, order books, recent trades, candles and top movers.
For AI agents · Why · Quick start · Exchanges · Tools · FAQ · فارسی
uvx iran-crypto-mcp or claude mcp add iran-crypto -- uvx iran-crypto-mcp. Transport: stdio. Needs uv (Python 3.10+).IRAN_CRYPTO_MCP_PROXY (HTTP proxy URL, or a comma-separated list); system proxy settings are ignored.ic_. Start with ic_compare_price. Typical sequence: ic_compare_price -> ic_get_orderbook -> ic_candles.*_toman); USDT markets say *_usdt.server.json and the awesome-iran-mcp catalog.ic_compare_price returns the coin on every exchange, cheapest first, with the spread.name_fa, the exchange's own Persian name, so answers in Persian do not depend on the model spelling it.Example prompts:
| Exchange | Persian name | Site | Published unit | Ticker | Order book | Trades | Candles |
|---|---|---|---|---|---|---|---|
| Nobitex | نوبیتکس | nobitex.ir | Rial | full | yes | yes | yes (not USDT/IRT) |
| Wallex | والکس | wallex.ir | Toman | full | yes | yes | yes |
| Bitpin | بیتپین | bitpin.ir | Toman | no bid/ask | yes | yes | no |
| Ramzinex | رمزینکس | ramzinex.com | Rial | full | yes | yes | no |
| Tabdeal | تبدیل | tabdeal.org | Toman | no bid/ask, no volume | yes | yes | no |
| OMPFinex | او ام پی فینکس | ompfinex.com | Rial | no bid/ask | yes | no | no |
| Exir | اکسیر | exir.io | Toman | no bid/ask | yes | yes | no |
ic_get_orderbook for the best bid and ask where the ticker lacks them.You need uv. No API key or account.
claude mcp add iran-crypto -- uvx iran-crypto-mcp
Settings → 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-mcp
Or 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-mcp
Add 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.
All 8 tools are read-only. Exchange ids: nobitex, wallex, bitpin, ramzinex, tabdeal, ompfinex, exir. quote is IRT (Toman, default) or USDT.
| Tool | What it does |
|---|---|
ic_list_exchanges | The supported exchanges, their native price unit and what each can answer |
ic_list_markets | Coins an exchange trades against Toman (IRT) or USDT |
ic_compare_price | One coin's price on every exchange in one call, cheapest first, with the spread (an exchange that fails is reported, not fatal) |
ic_get_ticker | Live price, best bid and ask, 24h range, change and volume of a coin on one exchange |
ic_get_orderbook | Top bids and asks (1 to 20 levels) with the spread |
ic_recent_trades | Latest public trades, newest first (1 to 50; not on OMPFinex) |
ic_candles | OHLC candles, 15m / 1h / 4h / 1d, up to 100 (Nobitex and Wallex) |
ic_top_movers | Biggest 24h gainers or losers on one exchange, illiquid coins filtered out (up to 25) |
AI agent (Claude, Cursor, Copilot, ...)
│
│ MCP over stdio
▼
iran-crypto-mcp (runs on your machine)
│
│ HTTPS
└──────▶ public market-data endpoints of the 7 exchanges
price_toman, price_usdt.name_fa on every exchange row is the exchange's own Persian name.ic_compare_price reports a failing exchange under errors and still compares the rest. HTTP 403 means that exchange's CDN refuses your network. Set IRAN_CRYPTO_MCP_PROXY to an Iranian HTTP proxy and try again.min_volume to change it). Tabdeal publishes no volume, so its coins are not filtered.iran-crypto-mcp is an unofficial MCP server with 8 read-only tools over the public endpoints of Nobitex, Wallex,
Bitpin, Ramzinex, Tabdeal, OMPFinex and Exir. 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 and Exir publish no bid/ask in their ticker feeds, and Tabdeal publishes no volume. Call
ic_get_orderbook for the best bid and ask.
Only Nobitex and Wallex publish candles through public endpoints this server uses. Nobitex refuses USDT/IRT candles; use Wallex for those.
uvx is not foundUse the full path to uvx (where uvx on Windows, which uvx on macOS/Linux) as command.
| Variable | Default | Meaning |
|---|---|---|
IRAN_CRYPTO_MCP_PROXY | 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 و ...) اجازه میدهد قیمت یک ارز را در همه صرافیها به تومان مقایسه کند.
چه کارهایی میکند
نکتهها
IRAN_CRYPTO_MCP_PROXY را روی یک پروکسی HTTP ایرانی بگذارید.نصب (اول uv را نصب کنید). در Claude Code:
claude mcp add iran-crypto -- uvx iran-crypto-mcp
در Claude Desktop، Cursor و بقیه برنامهها همان تنظیم بخش Quick start را بگذارید.
نمونه پرسشها
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 build
Tools 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.
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.
FAQs
Unofficial read-only MCP server for Iranian crypto exchanges: public prices, order books, trades and candles in Toman.
We found that iran-crypto-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.

Security News
PHP releases emergency patches for two critical RCE vulnerabilities as agencies urge organizations to take unpatched sites offline.

Threat Research
/Security News
A supply chain attack compromised LiteLLM 1.107.0 on PyPI and Docker, spreading malware that steals cloud credentials, developer secrets, and AI provider keys.