bhoonidhi-mcp
bhoonidhi-mcp
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 |
| Das Vokabular der Satelliten, Sensoren und Suchtokens, die das Portal unterstützt, live von Bhoonidhi. | nein |
| Wandelt einen Ortsnamen („Loktak Lake“) in einen Schwerpunkt und eine Begrenzungsbox um. Lehnt Eingaben ab, die keine Ortsnamen sind. | nein |
| 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 |
| Ein Probelauf: Zeigt, was das Herunterladen der Ergebnisse liefern würde und was übersprungen würde, bevor etwas heruntergeladen wird. | nein |
| Speichert eine Suche (gleiche Argumente wie | nein |
| Listet gespeicherte Suchanfragen als kompakte Zusammenfassungen auf: Slug, Name, Datumsbereich, Satelliten, Gebiet und Verfügbarkeit. | nein |
| Gibt eine gespeicherte Suchanfrage anhand des Slugs mit ihren Szenen zurück. | nein |
| Löscht eine gespeicherte Suchanfrage anhand des Slugs. | nein |
| Meldet, ob eine Anmeldung konfiguriert ist. Verarbeitet niemals ein Passwort oder Token. | nein |
| Lädt die Open-Access-Szenen einer gespeicherten Suchanfrage im Hintergrund in ein festes, serverkonfiguriertes Wurzelverzeichnis herunter. Gibt sofort eine | ja |
| Einmalige Überprüfung eines Hintergrund-Downloads anhand der | nein |
| Blockiert, bis ein Download abgeschlossen ist (oder ein begrenztes Zeitlimit erreicht ist), und meldet dann – das effiziente Primitive, auf dem ein Hintergrundbeobachter schleift. | nein |
| Legt die Szenen einer gespeicherten Suchanfrage in den Warenkorb (ordnet jede als bereit / auf Bestellung / bepreist ein). | ja |
| Listet Szenen auf, die sich derzeit im Warenkorb befinden. | ja |
| 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 syncDadurch 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-mcpClaude 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-mcpBeispiel
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 loginDer 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 |
|
| User-Agent, der an Nominatim gesendet wird (dessen Nutzungsrichtlinie einen beschreibenden verlangt). |
|
| Punktzahl (0–100), die eine Satellitennamen-Übereinstimmung erreichen muss, um sicher zu sein; darunter werden Kandidaten zur Bestätigung an den Agenten zurückgegeben. |
|
| Maximale Anzahl von Szenen, die von |
|
| Zugelassenes Stammverzeichnis, unter das jeder Download geschrieben wird, als |
|
| Parallele Download-Worker. |
|
| 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. |
| (nicht gesetzt) | Optionale Headless-Anmeldung. Bevorzugen Sie |
Entwicklung
uv sync
uv run pytest # test suite
uv run ruff check . # lintLizenz
MIT – siehe 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