Neshan Maps

io.github.sepehr071由 GitHub 帳號 sepehr071 發布v0.2.0更新於 Nov 7, 2026

Read-only Neshan map of Iran: places, reviews, photos, routes, travel times, zones, air quality.

概覽

AI 產生的概覽

Neshan(伊朗地圖應用程式)的非官方唯讀 MCP 伺服器,讓助理搜尋地點、查看評論與照片、規劃路線、查詢行程時間、空氣品質與德黑蘭交通管制區。

可以做什麼
  • 依名稱或類別在某個城市或座標附近搜尋地點、商家、街道與廣場,可依營業中與評分篩選
  • 讀取地點詳細資料、評論與照片,並依類別列出周邊設施
  • 將經緯度反查為街道地址與省份,查詢城市空氣品質指標
  • 取得汽車、機車、自行車、步行及公車捷運路線、到多個地點的行程時間,以及依出發時間規劃路線
  • 檢查某個點或某條路線是否位於德黑蘭交通管制區或單雙號限行區內
適用情境
適合使用者詢問伊朗境內的地點、地址、營業時間、評價、空氣品質、限行區域,或從 A 到 B 怎麼走、要多久時使用,可用波斯語或英語提問。不適用於伊朗以外的地點、計程車或外送價格,也無法把地點存進 Neshan 帳號。
執行需求
透過 uvx(或 pip)以 stdio 方式在本機執行,需要 uv 與 Python 3.10+。不需要 API 金鑰或帳號。可選環境變數 NESHAN_MCP_PROXY 用來設定 HTTP 代理或逗號分隔的代理清單,系統代理設定會被忽略。需要能連線到 neshan.org。
安裝前請注意
唯讀:不登入、不儲存、不發文,呼叫工具前不需確認。它呼叫 neshan.org 網頁版自身的端點並解碼其加密回應,屬非官方實作,Neshan 變更端點後可能失效。在伊朗境外,周邊設施工具會回傳 HTTP 403,除非把 NESHAN_MCP_PROXY 指向伊朗出口的代理。行程時間、限行時段與空氣品質僅供參考,請以官方資訊為準。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Neshan Maps,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[neshan-mcp: unofficial Neshan map MCP server for Claude, Cursor and Copilot, showing a live route from Azadi Tower to the Tehran Grand Bazaar]

neshan-mcp: Neshan map of Iran MCP server for AI agents

Let your AI agent search places, get directions and check Tehran's traffic zones on Neshan (نشان).
neshan-mcp is an unofficial, read-only MCP server for Neshan, the Iranian map and navigation app.
Its 11 tools cover place search, place details, reviews, photos and menus, nearby places, reverse geocoding, city air quality, car, motorcycle, bicycle, walking and bus/metro directions, travel times to several places and Tehran traffic-zone checks. No API key or account is needed.

[PyPI] [Python] [CI] [MCP Registry] [License: MIT]

[Install in VS Code]

For AI agents · Quick start · What it can do · Tools · FAQ · فارسی


For AI agents

  • What: unofficial MCP server (model context protocol) for neshan.org/maps, the Neshan map of Iran. Queries can be Persian or English; answers keep Neshan's Persian names, addresses and steps.
  • Install: uvx neshan-mcp or claude mcp add neshan -- uvx neshan-mcp. Transport: stdio. Needs uv (Python 3.10+).
  • Auth: none, no API key or account. Optional NESHAN_MCP_PROXY (HTTP proxy URL, or a comma-separated list); system proxy settings are ignored.
  • Access: read-only. It cannot log in, save places or post reviews, so no confirmation is needed before calling any tool.
  • Tools: 11, all prefixed ns_. Typical sequences: ns_search -> ns_place / ns_reviews / ns_photos / ns_nearby; ns_search -> ns_travel_times -> ns_route; ns_zone_check before driving into central Tehran.
  • Use when: the user asks where something is in Iran, what is near a place, whether a business is open, what people say about it or what its menu looks like, what address a coordinate is, how polluted a city's air is, whether an address is inside Tehran's traffic zone, or how to get from A to B and how long it takes, now or at a given time.
  • Do not use when: the user wants places outside Iran, taxi or delivery prices, or to save places in a Neshan account.
  • Output: compact JSON. Coordinates are lat,lng (latitude first). Distances in metres or km, times in minutes, fares in Toman, review dates in the Persian calendar, departure times in Tehran time.
  • Network: every tool works from an Iranian connection. Through a foreign connection all tools worked in testing except ns_nearby, which Neshan answers with HTTP 403; set NESHAN_MCP_PROXY to an Iranian proxy for it.
  • Machine-readable: server.json and the iran-mcp catalog.

