Skip to main content
Glama

bhoonidhi-mcp

License: MIT

Ein MCP-Server, der es einem KI-Agenten ermöglicht, Satellitenszenen vom ISRO Bhoonidhi Browse & Order-Portal (NRSC) in natürlicher Sprache zu durchsuchen, zu speichern, herunterzuladen und in den Warenkorb zu legen. Ein Agent kann einen Satz wie „Sentinel-2 über Shillong letzten Januar“ in eine echte Suche gegen das Live-Portal verwandeln, ehrlich sehen, was zum Herunterladen verfügbar ist, eine Suche zur Wiederverwendung speichern, eine Vorschau anzeigen, was ein Download liefern würde, und – nach der Anmeldung – Open-Access-Szenen herunterladen oder sie in den Warenkorb legen.

Es ist ein dünner Adapter über dem bhoonidhi-downloader-SDK – demselben Client, den auch die bhd-CLI verwendet –, sodass keine Portal-Logik dupliziert wird.

Status

Suchen und Speichern ohne Anmeldung; Herunterladen und Warenkorb mit einer. Die Werkzeuge greifen auf das vollständige Archiv von 41 Satellitenmissionen und 79 Sensoren zu, durchsuchen das Live-Portal und speichern Suchen unter wiederverwendbaren Slugs – alles ohne Anmeldedaten. Das Herunterladen von Open-Access-Szenen und das Einstellen von Szenen in den Bhoonidhi-Warenkorb erfordern eine Anmeldung, die separat über bhd auth login erfolgt (der Server verwendet diese Sitzung erneut).

Werkzeuge

Werkzeug

Was es tut

Login

list_archive

Das Vokabular der Satelliten, Sensoren und Suchtokens, die das Portal unterstützt, live von Bhoonidhi.

nein

resolve_location

Wandelt einen Ortsnamen („Loktak Lake“) in einen Schwerpunkt und eine Begrenzungsbox um. Lehnt Eingaben ab, die keine Ortsnamen sind.

nein

search_scenes

Natürlichsprachliche Szenensuche über einen Bereich und einen Datumsbereich. Löst einen beiläufigen Satellitennamen in genaue Tokens auf und meldet die Verfügbarkeit jeder Szene (Bereit / Archiviert / Auf Bestellung / Bepreist). Zustandslos – es wird nichts gespeichert.

nein

preview_download

Ein Probelauf: Zeigt, was das Herunterladen der Ergebnisse liefern würde und was übersprungen würde, bevor etwas heruntergeladen wird.

nein

save_query

Speichert eine Suche (gleiche Argumente wie search_scenes) unter einem wiederverwendbaren Slug, sodass sie später heruntergeladen oder in den Warenkorb gelegt werden kann.

nein

list_queries

Listet gespeicherte Suchanfragen als kompakte Zusammenfassungen auf: Slug, Name, Datumsbereich, Satelliten, Gebiet und Verfügbarkeit.

nein

show_query

Gibt eine gespeicherte Suchanfrage anhand des Slugs mit ihren Szenen zurück.

nein

remove_query

Löscht eine gespeicherte Suchanfrage anhand des Slugs.

nein

auth_status

Meldet, ob eine Anmeldung konfiguriert ist. Verarbeitet niemals ein Passwort oder Token.

nein

download_query

Lädt die Open-Access-Szenen einer gespeicherten Suchanfrage im Hintergrund in ein festes, serverkonfiguriertes Wurzelverzeichnis herunter. Gibt sofort eine job_id zurück.

ja

download_status

Einmalige Überprüfung eines Hintergrund-Downloads anhand der job_id: heruntergeladene Bytes, Übertragungsrate, Prozentsatz, sobald die Größe bekannt ist, und Details pro Szene.

nein

download_wait

Blockiert, bis ein Download abgeschlossen ist (oder ein begrenztes Zeitlimit erreicht ist), und meldet dann – das effiziente Primitive, auf dem ein Hintergrundbeobachter schleift.

nein

cart_add

Legt die Szenen einer gespeicherten Suchanfrage in den Warenkorb (ordnet jede als bereit / auf Bestellung / bepreist ein).

