GeoCroissant MCP Server
Servidor GeoCroissant MCP
Servidor Model Context Protocol (MCP) para GeoCroissant y su extensión geoespacial.
Funcionalidades
Descubrimiento de conjuntos de datos EO — búsqueda por palabra clave/tema en colecciones STAC y búsqueda espacial de escenas (bbox + datetime + cobertura de nubes) contra la Element84 Earth Search API en vivo (
https://earth-search.aws.element84.com/v1, AWS Open Data), con clasificación por modalidad de sensor (óptica / radar / elevación) y atajos de tema (flood,wildfire,ndvi,dem, ...).Generación STAC -> GeoCroissant — convierte los resultados de búsqueda en vivo en un documento GeoCroissant validado: cobertura de schema.org, CRS, configuración de bandas y metadatos espectrales derivados de
eo:bands(convertidos de micrómetros a nanómetros), FileObjects de distribución para URLs directas de activos, y un RecordSet que incrusta una fila por escena.Validador oficial como herramienta — informes estructurados de apto/no apto con errores y advertencias de
mlcroissant(el mismo motor quemlcroissant validate).Inspección profunda — metadatos principales y todas las propiedades de GeoCroissant: CRS, resolución espacial/temporal, configuración de bandas, metadatos de bandas espectrales, endpoint de registros, índice espacial / sesgo / estrategia de muestreo.
Extracción del grafo de estructura — expone el multigrafo dirigido que la librería construye internamente (nodos Metadata / FileObject / FileSet / RecordSet / Field; aristas de origen, unión y contención).
Materialización de registros — ejecuta el grafo de operaciones real (descargas, extracciones, transformaciones) para previsualizar los registros, exactamente como
Dataset.records(...)en Python.Scaffolding validado — genera GeoCroisant JSON-LD conforme a estándares a partir de parámetros estructurados y lo verifica a través del validador real.
Referencia de especificación integrada — namespaces, todas las propiedades
geocr:con dominios/cardinalidad,@contextcanónico, documento de ejemplo y API de Python.
Related MCP server: Copernicus Earth Observation MCP Server
Herramientas
Herramienta | Descripción |
| Catálogos EO STAC registrados (Earth Search) con modalidades, colecciones curadas y palabras clave de tema. |
| Búsqueda por tema/palabra clave en colecciones de Earth Search: |
| Búsqueda espacial/temporal/cobertura de nubes de escenas en un bbox; devuelve ids de escena, fechas, cobertura de nubes, EPSG nativo y claves de activos. |
| Pipeline de extremo a extremo: búsqueda STAC en vivo -> GeoCroisant JSON-LD validado (cobertura, CRS, bandas y metadatos espectrales, URLs de distribución, registros de escena integrados). Opcionalmente lo escribe en disco. |
| Valida un documento Croissant/GeoCroissant (ruta de archivo, URL o JSON en línea). Devuelve |
| Resumen estructurado de un documento: metadatos, propiedades |
| Nodos y aristas dirigidas del grafo de estructura interno de la librería: análisis de linaje y dependencias. |
| RecordSets con |
| Materializa los primeros N registros de un RecordSet, opcionalmente filtrados. Ejecuta descargas/transformaciones como la API de Python. |
| URLs descargables de la distribución: |
| Genera un documento GeoCroisant validado a partir de parámetros (sin necesidad de red). Opcionalmente lo escribe en disco. |
| Referencia de especificación: |
Añadir un catálogo
El registro está basado en datos (src/geocr_mcp_server/config/catalogs.yaml):
cada catálogo es una entrada con su URL STAC, colecciones curadas por modalidad,
además de topics compartidos y pistas de palabras clave por modalidad. Para
registrar otro catálogo sin tocar código:
Copie el YAML a alguna ubicación y añade tu catálogo bajo
catalogs(así como las asignaciones de temas bajotopics).Apunta la variable de entorno a ese archivo:
"env": { "GEOCR_CATALOGS_CONFIG": "/path/to/catalogs.yaml" }El cargador valida que las referencias de temas existan en las listas de colecciones de algún catálogo, para que los erros tipográficos provoquen un fallo rápido al inicio.
Flujo de trabajo recomendado para el agente
discovery: list_eo_catalogs -> search_eo_datasets("burn scar", modality=optical)
-> search_eo_scenes(bbox=[...], datetime_range=...)
metadata: create_geocroissant_from_stac(...) # validated output + optional file
consuming: inspect_geocroissant -> get_records_preview -> extract_distribution_urls
authoring: create_geocroissant_scaffold -> edit -> validate_croissantInstalación
No hace falta clonar el repositorio: pip/uvx descargan tanto geocr-mcp como su dependencia mlcroissant directamente desde GitHub. Clonar solo es necesario para el desarrollo.
pip
pip install git+https://github.com/HarshShinde0/geocr_mcp.git@mainLa única dependencia, mlcroissant, se extrae automáticamente del fork GeoCroissant:
pip install git+https://github.com/HarshShinde0/croissant.git@main#subdirectory=python/mlcroissantuv / uvx (recomendado para clientes)
uvx --from "geocr-mcp @ git+https://github.com/HarshShinde0/geocr_mcp.git@main" geocr-mcp-serverDocker
docker build -t geocr-mcp-server .
# stdio (local clients):
docker run -i --rm geocr-mcp-server
# hosted (HTTP transports):
docker run -p 8000:8000 geocr-mcp-server --transport streamable-http --host 0.0.0.0 --port 8000Configuración del cliente
No hace falta clonar el repositorio: los clientes instalan (y guardan en caché) ambos paquetes directamente desde GitHub mediante uvx.
{
"mcpServers": {
"geocr": {
"command": "uvx",
"args": [
"--from", "geocr-mcp @ git+https://github.com/HarshShinde0/geocr_mcp.git@main",
"geocr-mcp-server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}{
"mcp": {
"servers": {
"geocr": {
"command": "uvx",
"args": [
"--from", "geocr-mcp @ git+https://github.com/HarshShinde0/geocr_mcp.git@main",
"geocr-mcp-server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
}
}Solo es necesario cuando se itera sobre el código del propio servidor:
git clone https://github.com/HarshShinde0/geocr_mcp.git # or this monorepo{
"mcpServers": {
"geocr": {
"command": "uv",
"args": [
"--directory", "/path/to/geocr_mcp",
"run", "geocr-mcp-server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}Ejecuta el mismo servidor con transporte HTTP para uso compartido/remoto en la nube:
geocr-mcp-server --transport streamable-http --host 0.0.0.0 --port $PORTDespliegue en Render (Blueprint de un clic)
Este repositorio incluye un blueprint render.yaml:
Inicia sesión en Panel de control de Render.
Clique en New + -> Blueprint y conecta el repositorio
HarshShinde0/gecr_mcp.Clique en Apply. Render creará el contenedor automáticamente y hará el despliegue del servidor.
Endpoint en vivo: https://geocr-mcp-server.onrender.com/mcp
Conexión de clientes a MCP alojado
En la configuración de tu cliente, IDE o agente (mcpServers):
{
"mcpServers": {
"geocr-remote": {
"url": "https://geocr-mcp-server.onrender.com/mcp"
}
}
}Detrás de un proxy inverso personalizado, termina el TLS en el proxy y establece GEOCR_HOST=0.0.0.0 y GEOCR_TRANSPORT=streamable-http.
Variables de entorno
Variable | Por defecto | Descripción |
|
| Nivel de registro para los logs de stderr ( |
| directorio temporal del sistema | Directorio donde se escriben los archivos generados (los nombres de archivo se reducen a su base). |
| YAML integrado | Ruta a un archivo alternativo de registro de catálogos: añade catálogos/temas sin cambios de código. |
|
| Dirección de escucha para transports SSE/streamable-http (también configuración mediante indicadores de CLI). |
Consideraciones de seguridad
El servidor realiza solicitudes de red solo cuando una entrada de herramienta hace referencia a una URL o cuando materializa registros de distribuciones remotas (
get_records_preview). Mantenga el valor delimitelevado/pequeño en no contextos confiables.Los archivos generados se escriben siempre dentro de
GEOCR_OUTPUT_DIR; el de recorrido de rutas se bloquea reduciendo los nombres de archivo a su nombre base.Ejecute los contenedores como usuario no root (el Dockerfile proporcionado ya lo hace).
Desarrollo
cd geocr_mcp
uv venv && uv sync --all-groups # or: python -m pip install -e ".[dev]"
uv run pytest --cov --cov-branch # unit tests (no network required)
uv run ruff check src tests # lint (same rules as awslabs/mcp)
npx @modelcontextprotocol/inspector geocr-mcp-server # interactive debuggingMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables AI assistants to search and access geospatial datasets through STAC (SpatioTemporal Asset Catalog) APIs. Supports querying satellite imagery, weather data, and other geospatial assets with spatial, temporal, and attribute filters.1113MIT
- AlicenseBqualityDmaintenanceProvides tools to search, download, and manage satellite imagery from all Copernicus Sentinel missions via the Copernicus Data Space ecosystem. It enables advanced geospatial queries, temporal coverage analysis, and automated data management for Earth observation tasks.133LGPL 3.0
- FlicenseAqualityDmaintenanceProvides access to the OpenLandMap STAC catalog, offering over 100 global environmental datasets including soil, climate, and vegetation data. It enables AI agents to discover, search, and retrieve Cloud-Optimized GeoTIFFs for global geospatial analysis.27
- AlicenseNot gradedqualityCmaintenanceProvides geospatial data intelligence tools for inspecting, querying, and converting geospatial data using DuckDB Spatial.1MIT
Related MCP Connectors
Create, browse, remix, collaborate on, and run durable AI workflow nodes from MCP hosts.
Create, validate, edit, export (markdown/svg/png/mermaid), and search JSON Canvas files.
GIS tools for AI agents: 65 free tools + 8 paid (hazard/site-scouting/GeoJSON export)
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/HarshShinde0/geocr_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server