ts_search_symbols
Search symbols
Find Tehran Stock Exchange instruments (shares, funds, rights, bonds) by ticker or name. Pass a result's `symbol` or `ins_code` to the other ts_ tools. Empty list: retry a shorter name.
limitquery必填
io.github.sepehr071由 GitHub 帳號 sepehr071 發布v0.2.0更新於 Nov 8, 2026
Unofficial read-only Tehran Stock Exchange (TSETMC): quotes, movers, order book, history, indices.
非官方唯讀 MCP 伺服器,讓助理查詢德黑蘭證券交易所與伊朗法拉交易所的報價、漲跌排行、委託簿、歷史行情與指數。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
參照 儲存庫 中的啟動說明。
Let your AI agent read the Tehran Stock Exchange (بورس تهران).
An unofficial, read-only MCP server for TSETMC, the data portal of the Tehran Stock Exchange and Iran Fara Bourse:
quotes, top movers, order book, daily history, real vs legal trading and market indices, from Claude, Cursor or Copilot.
[PyPI] [Python] [CI] [MCP Registry] [License: MIT] [mcpfarsi]
For AI agents · Quick start · What it can do · Tools · FAQ · فارسی
uvx tsetmc-mcp or claude mcp add tsetmc -- uvx tsetmc-mcp. Transport: stdio. Needs uv (Python 3.10+).TSETMC_MCP_PROXY (HTTP proxy URL, or a comma-separated list); system proxy settings are ignored.ts_. Typical sequence: ts_indices -> ts_market_movers -> ts_get_quote -> ts_price_history.
If you only have a name, call ts_search_symbols first and pass its symbol or ins_code to the other tools.YYYY-MM-DD).TSETMC_MCP_PROXY.server.json and the
iran-mcp catalog.TSETMC is the place Iranian traders look at, but it is a heavy web page built for human eyes. Asking "which sectors
are up today, which stocks hit the daily limit, and are individual investors buying or selling Foolad?" means opening
several screens. With tsetmc-mcp an agent answers it in a few calls and returns a short summary instead of tables
of raw numbers.
You: How is the market today, and what are the biggest gainers?
Agent: calls
ts_indices(limit=5)->ts_market_movers(market="bourse", sort_by="gain", limit=5)It reads the total index, the market state and the strongest sector indices, then lists the top gainers with their last price, change and whether they are stuck at the upper price limit.
Every reply is trimmed to stay under about 15 KB, so it does not flood the agent's context.
Example prompts:
You need uv. No API key or account.
Settings → Developer → Edit Config, then add:
Add the Claude Desktop block above to ~/.cursor/mcp.json (or .cursor/mcp.json in a project).
Click Install in VS Code above, or add to .vscode/mcp.json:
Or in ~/.codex/config.toml:
Add to ~/.gemini/settings.json:
Add the Claude Desktop block to ~/.codeium/windsurf/mcp_config.json.
It is a standard stdio MCP server: run uvx tsetmc-mcp, or pip install tsetmc-mcp and run tsetmc-mcp.
Pass a ticker (فولاد), an exact name, or a numeric ins_code as symbol. Index tools take an index name such as شاخص کل.
All 8 tools are annotated readOnlyHint: true.
tsetmc-mcp runs locally and calls the same endpoints the tsetmc.com site uses. It has no hosted server in between
and no API key. The TSETMC API is undocumented and blocks plain HTTP clients, so requests go out through a
Chrome-impersonating client. It sends at most 2 requests at a time with a little jitter, keeps answers for 15 seconds,
retries a failed GET up to twice, and only talks to cdn.tsetmc.com. It only reads.
last vs close: last is the last trade, close the closing (volume-weighted) price; change_pct compares last with yesterday's close.TSETMC_MCP_PROXY to an HTTP proxy with an Iranian exit. System proxy variables are ignored on purpose.ts_market_movers returns at most 30 rows, ts_price_history 50 days, ts_index_history 100 days, ts_real_legal 10 days, ts_indices 60 indices.ts_real_legal makes one upstream call per day, so ask for few days. Days with no data are listed under unavailable_dates.bourse, farabourse, rights and bonds. Only instruments that traded today are ranked.ins_code.TSETMC has no documented public API. tsetmc-mcp is an unofficial MCP server with 8 read-only tools that calls the
same endpoints the tsetmc.com web app uses and returns compact JSON for AI agents.
Yes. ts_market_movers accepts market="farabourse", and ts_search_symbols finds Fara Bourse instruments;
each match shows its market.
Add the server with claude mcp add tsetmc -- uvx tsetmc-mcp, or use the matching config in
Quick start, then ask in plain language, in Persian or English.
Rial. Every tool reports unit: "rial" where it returns prices. Divide by 10 for Toman.
The order book is only open while the market is. TSETMC trades Saturday to Wednesday mornings; after the close, or
for an instrument that did not trade today, ts_order_book returns no levels and a note.
tsetmc.com blocks some networks. Try from an Iranian connection, or set TSETMC_MCP_PROXY to an HTTP proxy with an
Iranian exit. Plain curl is always refused because the site checks the TLS fingerprint; the server handles that itself.
No. It has no login and no trading calls, it only reads public market data. Nothing it returns is financial advice.
It is what TSETMC serves, kept for up to 15 seconds in a local cache, and it may be delayed. Check the date and
time fields in a quote for the moment of the last trade.
tsetmc-mcp یک سرور MCP غیررسمی و فقطخواندنی برای سامانه TSETMC (مدیریت فناوری بورس تهران) است. این سرور به دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و ...) اجازه میدهد قیمت نماد، شاخص کل، دفتر سفارش و آمار معاملات بورس تهران و فرابورس را بخواند.
چه کارهایی میکند
نکتهها
TSETMC_MCP_PROXY را روی یک پراکسی HTTP با خروجی ایران بگذارید.نصب (اول uv را نصب کنید). در Claude Code:
در Claude Desktop، Cursor و بقیه برنامهها همان تنظیم بخش Quick start را بگذارید.
نمونه پرسشها
All tools live in src/tsetmc_mcp/markets.py; each is a typed async function with a docstring that tells the agent
when to use it. Issues and PRs are welcome.
Releases: bump the version in pyproject.toml and server.json, then push a v* tag. GitHub Actions publishes to PyPI.
Unofficial and not affiliated with or endorsed by TSETMC or the Tehran Securities Exchange Technology Management Co. It is read-only and uses the endpoints of the tsetmc.com web app, which can change without notice. Data is informational and may be delayed. Nothing here is financial advice.
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.
來源:README.md,提交 9209e01
Search symbols
Find Tehran Stock Exchange instruments (shares, funds, rights, bonds) by ticker or name. Pass a result's `symbol` or `ins_code` to the other ts_ tools. Empty list: retry a shorter name.
limitquery必填Stock quote
Latest price, daily range, volume and key facts of one instrument on the Tehran Stock Exchange. Use ts_order_book for bids and asks, ts_price_history for earlier days.
symbol必填Market movers
Top traded instruments of a market today, ranked by gain, loss, volume, value or trade count. Only traded instruments. `limit_up`/`limit_down` = stuck at the daily limit. Pass a row's `symbol` to other ts_ tools.
limitmarketsort_byOrder book
Best five bid and ask levels (price, volume, order count) of one instrument. Empty outside trading hours. Ask price 0 = buy queue (no sellers), bid price 0 = sell queue.
symbol必填Daily price history
Daily open, high, low, close, volume, trades and value of one instrument for its latest trading days, newest first. Prices are unadjusted for capital increases and dividends.
dayssymbol必填Real vs legal trading
Buy and sell volume, value and buyer/seller counts split by real (individual) and legal (institutional) traders per day. `net_real_volume` > 0: individuals net bought. Newest day first.
dayssymbol必填Market indices
TSE total index, market state and trading totals, plus every sector and market index with its change. Pass an index `name` to ts_index_history for past values.
limitqueryIndex history
Daily close, high, low and percent change of a TSE index (total, equal-weight, sector...), newest first. Names: see ts_indices.
daysindex已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
news.exchange官方發布者
一個唯讀的遠端目錄,讓助理查詢加密貨幣註冊優惠碼、合作連結、活動日期和 Exchange.news 新聞。

