Skip to main content
Glama
HarshShinde0

GeoCroissant MCP Server

by HarshShinde0

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 wie mlcroissant 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

list_eo_catalogs

Registrierte EO-STAC-Kataloge (Earth Search) mit Modalitäten, kuratierten Sammlungen und Themen-Stichwörtern.

search_eo_datasets

Themen-/Stichwortsuche über SR-Collections – 'flood' -> Sentinel-1 + Sentinel-2, 'dem' -> Copernicus-EM, usw.

search_eo_scenes

Szenensuche nach Ort/Zeit/Wolkembedeckung in einer Bounding-Box; liefert Szenen-IDs, Daten, Wolkembedeckung, native EPSG-Codes und Asset-IDs.

create_geocroissant_from_stac

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.

validate_croissant

Validieren eines Croissant/GeoCroissant-Dokuments (Dateipfad, URL oder Inline-JSON). Liefert valid, errors, warnings und Konformitätsziele.

inspect_geocroissant

Strukturierte Zusammenfassung eines Dokuments: Metadaten, geocr:-Eigenschaften, Distributions-Einträge und jedes RecordSet/Field mit Typen, Formen und Quellketten.

get_structure_graph

Knoten und gerichtete Kanten des internen Strukturgraphen der Bibliothek – Analyse von Herkunft und Abhängigkeiten.

list_record_sets

Record-Set mit @ids, Keys, Inline- Datensatz-/Beispiel-Zählern und verschachtelten Feld-Zusammenfassungen.

get_records_preview

Bindet die ersten N-Einträge eines RecordSets ab, optional gefiltert. Führt Downloads/Transformationen wie die Python-API aus.

extract_distribution_urls

Physische URLs aus der Distribution: contentUrl, Formats, md5/sha256-Arrays, FileSet-Tipps.

create_scaffold

Erzeugt ein validiertes GeoCroissant-Dokument aus Parametern (ohne Netz). Optional auf Diskette.

get_geocroissant_spec_reference

Spezifikation: overview, context, properties, example, python-api oder enollständig`.

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:

  1. Kopieren Sie die YAML an irgendeinen Ort und fügen Sie Ihren Katalog unter catalogs (und alle Themen-Zuordnungen unter topics) ein.

  2. 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_croissant

Installation

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@main

Alle Abhängigkeit mlcroissant wird automatisch aus dem GeoCroissant-Fork gezogen:

pip install git+https://github.com/HarshShinde0/croissant.git@main#subdirectory=python/mlcroissant

uv / uvx (für Clients empfohlen)

uvx --from "geocr-mcp @ git+https://github.com/HarshShinde0/geocr_mcp.git@main" geocr-mcp-server

Docker

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 8000

Client-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 $PORT

Bereitstellung auf Render (1-Click-Blueprint)

Dieses Repository enthält einen render.yaml-Blueprint:

  1. Loggen Sie sich in das Render Dashboard ein.

  2. Klicken Sie auf New + -> Blueprint und verbinden Sie das Repository HarshShinde0/geocr_mcp.

  3. 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

FASTMCP_LOG_LEVEL

WARNING

Log-Level für die stderr-Protokollierung (DEBUG, INFO, WARNING, ERROR).

GEOCR_OUTPUT_DIR

System-Temp-Verzeichnis

Ordner in dem generierte Dateien geschrieben werden (Dateinamen werden auf Basisnamen bereinigt).

GEOCR_CATALOGS_CONFIG

mitgelieferte YAML

Pfad zu einer alternativen Katalogdatei – einfach ganz Kataloge/Themen ohne Code.

GEOCR_HOST / GEOCR_PORT

127.0.0.1 / 8000

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 kleinen limit.

  • Generierte Dateien werden immer innerhalb von GEOCR_OUTPUT_DIR geschrieben; 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 debugging
Install Server
F
license - not found
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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 Servers

  • A
    license
    B
    quality
    A
    maintenance
    Enables 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.
    11
    13
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Provides 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.
    13
    3
    LGPL 3.0
  • F
    license
    A
    quality
    D
    maintenance
    Provides 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
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides geospatial data intelligence tools for inspecting, querying, and converting geospatial data using DuckDB Spatial.
    1
    MIT

View all related MCP servers

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)

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/HarshShinde0/geocr_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server