bhoonidhi-mcp
bhoonidhi-mcp
一个 MCP 服务器,让 AI 代理能够以自然语言从 ISRO 的 Bhoonidhi 浏览与订购门户(NRSC)搜索、保存、下载和加入购物车卫星影像。代理可以将诸如“去年一月在 Shillong 上空的 Sentinel-2”这样的句子转化为对实时门户的真实搜索,查看实际可下载的内容,保存搜索以便日后复用,预览下载会获取什么,并且——在登录后——下载开放获取的影像或将其加入购物车。
它是 bhoonidhi-downloader SDK 的一个轻量封装——与 bhd CLI 使用的是同一个客户端——因此不会重复实现任何门户逻辑。
状态
搜索和保存无需登录;下载和加入购物车需要登录。 这些工具可以访问 41 颗卫星任务和 79 个传感器的完整存档,搜索实时门户,并将搜索保存为可复用的 slug——所有这些都不需要凭据。下载开放获取影像以及将影像加入 Bhoonidhi 购物车需要登录,可通过 bhd auth login 在带外完成(服务器复用该会话)。
工具
工具 | 功能 | 需要登录 |
| 门户支持的卫星、传感器和搜索词词汇表,实时获取自 Bhoonidhi。 | 否 |
| 将地名(如“Loktak Lake”)转换为质心和边界框。拒绝非地名的输入。 | 否 |
| 基于区域和日期范围的自然语言场景搜索。将非正式的卫星名称解析为精确的搜索词,并报告每个场景的可用性(Ready / Archived / OnOrder / Priced)。无状态——不保存任何内容。 | 否 |
| 预演:显示下载这些结果会获取什么,以及在真正下载之前会跳过什么。 | 否 |
| 将搜索(参数与 | 否 |
| 以简洁摘要列出已保存的搜索:slug、名称、日期范围、卫星、区域和可用性。 | 否 |
| 按 slug 返回一个已保存的搜索及其场景。 | 否 |
| 按 slug 删除一个已保存的搜索。 | 否 |
| 报告是否已配置登录。绝不处理密码或令牌。 | 否 |
| 在后台下载一个已保存搜索的开放获取场景,保存到服务器配置的固定根目录下。立即返回一个 | 是 |
| 按 | 否 |
| 阻塞直到下载完成(或达到超时上限),然后报告结果——这是后台监视器循环所依赖的高效原语。 | 否 |
| 将一个已保存搜索的场景加入购物车(将每个场景路由到 ready / on-order / priced)。 | 是 |
| 列出当前在购物车中的场景。 | 是 |
| 从购物车中移除场景。 | 是 |
可用性很重要:一个 OpenData 场景并不一定已经准备好下载。search_scenes 和 preview_download 会区分 Ready(现在就可以获取)和 Archived(开放数据,但可能需要在门户上先提交请求),这样代理就不会过度承诺。
下载在后台运行,与对话无关:download_query 立即返回一个 job_id,传输过程自行继续。用 download_status 检查一次进度——它会报告已下载字节数、传输速率,以及已知大小时的百分比——或者用 download_wait 跟随任务直到完成(或达到超时上限),这样代理可以委托一个后台监视器并保持对话流畅,而不是空转循环。任务的生命周期与服务器进程相同,因此一旦下载规模较大,状态会建议运行一个独立的 bhd query download <slug> 命令,由你自己掌控。
安装
服务器是一个带有控制台入口点的 Python 包,bhoonidhi-mcp。
使用 uv 从源码安装:
git clone https://github.com/geovicco-dev/bhoonidhi-mcp
cd bhoonidhi-mcp
uv sync这会在 .venv/bin/bhoonidhi-mcp 暴露 bhoonidhi-mcp 命令。服务器通过 stdio 通信,由 MCP 客户端启动——你只需将客户端指向该命令即可。
连接客户端
每个 MCP 客户端都需要同样的东西:要启动的命令。请使用入口点的绝对路径(在 GUI 和 CLI 客户端中最可靠):
/path/to/bhoonidhi-mcp/.venv/bin/bhoonidhi-mcpClaude Desktop / Claude Code
claude_desktop_config.json(或 claude mcp add):
{
"mcpServers": {
"bhoonidhi": {
"command": "/path/to/bhoonidhi-mcp/.venv/bin/bhoonidhi-mcp",
"args": []
}
}
}OpenCode
~/.config/opencode/opencode.json:
{
"mcp": {
"bhoonidhi": {
"type": "local",
"command": ["/path/to/bhoonidhi-mcp/.venv/bin/bhoonidhi-mcp"],
"enabled": true
}
}
}MCP Inspector(无需代理即可试用)
npx @modelcontextprotocol/inspector /path/to/bhoonidhi-mcp/.venv/bin/bhoonidhi-mcp示例
用自然语言询问代理:
“2024 年 1 月 Shillong 上空有哪些 Sentinel-2 场景,其中有多少我可以实际下载?”
代理会先为 Shillong 调用 resolve_location,然后调用 search_scenes,并根据结果回答——例如,所有场景都是 Archived(开放数据,但每个场景可能需要在门户上先提交请求才能下载),而不是声称它们都已就绪。
可尝试的提示词
将这些复制到任何已连接的代理中,感受一下它的能力。
探索存档
“Bhoonidhi 有哪些卫星和传感器?”
“ResourceSat-2A 搭载了哪些传感器,分辨率是多少?”
“Bhoonidhi 有雷达卫星吗?”
搜索场景
“查找 2024 年 1 月 Shillong 上空的 Sentinel-2 场景。”
“显示 2024 年上半年 Bengaluru 周边 20 公里范围内的 Cartosat 影像。”
“2024 年 3 月 Sundarbans 上空有 Sentinel-1 场景吗?”
“去年冬天 Kaziranga 国家公园有哪些 Landsat-8 影像覆盖?”
“查找 2023 年 12 月 Kutch 荒漠上空的 MODIS 场景。”
检查可下载内容
“在这些 Sentinel-2 场景中,我现在实际能下载多少?”
“哪些场景需要订购或付费?”
预览下载
“预览下载这些场景会获取什么。”
保存搜索以便复用
“保存这个 Sentinel-2 搜索,以便我稍后下载。”
“列出我保存的搜索。”
“显示我保存为 的搜索内容。”
“删除我保存为 的搜索。”
下载和购物车(需要登录——见下文)
“我登录 Bhoonidhi 了吗?”
“下载我保存的搜索 中的开放数据场景。”
“那个下载进行得怎么样了?”
“下载 ,完成后告诉我——我会继续做别的事。”
“把 中的付费场景加入我的购物车。”
“这周我的购物车里有什么?”
登录(用于下载和购物车)
搜索、保存的查询和预览不需要任何凭据。下载场景和将其加入购物车则需要。只需在带外登录一次——服务器会复用 bhd CLI 写入的同一个会话:
bhd auth loginMCP 服务器绝不会将用户名或密码作为工具参数接收,auth_status 也绝不会返回你的令牌。对于无法进行交互式登录的无头环境,你可以在服务器的环境中设置 BHOONIDHI_USERNAME / BHOONIDHI_PASSWORD;服务器仅读取它们以建立会话。
配置
通过环境变量设置(均为可选):
变量 | 默认值 | 用途 |
|
| 发送给 Nominatim 的 User-Agent(其使用政策要求提供描述性的 User-Agent)。 |
|
| 卫星名称匹配必须达到的置信分数(0–100);低于此分数时,返回候选列表供代理确认。 |
|
|
|
|
| 所有下载写入的允许根目录,路径为 |
|
| 并行下载工作线程数。 |
|
| 一旦下载的实时字节总数(或已知大小)超过此值,状态会将其标记为大型下载,并引导代理移交任务或运行独立命令。 |
| (未设置) | 可选的无头登录。优先使用 |
开发
uv sync
uv run pytest # test suite
uv run ruff check . # lint许可证
MIT——参见 LICENSE。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Mireye Earth — federal-source-cited geospatial data for any MCP-aware agent.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for Japan geodata: cadastral lot numbers (chiban) and reverse geocoding, for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/geovicco-dev/bhoonidhi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server