bhoonidhi-mcp
概览
作者提供的说明(英文原文)
Search, save, and download satellite scenes from ISRO's Bhoonidhi portal in natural language.
PopNx MCP 的三大支柱
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
- 用户评价i暂无评价评价功能将在后续阶段与账户功能一起开放
- 我们的基础检查i1 项中通过 1 项依据公开信息检查;尚未扫描代码
- 使用情况i非常新↓ 28/周 · ★ –
它能帮你做什么
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
- 连接方式: 在你的电脑上运行
- 传输方式: stdio
- 分类: 搜索与 AI 记忆
安装
选择你使用的 AI 应用,然后复制设置。
安装之前
- 基础检查:1 项中通过 1 项
- 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
- 注册中心没有列出需要填写的密钥。
你需要
- PyPI已安装 Python 的 uv(用于 uvx 命令)
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"bhoonidhi": {
"command": "uvx",
"args": [
"bhoonidhi-mcp"
]
}
}
}在终端中运行这条命令
claude mcp add bhoonidhi -- uvx bhoonidhi-mcp或者自己复制设置
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"bhoonidhi": {
"command": "uvx",
"args": [
"bhoonidhi-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
或者自己复制设置
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"bhoonidhi": {
"type": "stdio",
"command": "uvx",
"args": [
"bhoonidhi-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它能做什么
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
基础检查i
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
- ✓ 通过
作者与仓库一致
注册名称已通过 GitHub 账户 geovicco-dev 验证,该账户拥有此仓库
- … 尚未检查
仍在维护
我们还没有从 GitHub 读取这个仓库
- … 尚未检查
有许可证
我们还没有从 GitHub 读取这个仓库
- – 不适用
端点有响应
它在你的电脑上运行,没有互联网端点
- – 不适用
使用 OAuth 登录
在你的电脑上运行,改用本地设置
- … 尚未检查
工具描述中没有隐藏指令
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与“搜索与 AI 记忆”中的其他服务器比较i
- 星标数多于此分类中其他 5692 个服务器的 0%
- 发布到注册中心的时间比此分类中其他 5692 个服务器的 37% 更新
- 基础检查结果等于或优于此分类中其他 5692 个服务器的 100%
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
常见问题
bhoonidhi-mcp 安全吗?
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
它需要哪些密钥或代码?
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在我的电脑上运行还是在云端?
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
它还在维护吗?
GitHub 仓库最后更新于–,最新版本(0.3.0)于2个月前进入注册中心。
哪些应用可以使用它?
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
有什么可以替代它?
同一分类中有:Context7, Codebase Memory, Exa
替代选择
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Exa
Connect AI agents to Exa for web search, content fetching, and multi-step research.
作者的 README
打开 README
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
bhoonidhi-mcp
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
| Tool | What it does | Login |
|---|---|---|
list_archive | The vocabulary of satellites, sensors, and search tokens the portal supports, live from Bhoonidhi. | no |
resolve_location | Turns a place name ("Loktak Lake") into a centroid and bounding box. Rejects inputs that are not place names. | no |
search_scenes | Natural-language scene search over an area and date range. Resolves a casual satellite name to exact tokens, and reports each scene's availability (Ready / Archived / OnOrder / Priced). Stateless — nothing is saved. | no |
preview_download | A dry run: shows what downloading the results would fetch, and what would be skipped, before anything is downloaded. | no |
save_query | Persists a search (same arguments as search_scenes) to a reusable slug, so it can be downloaded or staged to the cart later. | no |
list_queries | Lists saved queries as compact summaries: slug, name, date range, satellites, area, and availability. | no |
show_query | Returns one saved query by slug, with its scenes. | no |
remove_query | Deletes a saved query by slug. | no |
auth_status | Reports whether a login is configured. Never handles a password or token. | no |
download_query | Downloads a saved query's open-access scenes in the background, to a fixed server-configured root. Returns a job_id at once. | yes |
download_status | One-off check of a background download by job_id: bytes downloaded, transfer rate, percent when the size is known, and per-scene detail. | no |
download_wait | Blocks until a download finishes (or a capped timeout), then reports — the efficient primitive a background watcher loops on. | no |
cart_add | Stages a saved query's scenes to the cart (routes each to ready / on-order / priced). | yes |
cart_list | Lists scenes currently staged in the cart. | yes |
cart_remove | Removes scenes from the cart. | yes |
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 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:
uvx --from git+https://github.com/geovicco-dev/bhoonidhi-mcp bhoonidhi-mcp
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:
git clone https://github.com/geovicco-dev/bhoonidhi-mcp
cd bhoonidhi-mcp uv sync
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):
{
"mcpServers": { "bhoonidhi": { "command": "uvx", "args": ["--from", "git+https://github.com/geovicco-dev/bhoonidhi-mcp", "bhoonidhi-mcp"] } } }
OpenCode
~/.config/opencode/opencode.json:
{
"mcp": { "bhoonidhi": { "type": "local", "command": ["uvx", "--from", "git+https://github.com/geovicco-dev/bhoonidhi-mcp", "bhoonidhi-mcp"], "enabled": true } } }
MCP Inspector (to try it without an agent)
npx @modelcontextprotocol/inspector uvx --from git+https://github.com/geovicco-dev/bhoonidhi-mcp bhoonidhi-mcp
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
." - "Delete the saved search
."
Download and cart (needs a login — see below)
- "Am I logged in to Bhoonidhi?"
- "Download the open-data scenes from my saved search
." - "How's that download going?"
- "Download
and let me know when it's done — I'll keep working." - "Add the priced scenes from
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:
bhd auth login
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):
| Variable | Default | Purpose |
|---|---|---|
BHOONIDHI_MCP_GEOCODER_USER_AGENT | bhoonidhi-mcp/0.3 | User-Agent sent to Nominatim (its usage policy asks for a descriptive one). |
BHOONIDHI_MCP_FUZZY_THRESHOLD | 88 | Score (0–100) a satellite-name match must clear to be confident; below it, candidates are returned for the agent to confirm. |
BHOONIDHI_MCP_MAX_RESULTS | 50 | Maximum scenes returned inline by search_scenes. |
BHOONIDHI_MCP_DOWNLOAD_ROOT | ~/Downloads | Allow-listed root every download writes under, as / /. The agent cannot choose an arbitrary path. |
BHOONIDHI_MCP_DOWNLOAD_PARALLEL | 4 | Parallel download workers. |
BHOONIDHI_MCP_LARGE_DOWNLOAD_MB | 500 | Once a download's live byte total (or known size) passes this, the status flags it large and steers the agent to hand off or run a standalone command. |
BHOONIDHI_USERNAME / BHOONIDHI_PASSWORD | *(unset)* | Optional headless login. Prefer bhd auth login; fill these out of band, never commit them. |
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
uv sync
uv run pytest # test suite uv run ruff check . # lint
License
MIT — see LICENSE.