GeoCroissant MCP Server
GeoCroissant MCP Server
Model Context Protocol (MCP)-Server für GeoCroissant und seine georäumliche Erweiterung.
Funktionen
EO-Datensatzsuche – Stichwort-/Themensuche über STAC-Sammlungen und räumliche Szenensuche (Bounding Box + Datum/Uhrzeit + Wolkembedeckung) gegen die planetare84-Earth-Search-API (
https://earth-search.aws.element84.com/v1, AWS Open Data), mit Sensormodalitäts-Klassifikation (optisch / Radar / Höhenmodell) und Themenkürzel (flood,wildfire,ndvi,dem, ...).STAC -> GeoCroissant-Generierung – wandelt Live-Suchergebnisse in ein validiertes GeoCroissant-Dokument um: Schema.org-Abdeckung, CRS, Band-Konfiguration und spektrale Metadaten aus
eo:bands(umgerechnet von Mikrometern in Nanometer), FileObjects für direkte Asset-URLs sowie ein RecordSet mit einer Zeile pro Szene.Offizieller Validator als Tool – strukturierte Erfolgs-/Fehlschlag-Berichte mit Fehlern und Warnungen von
mlcroissant(dieselbe Engine wiemlcroissant validate).Tiefenprüfung – Kern-Metadaten plus jede GeoCroissant-Eigenschaft: CRS, räumliche/zeitliche Auflösung, Band-Konfiguration, spektrale Band-Metadaten, Record-Endpunkt, räumlicher Index/Bias/Sample-Strategie.
Strukturgraphen-Extraktion – stellt den gerichteten Multigraphen bereit, den die Bibliothek intern aufbaut (Knoten: Metadata/FileObject/FileSet/RecordSet/Field; Kanten: Quelle, Verknüpfung, Enthaltensein).
Record-Materialisierung – führt den echten Operationsgraphen aus (Downloads, Extrahierung, Transformationen), um tatsächliche Datensätze mal zu peken – genau wie
Dataset.records(...)in Python.Validated Scaffolding – erzeugt standardkonformes GeoCroissant-JSON-LD aus strukturierten Parametern und prüft es mit dem realen Validator.
Integrierte Spezifikationsreferenz – Namensräume, alle
geocr:-Eigenschaften menschenbezogen auf Domänen/Kardinalität, kanonischer@context, Beispieldokument und Python-API.
Related MCP server: Copernicus Earth Observation MCP Server
Tools
Tool | Beschreibung |
| Registrierte EO-STAC-Kataloge (Earth Search) mit Modalitäten, kuratierten Sammlungen und Themen-Stichwörtern. |
| Themen-/Stichwortsuche über SR-Collections – |
| Szenensuche nach Ort/Zeit/Wolkembedeckung in einer Bounding-Box; liefert Szenen-IDs, Daten, Wolkembedeckung, native EPSG-Codes und Asset-IDs. |
| Ende-zu-Ende-Pipeline: Live-STAC-Suche -> validiertes GeoCroissant-JSON-LD (Abdeckung, CRS, Bänder & Spektralmetadaten, Distributions-URLs, Inline-Szenen-Datensätze). Optional auf Diskette schreiben. |
| Validieren eines Croissant/GeoCroissant-Dokuments (Dateipfad, URL oder Inline-JSON). Liefert |
| Strukturierte Zusammenfassung eines Dokuments: Metadaten, |
| Knoten und gerichtete Kanten des internen Strukturgraphen der Bibliothek – Analyse von Herkunft und Abhängigkeiten. |
| Record-Set mit |
| Bindet die ersten N-Einträge eines RecordSets ab, optional gefiltert. Führt Downloads/Transformationen wie die Python-API aus. |
| Physische URLs aus der Distribution: |
| Erzeugt ein validiertes GeoCroissant-Dokument aus Parametern (ohne Netz). Optional auf Diskette. |
| Spezifikation: |
Einen Katalog hinzufügen
Die Registry ist datengesteuert (src/geocr_mcp_server/config/catalogs.yaml):
jeder Katalog ist ein Eintrag mit seiner STAC-URL, kuratierten Sammlungen pro Modalität,
sowie gemeinsamen metadata und Stichwort-Hinweisen zur Modalität. Um einen weiteren Katalog
ohne Codeänderung zu registrieren:
Kopieren Sie die YAML an irgendeinen Ort und fügen Sie Ihren Katalog unter
catalogs(und alle Themen-Zuordnungen untertopics) ein.Setzen Sie die Umgebungsvariable auf diese Datei: zu definieren.
"env": { "GEOCR_CATALOGS_CONFIG": "/path/to/catalogs.yaml" }Der Ladeprozess validiert, dass Themen-Referenzen in den Sammlungskatalogen mindestens eines enthielten. Also schlagen Tippfehler bereits beim Start fehl.
Empfohlener Agent-Workflow
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_croissantInstallation
Kein Clone nötig – pip/uvx holen geocr-mcpMittwochskasten sowie die mlcroissant-Abhängigkeit direkt von GitHub. Klonen ist nur für die Entwicklung nötig.
pip
pip install git+https://github.com/HarshShinde0/geocr_mcp.git@mainAlle Abhängigkeit mlcroissant wird automatisch aus dem GeoCroissant-Fork gezogen:
pip install git+https://github.com/HarshShinde0/croissant.git@main#subdirectory=python/mlcroissantuv / uvx (für Clients empfohlen)
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 8000Client-Konfiguration
Kein Python-Code erforderlich – Clients installieren (und cachen) beide Pakete direkt über uvx von GitHub.
{
"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"
}
}
}
}
}Nur erforderlich, wenn man den Server-Code selbst ausbauen will:
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": []
}
}
}Starten Sie den Server mit HTTP-Transport für gemeinsame/entfernte Cloud-Nutzung:
geocr-mcp-server --transport streamable-http --host 0.0.0.0 --port $PORTBereitstellung auf Render (1-Click-Blueprint)
Dieses Repository enthält einen render.yaml-Blueprint:
Loggen Sie sich in das Render Dashboard ein.
Klicken Sie auf New + -> Blueprint und verbinden Sie das Repository
HarshShinde0/geocr_mcp.Klicken Sie auf Apply. Render erstellt den Container automatisch und stellt den Server bereit.
Live-Endpunkt: https://geocr-mcp-server/render.com/mcp
Anbindung von Clients an gehostetem MCP
In der Konfiguration Ihres KI-Clients, Ihrer IDE oder Ihres Agenten (mcpServers):
{
"mcpServers": {
"geocr-remote": {
"url": "https://geocr-mcp-server.onrender.com/mcp"
}
}
}Hinter einem eigenen Reverse-Proxy TLS am Proxy beenden und GEOCR_HOST=0.0.0.0 und
GEOCR_TRANSPORT=streamable-http setzen.
Umgebungsvariablen
Variable | Default | Beschreibung |
|
| Log-Level für die stderr-Protokollierung ( |
| System-Temp-Verzeichnis | Ordner in dem generierte Dateien geschrieben werden (Dateinamen werden auf Basisnamen bereinigt). |
| mitgelieferte YAML | Pfad zu einer alternativen Katalogdatei – einfach ganz Kataloge/Themen ohne Code. |
|
| Bind-Adresse für SSE/streamable-http-Transporte (auch über CLI-Flags). |
Sicherheitshinweise
Der Server führt nur Netzwerkoperationen durch, wenn ein Tool-Input eine URL referenziert oder wenn Records aus externen Verteilungen materialisiert werden (
get_records_preview). Sorge in nicht vertrauenswürdigen Umgebungen stets für einen kleinenlimit.Generierte Dateien werden immer innerhalb von
GEOCR_OUTPUT_DIRgeschrieben; Pfad-Traversierung wird blockiert, indem Dateinamen auf ihren Basisnamen gekürzt werden.Lasse Container als Nicht-Root laufen (das beiliegende Dockerfile macht das bereits).
Entwicklung
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