Theme · Dark console → Light
Model Context Protocol server

Search ISRO's satellite archive in plain language.

bhoonidhi-mcp lets an AI agent turn a sentence into a real search against ISRO's Bhoonidhi Earth-observation portal. Read-only, and no login required.

$pip install bhoonidhi-mcp
Watch it run
Phase 1 · read-only No login required 41 satellites in the archive MIT licensed
What it does

The portal wants exact tokens. You write a sentence.

Searching the old way means knowing the satellite token, the bounding box, and the date format up front. bhoonidhi-mcp lets the agent fill those in from what you said.

Command line — you supply every argument
# you need the exact token and bounding box first bhd query create 2024-01-01 2024-01-14 \ --sat "Sentinel-2A_MSI_Level-1C" \ --minx 91.72 --maxx 92.04 \ --miny 25.42 --maxy 25.74
With bhoonidhi-mcp — you state intent
Find Sentinel-2 scenes over Shillong from the first two weeks of January 2024.

The agent resolves “Shillong” to a bounding box, matches “Sentinel-2” to the portal’s platform tokens, and runs the live search — then reports which results are actually downloadable.

Watch it run

An agent calls the tools against the live portal.

Pick a prompt. The tool calls resolve step by step, and each scene the portal returns is plotted on the map, coloured by whether you can download it.

EXAMPLE SESSION
LOCATION
ReadyArchived On orderPriced

Satellite names, tokens, availability labels, and place coordinates are real. Scene IDs and per-scene counts are representative of a live query.

The tools

Three tools the agent calls in order.

Each one is a thin adapter over the same client the bhd command line uses. No portal logic is duplicated.

01

list_archive

The satellites and sensors the portal supports, with their exact search tokens, resolution, and date coverage.

in  refresh: false
out { satellites: [ …41… ] }
02

resolve_location

A place name becomes a centroid and a bounding box for the search. Returns found: false when it can’t resolve the place, rather than guessing.

in  name: "Shillong"
out { lat, lon, bbox }
03

search_scenes

A casual satellite name, ISO dates, and an area — matched to exact tokens and run against the live portal without saving anything.

in  satellite, dates, bbox
out { scenes, availability_summary }
Configure your client

Point any MCP client at one command.

bhoonidhi-mcp runs over stdio: the client launches it as a subprocess and talks over stdin and stdout. Every setup comes down to “run this command.”

How it's built

An adapter over the bhoonidhi-downloader SDK.

bhoonidhi-mcp does not talk to the portal directly. It calls the same client the bhd command line uses, so there is one place where portal logic lives.

Foundation

bhoonidhi-downloader

The SDK and bhd CLI: portal grammar, satellite tokens, availability classification, and downloads. bhoonidhi-mcp depends on it.

Python · CLI · the source of truth
This project

bhoonidhi-mcp

Turns natural language into structured portal queries and shapes the results for an agent. It adds the geocoder and the fuzzy satellite matching — nothing about the portal itself.

MCP · stdio · live, read-only search

Availability is reported honestly. The server classifies every scene the same way the CLI does — Ready, Archived, On order, or Priced — so an agent can tell you what you can actually download before you try, instead of guessing from the scene name.

Get started

Install it, wire your client, ask a question.

$pip install bhoonidhi-mcp