ja

cart_list

Listet Szenen auf, die sich derzeit im Warenkorb befinden.

ja

cart_remove

Entfernt Szenen aus dem Warenkorb.

ja

Verfügbarkeit ist wichtig: Eine OpenData-Szene ist nicht unbedingt zum Download bereitgestellt. search_scenes und preview_download unterscheiden Bereit (jetzt abrufen) von Archiviert (offene Daten, aber möglicherweise ist zuerst eine Anfrage im Portal erforderlich), damit ein Agent keine falschen Versprechungen macht.

Downloads laufen im Hintergrund, unabhängig von der Unterhaltung: download_query gibt sofort eine job_id zurück und die Übertragung läuft von selbst weiter. Überprüfen Sie den Fortschritt einmal mit download_status – es meldet heruntergeladene Bytes, eine Übertragungsrate und einen Prozentsatz, sobald die Größe bekannt ist – oder verfolgen Sie einen Auftrag mit download_wait bis zum Abschluss, das blockiert, bis er fertig ist (oder ein begrenztes Zeitlimit erreicht ist), sodass ein Agent einen Hintergrundbeobachter beauftragen und die Unterhaltung freihalten kann, anstatt in einer Schleife zu schlafen. Ein Auftrag lebt nur so lange wie der Serverprozess. Sobald sich also herausstellt, dass ein Download groß ist, empfiehlt der Status, stattdessen einen eigenständigen Befehl bhd query download <slug> auszuführen, der Ihnen gehört.

Installation

Der Server ist ein Python-Paket mit einem Konsolen-Einstiegspunkt, bhoonidhi-mcp. Installieren Sie es mit uv aus dem Quellcode:

git clone https://github.com/geovicco-dev/bhoonidhi-mcp
cd bhoonidhi-mcp
uv sync

Dadurch wird der Befehl bhoonidhi-mcp unter .venv/bin/bhoonidhi-mcp verfügbar gemacht. Der Server spricht stdio und wird von einem MCP-Client gestartet – Sie weisen den Client auf diesen Befehl hin.

Verbinden eines Clients

Jeder MCP-Client benötigt dasselbe: den zu startenden Befehl. Verwenden Sie den absoluten Pfad zum Einstiegspunkt (am zuverlässigsten über GUI- und CLI-Clients hinweg):

/path/to/bhoonidhi-mcp/.venv/bin/bhoonidhi-mcp

Claude Desktop / Claude Code