由 GitHub 帳號 kriton-dev 發布
託管於 Apify 的遠端 MCP 伺服器,讓助理讀取歐洲央行最新每日匯率參考價與計算出的交叉匯率。

由 GitHub 帳號 Servosity 發布
非官方 MCP 伺服器,讓助理透過 REST 跨客戶租用戶稽核與管理 Microsoft Exchange Online 信箱,不需 PowerShell。

由 GitHub 帳號 PatrickPi1312 發布
查詢服務商;在維也納傳送經授權的安裝或清潔諮詢。無需客戶帳戶。AI 翻譯

由 GitHub 帳號 sepehr071 發布
非官方的伊朗商品交易所唯讀 MCP 伺服器,讓助理查詢商品成交、價格、供應公告與市場彙總資料。
claude mcp add tsetmc -- uvx tsetmc-mcp{ "mcpServers": { "tsetmc": { "command": "uvx", "args": ["tsetmc-mcp"] } }}{ "servers": { "tsetmc": { "type": "stdio", "command": "uvx", "args": ["tsetmc-mcp"] } }}codex mcp add tsetmc -- uvx tsetmc-mcp[mcp_servers.tsetmc]command = "uvx"args = ["tsetmc-mcp"]{ "mcpServers": { "tsetmc": { "command": "uvx", "args": ["tsetmc-mcp"] } }} AI agent (Claude, Cursor, Copilot, ...) │ │ MCP over stdio ▼ tsetmc-mcp (runs on your machine) │ │ HTTPS └──────▶ cdn.tsetmc.com quotes, market watch, order book, indicesnpx @modelcontextprotocol/inspector uvx tsetmc-mcpclaude mcp add tsetmc -- uvx tsetmc-mcpgit clone https://github.com/sepehr071/tsetmc-mcp && cd tsetmc-mcpuv syncuv run ruff check . && uv run ruff format --check .uv run python -m pytest -q # offline unit testsuv run python -m pytest -m live -q # calls tsetmc.comuv build