关于 Neshan Maps
Neshan Maps 是面向 AI Agent 的伊朗地图 MCP 服务,可查询地点信息并规划出行。它以只读方式提供 Neshan 地图的公开数据,无需 API 密钥或账户。
主要功能
- 01搜索地点及查看详情、评价和照片
- 02查询附近地点与地址反向地理编码
- 03查看城市空气质量
- 04规划驾车、骑行、步行及公共交通路线
- 05估算多地点出行时间
- 06检查德黑兰交通管制区域
适用场景
- 01查找伊朗地点及营业时间、评价和菜单照片
- 02比较前往多个地点的出行时间
- 03查询城市空气质量或坐标地址
- 04规划路线并检查是否进入德黑兰管制区
MCP 相关
作为 MCP 服务,它向客户端提供 11 个只读工具,用于查询 Neshan 地图中的地点、路线、交通、空气质量等数据。通过 stdio 与 MCP 客户端通信。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx neshan-mcpNESHAN_MCP_PROXYOptional HTTP proxy URL for the neshan.org requests; system proxy settings are ignored. Also accepts a comma-separated list: one is used until it gets blocked or fails to connect, then the next.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
neshan-mcp:面向 AI Agent 的伊朗 Neshan 地图 MCP 服务
让你的 AI Agent 在 Neshan(نشان)上搜索地点、获取路线并查看德黑兰的交通管制区。
neshan-mcp 是面向 Neshan 的非官方只读 MCP 服务;Neshan 是伊朗的地图和导航应用。
它的 11 个工具涵盖地点搜索、地点详情、评价、照片和菜单、附近地点、反向地理编码、城市空气质量、汽车、摩托车、自行车、步行和公交/地铁路线、前往多个地点的预计时间,以及德黑兰交通管制区查询。
无需 API 密钥或账号。
面向 AI Agent
- 简介: 面向 neshan.org/maps(伊朗 Neshan 地图)的非官方 MCP 服务(模型上下文协议)。查询可以使用波斯语或英语;回答保留 Neshan 的波斯语名称、地址和路线步骤。
- 安装:
uvx neshan-mcp或claude mcp add neshan -- uvx neshan-mcp。传输方式:stdio。需要安装 uv(Python 3.10+)。 - 身份验证: 无需身份验证,也无需 API 密钥或账号。可选的
NESHAN_MCP_PROXY(HTTP 代理 URL,或以逗号分隔的列表);系统代理设置会被忽略。 - 访问权限: 只读。它无法登录、保存地点或发布评价,因此调用任何工具前都无需确认。
- 工具: 共 11 个,名称均以
ns_开头。典型调用顺序:ns_search->ns_place/ns_reviews/ns_photos/ns_nearby;ns_search->ns_travel_times->ns_route;驾车进入德黑兰市中心前先调用ns_zone_check。 - 适用场景: 用户询问伊朗境内某个地点在哪里、附近有什么、某家商铺是否营业、人们对它的评价或它的菜单是什么样、某个坐标对应的地址、某个城市的空气污染程度、某个地址是否位于德黑兰交通管制区,或如何从 A 点前往 B 点以及需要多长时间(现在或指定时间)。
- 不适用场景: 用户想查询伊朗境外的地点、出租车或配送价格,或想将地点保存到 Neshan 账号。
- 输出: 精简 JSON。坐标格式为
lat,lng(先纬度,后经度)。距离单位为米或千米,时间单位为分钟,车费单位为 Toman,评价日期使用波斯历,出发时间使用德黑兰时间。 - 网络: 所有工具均可通过伊朗境内的网络连接使用。测试中,通过境外网络连接使用时,除
ns_nearby外的所有工具均正常;Neshan 会对ns_nearby返回 HTTP 403。要使用该工具,请将NESHAN_MCP_PROXY设置为伊朗代理。 - 机器可读信息:
server.json和 iran-mcp 目录。
为什么
Neshan 对伊朗了如指掌:营业时间和评价齐全的商家、实时交通、德黑兰的交通管制区和单双号限行方案,以及公交、BRT 和地铁线路。它的开发者 API 需要付费密钥,而网页地图是为点击操作设计的。
neshan-mcp 让 Agent 通过几个简短调用,获取与任何访客在网页地图上看到的相同公开数据:
你: 从自由塔开车到德黑兰大巴扎需要多久?会进入交通管制区吗?
Agent: 调用
ns_search("برج آزادی")、ns_search("بازار بزرگ تهران"),然后调用ns_route(origin="35.699739,51.338097", destination="35.671897,51.422428", steps=false)Neshan 建议经由伊斯兰共和国街和穆斯塔法·霍梅尼街,耗时 48 分钟(13 公里);经由赛义迪高速公路和舒什的路线为 16 公里,耗时 45 分钟。三条路线都会进入交通管制区(طرح ترافیک)和单双号限行区,这两个区域的管制时间均为 06:30 至 18:00。大巴扎本身位于这两个区域内。
这是 2026-10-31 德黑兰时间 17:21 的实时调用结果;时间会随交通状况变化。
每条回复都是精简的 JSON,只包含重要字段,不会占满 Agent 的上下文。
功能
- 查找地点:按名称或类别搜索城市或某个点附近的地点,包括咖啡馆、药店、加油站、街道和广场。可像网站一样按当前是否营业和评分筛选
- 查看地点信息:地址、坐标、电话、网站、评分和投票数、当前是否营业、每周每天的营业时间、最新照片
- 查看评价:按最新顺序查看,或查看 Neshan 推荐的评价;还可浏览照片,包括菜单相册
- 查看附近地点:某个地点周围的餐厅、咖啡馆、公园、厕所、银行、ATM、停车场和公交站
- 反向地理编码:将坐标转换为街道地址和省份
- 查询空气质量:城市当天的 AQI、污染物和所有监测站数据,或某个地点的空气质量指数
- 获取路线:驾车、骑摩托车、骑自行车或步行路线;可查看备选路线、实时行程时间、波斯语逐向导航,以及最多 3 个途经点
- 按时间规划:设定出发或到达时间(驾车;适用于德黑兰、卡拉季和马什哈德),并获取 Neshan 的交通预测
- 按行程时间排序:从一个起点前往最多 10 个地点,并按最快路线排序
- 查询德黑兰的管制区:查看某个地点是否位于交通管制区或单双号限行区内,以及路线是否会经过这些区域;还可避开这些区域或收费道路
- 搭乘公共交通:查看公交、BRT 和地铁方案,包括线路、站点、步行路段和以托曼计价的费用
- 仅支持只读操作:无需登录,不会保存或发布内容
示例提示词:
- “查找米拉德塔附近 24 小时营业、现在开门且评分不低于 4 分的药店。”
- “Gisha 的 Lamiz Coffee 现在营业吗?电话号码是多少?大家怎么评价?”
- “给我看看米拉德塔的菜单照片。”
- “从自由广场开车出发,这三家分店中哪家最近?”
- “我明天 9 点要到米拉德塔。我应该什么时候从自由广场出发?”
- “费尔多西广场位于德黑兰交通管制区内吗?”
- “伊斯法罕今天的空气污染有多严重?”
- نزدیکترین داروخانه شبانهروزی به برج میلاد کجاست؟
- از میدان آزادی تا بازار تهران با ماشین چقدر راه است؟ وارد طرح ترافیک میشوم؟
- با مترو و اتوبوس از میدان آزادی به برج میلاد چطور بروم و هزینهاش چقدر است؟
快速开始
你需要安装 uv。无需 API 密钥或账户。
Claude Code
claude mcp add neshan -- uvx neshan-mcp
Claude Desktop
依次点击“设置”→“开发者”→“编辑配置”,然后添加:
{
"mcpServers": {
"neshan": { "command": "uvx", "args": ["neshan-mcp"] }
}
}
Cursor
将上面的 Claude Desktop 配置块添加到 ~/.cursor/mcp.json(或项目中的 .cursor/mcp.json)。
VS Code(Copilot Agent 模式)
点击上方的 Install in VS Code,或添加到 .vscode/mcp.json:
{
"servers": {
"neshan": { "type": "stdio", "command": "uvx", "args": ["neshan-mcp"] }
}
}
Codex CLI
codex mcp add neshan -- uvx neshan-mcp
或者添加到 ~/.codex/config.toml:
[mcp_servers.neshan]
command = "uvx"
args = ["neshan-mcp"]
Gemini CLI
添加到 ~/.gemini/settings.json:
{
"mcpServers": {
"neshan": { "command": "uvx", "args": ["neshan-mcp"] }
}
}
Windsurf
将 Claude Desktop 配置块添加到 ~/.codeium/windsurf/mcp_config.json。
其他客户端
这是一个标准的 stdio MCP 服务:运行 uvx neshan-mcp,或运行 pip install neshan-mcp 后再运行 neshan-mcp。
工具
坐标格式为 lat,lng,例如 35.6997,51.3380。地点 ID 来自 ns_search。
| 工具 | 功能 |
|---|---|
ns_search | 按名称或类别,在城市或坐标附近查找 Neshan 地图上的地点、商家、街道和广场 |
ns_place | 获取 Neshan 上某个地点的详细信息:地址、坐标、电话、网站、评分、营业时间和照片 |
ns_reviews | 列出 Neshan 上某个地点的访客评价:星级评分、波斯历日期、评论、点赞数和商家回复 |
ns_photos | 列出 Neshan 上某个地点的照片,按图片 URL 返回,每页 10 张,附日期和上传者信息,也包括菜单照片 |
ns_nearby | 按类别列出 Neshan 上某个地点周边的设施:餐厅、咖啡馆、公园、厕所、银行、ATM、停车场 |
ns_reverse_geocode | 将纬度/经度转换为 Neshan 的街道地址和省份(反向地理编码) |
ns_air_quality | 从 Neshan 获取伊朗城市当天的空气质量指数(AQI),以及污染物和各监测站的读数 |
ns_route | 获取 Neshan 上的驾车、摩托车、自行车或步行路线:距离、行程时间和逐向导航步骤 |
ns_travel_times | 获取从一个坐标到 Neshan 上多个地点的行程时间,并按最快优先排序 |
ns_zone_check | 检查某个坐标是否位于德黑兰交通管制区或单双号(空气污染)区域,并提供管制时段 |
ns_transit_route | 获取 Neshan 上两点之间的公交、BRT 和地铁方案,包括线路、站点、步行路程和票价 |
全部 11 个工具均标注为 readOnlyHint: true。
工作原理
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 在本地运行,并调用 neshan.org/maps 网页应用使用的相同端点,中间没有托管服务,也无需 API 密钥。请求通过一个模拟 Chrome 的客户端发送,形式与网页应用自身的请求相似。它一次最多发送 3 个请求,并加入少量随机延迟;缓存结果(地点和地址缓存 5 分钟,实时路线缓存 1 分钟,公交、区域和空气质量缓存 10 分钟);调用失败时最多重试两次,并且只与 neshan.org 通信。
Neshan 的网页应用会对大多数响应进行编码:响应以打乱顺序的 base64 文本形式返回,公交响应还经过 XOR 编码。服务会像网页应用自身的脚本一样解码。如果 Neshan 更改了编码方案,服务会像浏览器加载网页一样,从网站当前的 JavaScript 中读取新值,然后重试。对于仍无法读取的响应,服务会报告错误,绝不捏造数据。
需要了解
- 坐标格式为
lat,lng。 纬度在前。若顺序颠倒,系统会拒绝并给出提示。 near可以填写城市或坐标点。 支持用英语或波斯语填写 23 个大城市的名称(Tehran、Mashhad、Isfahan、Shiraz、 Tabriz、Karaj、Qom、Ahvaz 等)。对于较小的城镇,请将其名称填写在查询中。- 搜索最多返回 30 个地点,不支持分页。赞助结果(在网站上标记为 آگهی)不会显示。
open_now和min_rating使用 Neshan 自带的筛选条件(当前营业;3.5+、4+、4.5+)。 - 行程时间是 Neshan 对现在出发或在
depart_at指定时间出发的估算值。 出发和到达时间均为德黑兰时间(公历,YYYY-MM-DD HH:MM);Neshan 仅为德黑兰、卡拉季和马什哈德的汽车提供这些信息。 - 会标记收费道路(
toll_road),但不会提供费用:Neshan 的网页应用不会显示通行费金额。 - 公共交通不提供行程时间。 Neshan 网页地图会显示公交车和地铁的票价、线路及站点,但不显示行程时长。
ns_nearby需要连接伊朗网络。 在境外使用时,Neshan 会以 HTTP 403 响应;请将NESHAN_MCP_PROXY设置为伊朗代理,或在ns_search中将地点的lat,lng作为near。- 空气质量城市请使用英语名称(
Tehran、bandar abbas)或上述 23 个城市的波斯语名称。没有监测站的城市会返回“无数据”。 - 输出为波斯语。 名称、地址、营业时间(波斯数字)、步骤和评价日期均与 Neshan 显示的内容一致。
- 不支持的功能: 不支持登录、收藏或评价;不提供伊朗境外的地点、实时交通事故、气温或 AI 评价摘要(Neshan 仅向已登录用户提供这些内容)。
常见问题
有 Neshan MCP 服务或免费的 Neshan API 吗?
Neshan 提供需要 API 密钥的开发者 API。neshan-mcp 是一个非官方 MCP 服务,包含 11 个只读工具,会调用 neshan.org 网络地图的公共端点,因此不需要密钥、账户或付费。
需要 Neshan API 密钥吗?
不需要。它不使用 API 密钥、令牌或登录。使用 uvx neshan-mcp 安装,然后用自然语言提问即可。
我的车现在可以进入德黑兰的交通管制区吗?
ns_zone_check 会告知某个点是否位于交通规划区(طرح ترافیک)或单双号限行区(طرح آلودگی هوا),以及 Neshan 显示的各项限行时段,例如 06:30 至 18:00。你的车是否可以进入,取决于你的通行许可和车牌信息,而该服务并不知道这些信息。ns_route 可以使用 avoid_traffic_zone 和 avoid_odd_even 避开这两个区域规划路线。
今天德黑兰的空气质量如何?
向 Agent 提问即可;ns_air_quality("Tehran") 会返回今天按 0-500 刻度计算的 AQI、Neshan 给出的评级(例如 قابل قبول,即可接受)、污染物读数,以及所有监测站的数据,并按污染程度从高到低排列。
如何将它与 Claude、Cursor 或 Copilot 搭配使用?
使用 claude mcp add neshan -- uvx neshan-mcp 添加服务,或使用快速开始中的相应配置,然后用波斯语或英语提问。
它在伊朗境外也能使用吗?
可以,ns_nearby 除外。测试中,其他功能通过境外网络均可正常使用。如果你的网络受到限制,请将 NESHAN_MCP_PROXY 设置为 HTTP 代理。系统代理变量会被有意忽略。
它与 balad-mcp 有什么不同?
balad-mcp 使用的是另一款伊朗地图 Balad。两者都能搜索地点并提供路线;neshan-mcp 还提供骑行、步行和公共交通路线、按出发时间规划路线、检查德黑兰任意地点是否位于管制区内,以及查询空气质量。你可以同时安装两者并进行比较。
它可以保存地点或撰写评论吗?
不可以。它不需要登录,只读取公开数据。
如何调试 Agent 看到的内容?
npx @modelcontextprotocol/inspector uvx neshan-mcp
配置
| 变量 | 默认值 | 含义 |
|---|---|---|
NESHAN_MCP_PROXY | unset | neshan.org 请求使用的可选 HTTP 代理 URL;系统代理设置会被忽略。逗号分隔的列表会逐个使用:某个代理被屏蔽或无法连接时,将切换到下一个代理 |
波斯语:Neshan 地图 MCP 服务
neshan-mcp 是一个非官方、只读的 Neshan 地图 MCP 服务。借助它,您的 AI 助手(Claude、Cursor、Copilot 和其他应用)可以查找地点、规划路线,并查询德黑兰交通管制区范围。无需 API 密钥或用户账户。
功能
- 地点搜索:按名称或类别(咖啡馆、药店、加油站、街道、广场)在城市内或某个地点附近搜索,并可按“营业中”和评分筛选,结果与 Neshan 网站一致。
- 地点详情:地址、坐标、电话、网站、评分、一周每天的营业时间以及最新照片。
- 用户评论(最新或精选)和照片,包括菜单照片。
- 每个地点附近的设施:餐厅、咖啡馆、公园、卫生间、银行、ATM、停车场和公交车站。
- 坐标转地址。
- 空气质量:各城市今日指数、污染物以及所有监测站。
- 路线规划:支持汽车、摩托车、自行车和步行,提供实时行程时间、波斯语路线步骤,并可设置最多 3 个途经点。
- 按出发或到达时间规划路线:支持德黑兰、卡拉季和马什哈德的汽车路线,并提供 Neshan 交通预测。
- 比较行程时间:从一个起点前往最多 10 个目的地,按从最快到最慢排序。
- 交通管制区和单双号限行:查询某个地点是否位于区域内,以及路线是否会进入区域;可选择绕开区域和收费站。
- 公共交通:提供公交、BRT 和地铁选项,包括线路、车站以及以托曼计价的车费。
注意事项
- 只读:不会登录账户、保存地点或发布评论。
- 坐标请按
lat,lng格式提供,即先写纬度(例如35.6997,3380)。 - 附近设施工具(
ns_nearby)仅在伊朗境内可用。在伊朗境外,请将NESHAN_MCP_PROXY设置为一个伊朗出口代理。 - 出发和到达时间使用德黑兰时间和公历日期(例如
2026-11-01 08:00)。 - 对于收费路线,只会返回收费标记,因为 Neshan 网站本身不显示收费金额。
- Neshan 网站的响应经过加密,本服务会按照网站自身使用的方式解密。
安装(请先安装 uv)。在 Claude Code 中:
claude mcp add neshan -- uvx neshan-mcp
在 Claude Desktop、Cursor 和其他应用中,请使用 Quick start 部分中的相同配置。
示例问题
- “米拉德塔最近的 24 小时药店在哪里?现在营业吗?”
- “从自由广场到德黑兰大巴扎开车要多久?我会进入交通管制区吗?”
- “我明天 9 点要到米拉德塔;应该几点从自由广场出发?”
- “从自由广场怎么乘地铁和公交去米拉德塔?要花多少钱?”
- “伊斯法罕今天空气污染严重吗?”
- “Gisha 的 Lamiz 咖啡馆现在营业吗?大家怎么评价它?”
开发
git clone https://github.com/sepehr071/neshan-mcp && cd neshan-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 neshan.org
uv build
地点工具位于 src/neshan_mcp/maps.py,路线工具位于 src/neshan_mcp/routes.py,Neshan 响应的解码代码位于
src/neshan_mcp/codec.py。每个工具都是带类型注解的异步函数,并附有说明何时使用该工具的文档字符串。欢迎提交问题和 PR。
发布版本:更新 pyproject.toml 和 server.json 中的版本号,然后推送一个 v* 标签。GitHub Actions 会发布到 PyPI。
相关服务
- balad-mcp:适用于 Balad(另一个伊朗地图服务),支持地点、评论和驾车路线
- iran-mcp:伊朗各类服务的 MCP 服务目录
- mrbilit-mcp:适用于伊朗的航班、火车、公交车和酒店
- jabama-mcp:适用于伊朗各地的别墅和住宿
- snapp-mcp:适用于 Snappfood 和 SnappMarket
免责声明
本项目为非官方项目,与 Neshan 无关,也未获得其认可。本项目为只读服务,使用 neshan.org Web 应用的接口,这些接口可能会在不另行通知的情况下发生变化。行程时间、区域时段和空气质量仅供参考;请在依赖这些信息前查阅官方来源。
作者
由 Sepehr Radmard(سپهر رادمرد)构建并维护。欢迎在 LinkedIn 上联系,或在 GitHub 上关注 @sepehr071,了解更多面向伊朗网站的 MCP 服务,所有服务均列于 iran-mcp。如果这为你节省了时间,欢迎给仓库点个星,让更多人发现它。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
