bhoonidhi-mcp
bhoonidhi-mcp
Un servidor MCP que permite a un agente de IA buscar, guardar, descargar y añadir al carrito escenas satelitales del portal Browse & Order de Bhoonidhi de ISRO (NRSC) en lenguaje natural. Un agente puede convertir una frase como "Sentinel-2 sobre Shillong el pasado enero" en una búsqueda real contra el portal en vivo, ver honestamente lo que está disponible para descargar, guardar una búsqueda para reutilizarla después, previsualizar lo que descargaría una descarga y — una vez iniciada la sesión — descargar escenas de acceso abierto o añadirlas al carrito.
Es un adaptador ligero sobre el
bhoonidhi-downloader
SDK — el mismo cliente que usa la CLI bhd — por lo que no se duplica lógica del portal.
Estado
Búsqueda y guardado sin inicio de sesión; descarga y carrito con uno. Las herramientas acceden
al archivo completo de 41 misiones satelitales y 79 sensores, buscan en el portal
en vivo y guardan búsquedas en slugs reutilizables — todo sin credenciales.
Descargar escenas de acceso abierto y añadir escenas al carrito de Bhoonidhi requiere
inicio de sesión, realizado fuera de banda con bhd auth login (el servidor reutiliza esa sesión).
Herramientas
Herramienta | Qué hace | Inicio de sesión |
| El vocabulario de satélites, sensores y tokens de búsqueda que soporta el portal, en vivo desde Bhoonidhi. | no |
| Convierte un nombre de lugar ("Lago Loktak") en un centroide y una caja delimitadora. Rechaza entradas que no sean nombres de lugar. | no |
| Búsqueda de escenas en lenguaje natural sobre un área y un rango de fechas. Resuelve un nombre de satélite informal a tokens exactos, e informa la disponibilidad de cada escena (Lista / Archivada / Bajo pedido / Con precio). Sin estado: no se guarda nada. | no |
| Una prueba en seco: muestra qué descargaría la descarga de los resultados y qué se omitiría, antes de descargar nada. | no |
| Persiste una búsqueda (mismos argumentos que | no |
| Lista las búsquedas guardadas como resúmenes compactos: slug, nombre, rango de fechas, satélites, área y disponibilidad. | no |
| Devuelve una búsqueda guardada por slug, con sus escenas. | no |
| Elimina una búsqueda guardada por slug. | no |
| Informa si hay una sesión configurada. Nunca maneja una contraseña o token. | no |
| Descarga las escenas de acceso abierto de una búsqueda guardada en segundo plano, a una raíz fija configurada en el servidor. Devuelve un | sí |
| Comprobación puntual de una descarga en segundo plano por | no |
| Bloquea hasta que una descarga termina (o un tiempo de espera máximo), y luego informa — el primitivo eficiente sobre el que un vigilante en segundo plano hace bucle. | no |
| Añade las escenas de una búsqueda guardada al carrito (las enruta a lista / bajo pedido / con precio). | sí |
| Lista las escenas actualmente en el carrito. | sí |
| Elimina escenas del carrito. | sí |
La disponibilidad importa: una escena OpenData no está necesariamente preparada para
descargar. search_scenes y preview_download distinguen Lista (descárgala ahora)
de Archivada (datos abiertos, pero puede requerir una solicitud en el portal primero),
para que un agente no prometa de más.
Las descargas se ejecutan en segundo plano, independientes de la conversación:
download_query devuelve un job_id de inmediato y la transferencia continúa por su cuenta.
Comprueba el progreso una vez con download_status — informa bytes descargados, una
tasa de transferencia y un porcentaje una vez que se conoce el tamaño — o sigue un trabajo hasta
su finalización con download_wait, que bloquea hasta que termina (o un tiempo de espera máximo)
para que un agente pueda delegar un vigilante en segundo plano y mantener la conversación
libre en lugar de hacer bucles de espera. Un trabajo vive solo mientras dura el proceso del servidor,
así que una vez que una descarga resulta grande, el estado recomienda ejecutar un comando
independiente bhd query download <slug> que tú controlas.
Instalación
El servidor es un paquete de Python con un punto de entrada de consola, bhoonidhi-mcp.
Instálalo desde el código fuente con uv:
git clone https://github.com/geovicco-dev/bhoonidhi-mcp
cd bhoonidhi-mcp
uv syncEsto expone el comando bhoonidhi-mcp en .venv/bin/bhoonidhi-mcp. El servidor
habla stdio y es lanzado por un cliente MCP — apuntas el cliente a ese comando.
Conexión de un cliente
Todo cliente MCP necesita lo mismo: el comando para lanzar. Usa la ruta absoluta al punto de entrada (la más fiable entre clientes GUI y CLI):
/path/to/bhoonidhi-mcp/.venv/bin/bhoonidhi-mcpClaude Desktop / Claude Code
claude_desktop_config.json (o 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 (para probarlo sin un agente)
npx @modelcontextprotocol/inspector /path/to/bhoonidhi-mcp/.venv/bin/bhoonidhi-mcpEjemplo
Pídele a un agente, en lenguaje sencillo:
"¿Qué escenas de Sentinel-2 hay sobre Shillong en enero de 2024, y cuántas puedo descargar realmente?"
El agente llama a resolve_location para Shillong, luego a search_scenes, y
responde a partir del resultado — por ejemplo, que todas las escenas están Archivadas
(datos abiertos, pero cada una puede requerir una solicitud en el portal antes de descargar),
en lugar de afirmar que todas están listas.
Sugerencias para probar
Copia estas en cualquier agente conectado para hacerte una idea de lo que puede hacer.
Descubre el archivo
"¿Qué satélites y sensores tiene Bhoonidhi?"
"¿Qué sensores lleva ResourceSat-2A y a qué resolución?"
"¿Tiene Bhoonidhi algún satélite de radar?"
Busca escenas
"Encuentra escenas de Sentinel-2 sobre Shillong en enero de 2024."
"Muéstrame imágenes de Cartosat dentro de 20 km de Bengaluru en la primera mitad de 2024."
"¿Hay escenas de Sentinel-1 sobre los Sundarbans en marzo de 2024?"
"¿Qué imágenes de Landsat-8 cubren el Parque Nacional de Kaziranga el invierno pasado?"
"Encuentra escenas de MODIS sobre el Rann de Kutch en diciembre de 2023."
Comprueba qué está disponible para descargar
"De esas escenas de Sentinel-2, ¿cuántas puedo descargar realmente ahora mismo?"
"¿Cuáles de estas necesitan pedirse o pagarse?"
Previsualiza una descarga
"Previsualiza qué descargaría la descarga de esas escenas."
Guarda una búsqueda para reutilizar
"Guarda esa búsqueda de Sentinel-2 para poder descargarla más tarde."
"Lista mis búsquedas guardadas."
"Muéstrame qué hay en la búsqueda que guardé como ."
"Elimina la búsqueda guardada ."
Descarga y carrito (requiere inicio de sesión — ver más abajo)
"¿He iniciado sesión en Bhoonidhi?"
"Descarga las escenas de datos abiertos de mi búsqueda guardada ."
"¿Cómo va esa descarga?"
"Descarga y avísame cuando termine — seguiré trabajando."
"Añade las escenas con precio de a mi carrito."
"¿Qué hay en mi carrito esta semana?"
Inicio de sesión (para descargas y carrito)
La búsqueda, las búsquedas guardadas y las previsualizaciones no necesitan credenciales. Descargar escenas y
añadirlas al carrito sí. Inicia sesión una vez, fuera de banda — el servidor reutiliza la misma
sesión que escribe la CLI bhd:
bhd auth loginEl servidor MCP nunca toma un nombre de usuario o contraseña como argumento de herramienta, y
auth_status nunca devuelve tu token. Para una configuración sin cabeza sin inicio de sesión
interactivo, puedes en su lugar establecer BHOONIDHI_USERNAME / BHOONIDHI_PASSWORD en el
entorno del servidor; el servidor los lee solo para establecer una sesión.
Configuración
Establece como variables de entorno (todas opcionales):
Variable | Valor por defecto | Propósito |
|
| User-Agent enviado a Nominatim (su política de uso pide uno descriptivo). |
|
| Puntuación (0–100) que debe superar una coincidencia de nombre de satélite para ser confiable; por debajo, se devuelven candidatos para que el agente confirme. |
|
| Máximo de escenas devueltas en línea por |
|
| Raíz permitida bajo la que se escribe cada descarga, como |
|
| Trabajadores de descarga en paralelo. |
|
| Una vez que el total de bytes en vivo (o el tamaño conocido) de una descarga supera esto, el estado la marca como grande y orienta al agente a delegar o ejecutar un comando independiente. |
| (sin establecer) | Inicio de sesión sin cabeza opcional. Prefiere |
Desarrollo
uv sync
uv run pytest # test suite
uv run ruff check . # lintLicencia
MIT — ver 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