Why

Neshan knows Iran in detail: businesses with opening hours and reviews, live traffic, Tehran's traffic and odd-even plans, bus, BRT and metro lines. Its developer API needs a paid key, and its web map is built for clicking. neshan-mcp gives an agent the same public data the web map shows any visitor, in a few small calls:

You: How long does it take to drive from Azadi Tower to the Tehran Grand Bazaar, and will I enter the traffic zone?

Agent: calls ns_search("برج آزادی"), ns_search("بازار بزرگ تهران"), then ns_route(origin="35.699739,51.338097", destination="35.671897,51.422428", steps=false)

Neshan suggests 48 minutes (13 km) via Jomhouri-e Eslami and Mostafa Khomeini streets; the route via Saeedi expressway and Shoush is 16 km and takes 45 minutes. All three routes enter the traffic-plan zone (طرح ترافیک) and the odd-even zone, which run from 06:30 to 18:00. The bazaar itself is inside both zones.

Real answer from a live call on 2026-10-31 at 17:21 Tehran time; times change with traffic.

Every reply is compact JSON with only the fields that matter, so it does not flood the agent's context.

What it can do

  • Find places by name or category near a city or a point: cafes, pharmacies, petrol stations, streets, squares. Filter by open now and rating, the way the site does
  • Read a place: address, coordinates, phones, website, rating and votes, open now, hours for each weekday, newest photos
  • Read reviews, newest first or the ones Neshan features, and browse photos, including the menu album
  • See what is nearby: restaurants, cafes, parks, toilets, banks, ATMs, parking and bus stops around a place
  • Reverse geocode a coordinate into a street address and province
  • Check air quality: today's AQI of a city, its pollutants and every monitoring station, or the index at a point
  • Get directions by car, motorcycle, bicycle or on foot: alternatives, live travel time, Persian turn-by-turn steps, up to 3 stops
  • Plan by time: leave at a given time or arrive by one (car, Tehran, Karaj and Mashhad), with Neshan's traffic forecast
  • Rank by travel time: one origin to up to 10 places, fastest first
  • Check Tehran's zones: is a point inside the traffic-plan zone or the odd-even zone, and does a route enter them; avoid them or toll roads
  • Take public transport: bus, BRT and metro options with lines, stops, walking and fares in Toman
  • Read-only by design: no login, no saving, no posting

Example prompts:

  • "Find 24-hour pharmacies near Milad Tower that are open now and rated 4 or more."
  • "Is Lamiz Coffee in Gisha open now? What's its phone number, and what do people say about it?"
  • "Show me the menu photos of Milad Tower."
  • "Which of these three branches is closest by car from Azadi Square?"
  • "I need to be at Milad Tower at 9 tomorrow. When should I leave from Azadi Square?"
  • "Is Ferdowsi Square inside Tehran's traffic zone?"
  • "How polluted is the air in Isfahan today?"
  • نزدیک‌ترین داروخانه شبانه‌روزی به برج میلاد کجاست؟
  • از میدان آزادی تا بازار تهران با ماشین چقدر راه است؟ وارد طرح ترافیک می‌شوم؟
  • با مترو و اتوبوس از میدان آزادی به برج میلاد چطور بروم و هزینه‌اش چقدر است؟

Quick start

You need uv. No API key or account.

Claude Code
bash
claude mcp add neshan -- uvx neshan-mcp
Claude Desktop

Settings → Developer → Edit Config, then add:

json
{  "mcpServers": {    "neshan": { "command": "uvx", "args": ["neshan-mcp"] }  }}
Cursor

