
bhoonidhi-mcp
io.github.geovicco-dev由 GitHub 账号 geovicco-dev 发布v0.3.0更新于 Oct 24, 2026
Search, save, and download satellite scenes from ISRO's Bhoonidhi portal in natural language.
概览
让助手用自然语言搜索、保存、预览并下载 ISRO Bhoonidhi 门户的卫星影像。
- 可以做什么
- 查询门户支持的卫星、传感器与搜索词表,并把地名解析为坐标和边界框。按区域和日期范围搜索影像,并报告每景的可用状态(Ready、Archived、OnOrder、Priced)。预览下载会获取哪些内容、跳过哪些内容。按 slug 保存、列出、查看和删除可复用的搜索。在后台下载已保存搜索中的开放数据影像,并查询或等待任务进度。把已保存搜索的影像加入 Bhoonidhi 购物车、列出购物车并移除条目。
- 适用场景
- 适合需要助手查找某地区某时段的 ISRO/NRSC 卫星影像、确认哪些实际可下载,并在对话中直接获取开放数据影像或把影像加入待订购清单的场景。
- 运行要求
- 以本地 Python 包(bhoonidhi-mcp)通过 stdio 运行,通常用 uvx 或本地 uv 检出启动。需要访问 Bhoonidhi 门户和地理编码服务的网络。搜索、预览和保存查询无需登录;下载和购物车操作需要 Bhoonidhi 账号,需通过 bhd 命令行在外部登录,或使用可选的 BHOONIDHI_USERNAME 和 BHOONIDHI_PASSWORD 环境变量。另有若干可选设置控制下载根目录、并行数和结果上限。
安装
在 SourceWeft 中
- 打开 控制台中的 bhoonidhi-mcp,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
bhoonidhi-mcp
[PyPI] [MCP Registry] [License: MIT]
An MCP server that lets an AI agent search, save, download, and cart satellite scenes from ISRO's Bhoonidhi Browse & Order portal (NRSC) in natural language. An agent can turn a sentence like "Sentinel-2 over Shillong last January" into a real search against the live portal, see honestly what is available to download, save a search to reuse later, preview what a download would fetch, and — once logged in — download open-access scenes or stage them to the cart.
It is a thin adapter over the
bhoonidhi-downloader
SDK — the same client the bhd CLI uses — so no portal logic is duplicated.
Status
Search and save with no login; download and cart with one. The tools reach
the full archive of 41 satellite missions and 79 sensors, search the live
portal, and save searches to reusable slugs — all without credentials.
Downloading open-access scenes and staging scenes to the Bhoonidhi cart need a
login, done out of band with bhd auth login (the server reuses that session).
Tools
Availability matters: an OpenData scene is not necessarily staged for
download. search_scenes and preview_download distinguish Ready (fetch it
now) from Archived (open data, but may need a request on the portal first),
so an agent does not over-promise.
Downloads run in the background, independent of the conversation:
download_query returns a job_id at once and the transfer proceeds on its own.
Check progress once with download_status — it reports bytes downloaded, a
transfer rate, and a percent once the size is known — or follow a job to
completion with download_wait, which blocks until it finishes (or a capped
timeout) so an agent can delegate a background watcher and keep the conversation
free instead of sleep-looping. A job lives only as long as the server process,
so once a download proves large the status recommends running a standalone bhd query download <slug> command you own instead.
Install
The server is a Python package with a console entry point, bhoonidhi-mcp. The
simplest way to run it is with uv — uvx fetches,
builds, and launches it straight from the source, no clone or virtualenv needed:
The first run builds from source; later runs start from cache. The server speaks stdio and is launched by an MCP client — you point the client at that command.
Prefer a local checkout (for development)? Clone and uv sync, then use
.venv/bin/bhoonidhi-mcp as the command instead:
Connecting a client
Every MCP client needs the same thing: the command to launch. Point it at uvx
with the source and entry point as arguments.
Claude Desktop / Claude Code
claude_desktop_config.json (or claude mcp add):
OpenCode
~/.config/opencode/opencode.json:
MCP Inspector (to try it without an agent)
Example
Ask an agent, in plain language:
"What Sentinel-2 scenes are over Shillong in January 2024, and how many can I actually download?"
The agent calls resolve_location for Shillong, then search_scenes, and
answers from the result — for example, that all scenes are Archived (open
data, but each may need a request on the portal before it will download), rather
than claiming they are all ready.
Prompts to try
Copy these into any connected agent to get a feel for what it can do.
Discover the archive
- "What satellites and sensors does Bhoonidhi have?"
- "Which sensors does ResourceSat-2A carry, and at what resolution?"
- "Does Bhoonidhi have any radar satellites?"
Search for scenes
- "Find Sentinel-2 scenes over Shillong in January 2024."
- "Show me Cartosat imagery within 20 km of Bengaluru in the first half of 2024."
- "Any Sentinel-1 scenes over the Sundarbans in March 2024?"
- "What Landsat-8 imagery covers Kaziranga National Park last winter?"
- "Find MODIS scenes over the Rann of Kutch in December 2023."
Check what's available to download
- "Of those Sentinel-2 scenes, how many can I actually download right now?"
- "Which of these need to be ordered or paid for?"
Preview a download
- "Preview what downloading those scenes would fetch."
Save a search to reuse
- "Save that Sentinel-2 search so I can download it later."
- "List my saved searches."
- "Show me what's in the search I saved as
<slug>." - "Delete the saved search
<slug>."
Download and cart (needs a login — see below)
- "Am I logged in to Bhoonidhi?"
- "Download the open-data scenes from my saved search
<slug>." - "How's that download going?"
- "Download
<slug>and let me know when it's done — I'll keep working." - "Add the priced scenes from
<slug>to my cart." - "What's in my cart this week?"
Login (for downloads and cart)
Search, saved queries, and previews need no credentials. Downloading scenes and
staging them to the cart do. Log in once, out of band — the server reuses the
same session the bhd CLI writes:
The MCP server never takes a username or password as a tool argument, and
auth_status never returns your token. For a headless setup with no interactive
login, you can instead set BHOONIDHI_USERNAME / BHOONIDHI_PASSWORD in the
server's environment; the server reads them only to establish a session.
Configuration
Set as environment variables (all optional):
Data usage and attribution
The imagery reached through this server belongs to ISRO/NRSC and is governed by the Bhoonidhi EULA, not by this project's MIT license — that license covers the code here, nothing else. What the EULA asks of you:
- Use your own account. Downloads and cart actions authenticate with your own Bhoonidhi login, established out of band. The server never takes a password as a tool argument and never shares or bypasses a session.
- Credit the source. Anything you publish from this data must carry the caption ISRO-IRS.
- Don't resell the raw data. Scenes the portal marks as open data are free to use, publish, and build on. The original products just can't be redistributed commercially in their original form — derived and value-added products are fine.
- Priced and on-order scenes go through the portal. This server never bypasses payment: priced and on-order scenes are only staged to the cart, and you complete any order and payment on Bhoonidhi.
Development
License
MIT — see LICENSE.
来源:README.md,提交 25a5b5a
工具
0版本历史
1- v0.3.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分