claude_desktop_config.json (oder 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 (um es ohne Agenten auszuprobieren)

npx @modelcontextprotocol/inspector /path/to/bhoonidhi-mcp/.venv/bin/bhoonidhi-mcp

Beispiel

Fragen Sie einen Agenten in einfacher Sprache:

„Welche Sentinel-2-Szenen gibt es über Shillong im Januar 2024, und wie viele kann ich tatsächlich herunterladen?“

Der Agent ruft resolve_location für Shillong auf, dann search_scenes, und antwortet anhand des Ergebnisses – zum Beispiel, dass alle Szenen Archiviert sind (offene Daten, aber jede muss möglicherweise zuerst im Portal beantragt werden, bevor sie heruntergeladen werden kann), anstatt zu behaupten, dass alle bereit sind.

Vorschläge zum Ausprobieren

Kopieren Sie diese in einen beliebigen verbundenen Agenten, um ein Gefühl dafür zu bekommen, was er kann.

Das Archiv entdecken

  • „Welche Satelliten und Sensoren hat Bhoonidhi?“

  • „Welche Sensoren trägt ResourceSat-2A und mit welcher Auflösung?“

  • „Hat Bhoonidhi Radarsatelliten?“

Nach Szenen suchen

  • „Finde Sentinel-2-Szenen über Shillong im Januar 2024.“

  • „Zeig mir Cartosat-Aufnahmen im Umkreis von 20 km um Bengaluru in der ersten Hälfte von 2024.“

  • „Gibt es Sentinel-1-Szenen über den Sundarbans im März 2024?“

  • „Welche Landsat-8-Aufnahmen decken den Kaziranga-Nationalpark letzten Winter ab?“

  • „Finde MODIS-Szenen über dem Rann von Kutch im Dezember 2023.“

Prüfen, was zum Download verfügbar ist

  • „Wie viele dieser Sentinel-2-Szenen kann ich gerade tatsächlich herunterladen?“

  • „Welche davon müssen bestellt oder bezahlt werden?“

Einen Download in der Vorschau anzeigen

  • „Zeige eine Vorschau an, was das Herunterladen dieser Szenen ergeben würde.“

Eine Suche zur Wiederverwendung speichern

  • „Speichere diese Sentinel-2-Suche, damit ich sie später herunterladen kann.“

  • „Liste meine gespeicherten Suchanfragen auf.“

  • „Zeig mir, was in der Suche ist, die ich als gespeichert habe.“

  • „Lösche die gespeicherte Suche .“

Herunterladen und Warenkorb (erfordert eine Anmeldung – siehe unten)

  • „Bin ich bei Bhoonidhi angemeldet?“

  • „Lade die Open-Data-Szenen aus meiner gespeicherten Suche herunter.“

  • „Wie läuft der Download?“

  • „Lade herunter und lass es mich wissen, wenn es fertig ist – ich arbeite weiter.“

  • „Füge die kostenpflichtigen Szenen aus meinem Warenkorb hinzu.“

  • „Was ist diese Woche in meinem Warenkorb?“

Anmeldung (für Downloads und Warenkorb)

Suche, gespeicherte Suchanfragen und Vorschauen benötigen keine Anmeldedaten. Das Herunterladen von Szenen und das Einstellen in den Warenkorb schon. Melden Sie sich einmalig separat an – der Server verwendet dieselbe Sitzung, die die bhd-CLI schreibt:

bhd auth login

Der MCP-Server akzeptiert niemals einen Benutzernamen oder ein Passwort als Tool-Argument, und auth_status gibt niemals Ihr Token zurück. Für ein Headless-Setup ohne interaktive Anmeldung können Sie stattdessen BHOONIDHI_USERNAME / BHOONIDHI_PASSWORD in der Umgebung des Servers setzen; der Server liest sie nur, um eine Sitzung aufzubauen.

Konfiguration

Als Umgebungsvariablen festlegen (alle optional):

Variable

Standard

Zweck

BHOONIDHI_MCP_GEOCODER_USER_AGENT

bhoonidhi-mcp/0.1

User-Agent, der an Nominatim gesendet wird (dessen Nutzungsrichtlinie einen beschreibenden verlangt).

BHOONIDHI_MCP_FUZZY_THRESHOLD

88

Punktzahl (0–100), die eine Satellitennamen-Übereinstimmung erreichen muss, um sicher zu sein; darunter werden Kandidaten zur Bestätigung an den Agenten zurückgegeben.

BHOONIDHI_MCP_MAX_RESULTS

50

Maximale Anzahl von Szenen, die von search_scenes inline zurückgegeben werden.

BHOONIDHI_MCP_DOWNLOAD_ROOT

~/Downloads

Zugelassenes Stammverzeichnis, unter das jeder Download geschrieben wird, als <root>/<slug>/. Der Agent kann keinen beliebigen Pfad wählen.

BHOONIDHI_MCP_DOWNLOAD_PARALLEL

4

Parallele Download-Worker.

BHOONIDHI_MCP_LARGE_DOWNLOAD_MB

500

Sobald die aktuelle Byte-Gesamtzahl (oder bekannte Größe) eines Downloads diesen Wert überschreitet, kennzeichnet der Status ihn als groß und leitet den Agenten an, zu übergeben oder einen eigenständigen Befehl auszuführen.

BHOONIDHI_USERNAME / BHOONIDHI_PASSWORD

(nicht gesetzt)

Optionale Headless-Anmeldung. Bevorzugen Sie bhd auth login; füllen Sie diese separat aus, committen Sie sie niemals.

Entwicklung

uv sync
uv run pytest        # test suite
uv run ruff check .  # lint

Lizenz

MIT – siehe LICENSE.

-
license - not tested
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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