Add the Claude Desktop block above to ~/.cursor/mcp.json (or .cursor/mcp.json in a project).

VS Code (Copilot agent mode)

Click Install in VS Code above, or add to .vscode/mcp.json:

json
{  "servers": {    "neshan": { "type": "stdio", "command": "uvx", "args": ["neshan-mcp"] }  }}
Codex CLI
bash
codex mcp add neshan -- uvx neshan-mcp

Or in ~/.codex/config.toml:

toml
[mcp_servers.neshan]command = "uvx"args = ["neshan-mcp"]
Gemini CLI

Add to ~/.gemini/settings.json:

json
{  "mcpServers": {    "neshan": { "command": "uvx", "args": ["neshan-mcp"] }  }}
Windsurf

Add the Claude Desktop block to ~/.codeium/windsurf/mcp_config.json.

Anything else

It is a standard stdio MCP server: run uvx neshan-mcp, or pip install neshan-mcp and run neshan-mcp.

Tools

Points are lat,lng, e.g. 35.6997,51.3380. Place ids come from ns_search.

ToolWhat it does
ns_searchFind places, businesses, streets and squares on the Neshan map by name or category near a city or point
ns_placeGet one place's details on Neshan: address, coordinates, phones, website, rating, opening hours and photos
ns_reviewsList visitors' reviews of a place on Neshan: star rating, Persian date, comment, likes and owner reply
ns_photosList a place's photos on Neshan as image URLs, 10 per page, with date and uploader, including menu photos
ns_nearbyList what is around a place on Neshan by category: restaurants, cafes, parks, toilets, banks, ATMs, parking
ns_reverse_geocodeTurn a latitude/longitude into Neshan's street address and province (reverse geocoding)
ns_air_qualityGet today's air quality index (AQI) of an Iranian city from Neshan, with pollutants and the readings of each station
ns_routeGet car, motorcycle, bicycle or walking directions on Neshan: distance, travel time and turn-by-turn steps
ns_travel_timesGet the travel time from one point to several places on Neshan, fastest first
ns_zone_checkCheck whether a point is inside Tehran's traffic-plan zone or odd-even (air-pollution) zone, with plan hours
ns_transit_routeGet bus, BRT and metro options between two points on Neshan, with lines, stops, walking and fares

All 11 tools are annotated readOnlyHint: true.

How it works

text
  AI agent  (Claude, Cursor, Copilot, ...)      │      │  MCP over stdio      ▼  neshan-mcp  (runs on your machine)      │      │  HTTPS      └──────▶  neshan.org/maps/pwa-api   search, places, reviews, photos, routes, transit, air quality

neshan-mcp runs locally and calls the same endpoints the neshan.org/maps web app uses, with no hosted server in between and no API key. Requests go out through a Chrome-impersonating client and look like the web app's own. It sends at most 3 requests at a time with a little jitter, caches answers (places and addresses for 5 minutes, live routes for 1 minute, transit, zones and air quality for 10 minutes), retries a failed call up to twice, and only talks to neshan.org.

Neshan's web app encodes most of its answers: they arrive as shuffled base64 text, and transit answers are also XOR-encoded. The server decodes them the same way the web app's own script does. If Neshan changes the scheme, the server reads the new values from the site's current JavaScript once, the way a browser loads it, and retries. An answer it still cannot read is reported as an error, never as made-up data.

