Purpose
bhoonidhi-mcp is an MCP (Model Context Protocol) server that lets AI agents search, save, download, and add to cart ISRO's Bhoonidhi Browse & Order portal (NRSC) satellite imagery using natural language. Agents can turn a sentence like "Sentinel-2 over Shillong last January" into a real search against the live portal, view what is actually downloadable, save searches for reuse, preview what a download will fetch, and, after logging in, download open data imagery or add it to the cart.
It is a lightweight adapter layer for the bhoonidhi-downloader SDK—it uses the same client as the bhd CLI, so portal logic is not reimplemented.
Main capabilities
- Searching and saving require no login; downloading and adding to cart require login.
- The tools can access the full archive of 41 satellite missions and 79 sensors, search the live portal, and save searches as reusable slugs—all without credentials.
- Downloading open data imagery and adding imagery to the Bhoonidhi cart require login, done out of band via bhd auth login (the server reuses that session).
- Availability distinction: OpenData imagery is not necessarily ready for download. search_scenes and preview_download distinguish Ready (immediately available) from Archived (open data, but may need to be requested on the portal first), preventing agents from overpromising.
- Downloads run in the background, independent of the conversation: download_query immediately returns a job_id, and the transfer proceeds on its own. Use download_status to view progress once (bytes downloaded, transfer rate, percentage when the size is known), or use download_wait to follow the job until completion (or until it times out at the limit), letting agents delegate to a background monitor without a sleep loop. Jobs exist only while the server process is alive, so when a download proves to be very large, the status will suggest switching to the standalone bhd query download <slug> command.
Usage
The server is a Python package with the console entry point bhoonidhi-mcp. The simplest way to run it is with uv—uvx directlyFetch, build, and start directly from source—no cloning or virtual environment required. The first run builds from source; subsequent runs start from cache. The server uses stdio and is started by the MCP client—just point the client at this command.
For a local checkout (for development), clone and uv sync, then use .venv/bin/bhoonidhi-mcp as the command.
Connecting clients: every MCP client needs the same startup command. Point it at uvx, with the source and entry point as arguments.
- Claude Desktop / Claude Code: claude_desktop_config.json (or claude mcp add)
- ~/.config/opencode/opencode.json
- MCP Inspector (try it without an agent)
Login (for downloads and cart): search, saving queries, and preview do not require credentials. Downloading imagery and adding to cart do. Log in out of band once—the server reuses the same session written by the bhd CLI. The MCP server never takes a username or password as a tool parameter, and auth_status never returns a token. For headless setups with non-interactive login, you can set BHOONIDHI_USERNAME / BHOONIDHI_PASSWORD in the server environment; the server uses them only to establish a session.
When to use
- Discover the archive in natural language: "What satellites and sensors does Bhoonidhi have?" "What sensors does ResourceSat-2A carry, and what is their resolution?" "Does Bhoonidhi have radar satellites?"
- Search imagery: "Find Sentinel-2 imagery over Shillong in January 2024." "Show Cartosat imagery within 20 km of Bengaluru in the first half of 2024."
- Check downloadability: "Of these Sentinel-2 images, how many can actually be downloaded right now?" "Which ones require ordering or payment?"
- Preview downloads, save searches for reuse, list/view/delete saved searches.
- Download and cart (login required): "Am I logged in to Bhoonidhi?" "Download the open data imagery in my saved search <slug>." "How are the downloads going?" "Download <slug> and notify me when it finishes." "Add the paid imagery in <slug> to the cart." "What is in my cart this week?"
Limitations
- Downloading open data imagery and adding to cart require login; search, saving queries, and preview do not require credentials.
- Download tasks exist only while the server process is alive; for large file downloads, it is recommended to use the standalone bhd command instead.
- Paid and ordered imagery is only added to the cart; the server never bypasses payment; orders and payments must be completed on Bhoonidhi.
- Imagery obtained through this server belongs to ISRO/NRSC and is governed by the Bhoonidhi EULA, not this project's MIT license. The EULA requires: use your own account; credit the source as ISRO-IRS when publishing; do not resell raw data (open data may be used, published, and built upon for free, but raw products may not be commercially redistributed in their original form; derived and value-added products may be); paid and ordered imagery is handled through the portal.
- This project's code is licensed under the MIT License.