Good to know

  • Coordinates are lat,lng. Latitude first. A swapped pair is rejected with a hint.
  • near takes a city or a point. 23 big cities by name in English or Persian (Tehran, Mashhad, Isfahan, Shiraz, Tabriz, Karaj, Qom, Ahvaz, ...). For a smaller town, put its name in the query.
  • Search returns at most 30 places, with no paging. Sponsored results (marked آگهی on the site) are left out. open_now and min_rating use Neshan's own filters (open now; 3.5+, 4+, 4.5+).
  • Travel times are Neshan's estimates for leaving now, or for depart_at. Departure and arrival times are Tehran time (YYYY-MM-DD HH:MM, Gregorian); Neshan offers them for cars in Tehran, Karaj and Mashhad.
  • Toll roads are flagged (toll_road), but not priced: Neshan's web app never shows a toll amount.
  • Transit has no travel time. Neshan's web map gives fares, lines and stops, but no duration, for bus and metro.
  • ns_nearby needs an Iranian connection. Neshan answers it with HTTP 403 from abroad; set NESHAN_MCP_PROXY to an Iranian proxy, or use ns_search with the place's lat,lng as near.
  • Air-quality cities use their English name (Tehran, bandar abbas) or the Persian name for the 23 cities above. A city without monitoring stations returns "no data".
  • Persian output. Names, addresses, hours (Persian digits), steps and review dates are as Neshan shows them.
  • What it does not do: no login, saving or reviewing; no places outside Iran; no live traffic incidents; no temperature or AI review summaries (Neshan serves those only to signed-in users).

FAQ

Is there a Neshan MCP server or a free Neshan API?

Neshan sells a developer API that needs an API key. neshan-mcp is an unofficial MCP server with 11 read-only tools that calls the public endpoints of the neshan.org web map instead, so it needs no key, account or payment.

Does it need a Neshan API key?

No. It uses no API key, token or login. Install it with uvx neshan-mcp and ask in plain language.

Is my car allowed in Tehran's traffic zone right now?

ns_zone_check tells you whether a point is inside the traffic-plan zone (طرح ترافیک) or the odd-even zone (طرح آلودگی هوا) and the hours Neshan shows for each plan, e.g. 06:30 to 18:00. Whether your own car may enter depends on your permit and plate, which the server does not know. ns_route can route around both zones with avoid_traffic_zone and avoid_odd_even.

What is Tehran's air quality today?

Ask the agent; ns_air_quality("Tehran") returns today's AQI on the 0-500 scale with Neshan's label (e.g. قابل قبول, acceptable), the pollutant readings and every monitoring station, most polluted first.

How do I use it with Claude, Cursor or Copilot?

Add the server with claude mcp add neshan -- uvx neshan-mcp, or use the matching config in Quick start, then ask in Persian or English.

Does it work outside Iran?

Yes, except for ns_nearby. Everything else worked through a foreign connection in testing. If your network is blocked, set NESHAN_MCP_PROXY to an HTTP proxy. System proxy variables are ignored on purpose.

How is it different from balad-mcp?

balad-mcp reads Balad, another Iranian map. Both search places and give directions; neshan-mcp adds bicycle, walking and public-transit routes, departure-time routing, a zone check for any point in Tehran and air quality. You can install both and compare.

Can it save places or write reviews?

No. It has no login and only reads public data.

How do I debug what the agent sees?
bash
npx @modelcontextprotocol/inspector uvx neshan-mcp

Configuration

VariableDefaultMeaning
NESHAN_MCP_PROXYunsetOptional HTTP proxy URL for the neshan.org 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 cannot connect

فارسی: سرور MCP نقشه نشان

neshan-mcp یک سرور MCP غیررسمی و فقط‌خواندنی برای نقشه نشان است. با آن دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و برنامه‌های دیگر) می‌تواند مکان‌ها را پیدا کند، مسیر بدهد و محدوده طرح ترافیک تهران را بررسی کند. کلید API و حساب کاربری لازم نیست.

چه کارهایی می‌کند

  • جستجوی مکان با نام یا دسته (کافه، داروخانه، پمپ بنزین، خیابان، میدان) در یک شهر یا نزدیک یک نقطه، با فیلتر «باز باشد» و امتیاز، همان‌طور که در سایت نشان است.
  • جزئیات مکان: آدرس، مختصات، تلفن، وب‌سایت، امتیاز، ساعت کاری هر روز هفته و تازه‌ترین عکس‌ها.
  • نظرات کاربران (تازه‌ترین یا برگزیده) و عکس‌ها، از جمله عکس منو.
  • امکانات نزدیک هر مکان: رستوران، کافه، پارک، سرویس بهداشتی، بانک، خودپرداز، پارکینگ و ایستگاه اتوبوس.
  • تبدیل مختصات به آدرس.
  • کیفیت هوا: شاخص امروز هر شهر، آلاینده‌ها و همه ایستگاه‌های سنجش.
  • مسیریابی با خودرو، موتور، دوچرخه و پیاده، با زمان سفر زنده، گام‌های مسیر به فارسی و تا ۳ توقف بین راه.
  • مسیریابی با زمان حرکت یا رسیدن برای خودرو در تهران، کرج و مشهد، با پیش‌بینی ترافیک نشان.
  • مقایسه زمان سفر از یک مبدا تا حداکثر ۱۰ مقصد، از سریع‌ترین به کندترین.
  • طرح ترافیک و زوج و فرد: آیا یک نقطه داخل محدوده است و آیا مسیر وارد آن می‌شود، با امکان دور زدن محدوده‌ها و عوارضی.
  • حمل‌ونقل عمومی: گزینه‌های اتوبوس، بی‌آرتی و مترو با خط‌ها، ایستگاه‌ها و هزینه سفر به تومان.

نکته‌ها

  • فقط‌خواندنی است: وارد حساب نمی‌شود، مکانی ذخیره نمی‌کند و نظر ثبت نمی‌کند.
  • مختصات را به شکل lat,lng بدهید، یعنی اول عرض جغرافیایی (مثل 35.6997,51.3380).
  • ابزار امکانات نزدیک (ns_nearby) فقط با اینترنت ایران کار می‌کند. بیرون از ایران متغیر NESHAN_MCP_PROXY را روی یک پراکسی با خروجی ایران بگذارید.
  • زمان حرکت و رسیدن به وقت تهران و تاریخ میلادی است (مثل 2026-11-01 08:00).
  • برای مسیرهای عوارضی فقط نشانه عوارضی بودن برمی‌گردد، چون خود سایت نشان مبلغ عوارض را نمایش نمی‌دهد.
  • پاسخ‌های سایت نشان رمزگذاری‌شده است و این سرور آن‌ها را به همان روشی باز می‌کند که خود سایت باز می‌کند.

نصب (اول uv را نصب کنید). در Claude Code:

bash
claude mcp add neshan -- uvx neshan-mcp

در Claude Desktop، Cursor و برنامه‌های دیگر همان تنظیم بخش Quick start را بگذارید.

نمونه پرسش‌ها

  • «نزدیک‌ترین داروخانه شبانه‌روزی به برج میلاد کجاست و الان باز است؟»
  • «از میدان آزادی تا بازار تهران با ماشین چقدر طول می‌کشد؟ وارد طرح ترافیک می‌شوم؟»
  • «فردا ساعت ۹ باید برج میلاد باشم؛ کی از میدان آزادی راه بیفتم؟»
  • «با مترو و اتوبوس از میدان آزادی به برج میلاد چطور بروم و چقدر خرج دارد؟»
  • «هوای اصفهان امروز آلوده است؟»
  • «کافه لمیز گیشا الان باز است؟ مردم درباره‌اش چه گفته‌اند؟»

Development

bash
git clone https://github.com/sepehr071/neshan-mcp && cd neshan-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 neshan.orguv build

Place tools live in src/neshan_mcp/maps.py, routing tools in src/neshan_mcp/routes.py and the decoding of Neshan's answers in src/neshan_mcp/codec.py. Each tool 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.

Related servers

  • balad-mcp for Balad, another Iranian map: places, reviews and driving routes
  • iran-mcp: catalog of all Iranian-service MCP servers
  • mrbilit-mcp for Iranian flights, trains, buses and hotels
  • jabama-mcp for villas and stays across Iran
  • snapp-mcp for Snappfood and SnappMarket

Disclaimer

Unofficial and not affiliated with or endorsed by Neshan. It is read-only and uses the endpoints of the neshan.org web app, which can change without notice. Travel times, zone hours and air quality are informational; check official sources before relying on them.

Author

[Sepehr Radmard: open-source MCP servers for the Iranian web. LinkedIn: linkedin.com/in/sepehr-radmard]

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

MIT

來源:README.md,提交 2e5d6da

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v0.2.0最新Nov 7, 2026
  2. v0.1.0Oct 31, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分