Skip to main content
Glama
HarshShinde0

GeoCroissant MCP Server

by HarshShinde0

create_geocroissant_from_stac

Turn Earth observation STAC search results into validated GeoCroissant metadata. Use bounding box, date range, and collection filters to build the dataset.

Instructions

Searches live EO data and generates VALIDATED GeoCroissant metadata from it.

    This is the flagship end-to-end pipeline of this server:

    1. Runs a real STAC search (bbox + collections + datetime + cloud cover).
    2. Derives GeoCroissant properties from the results: schema.org spatial/
       temporal coverage, CRS (EPSG:4326), record endpoint, band
       configuration and spectral band metadata from `eo:bands`
       (micrometers converted to nanometers), distribution FileObjects for
       direct asset URLs, and a RecordSet with one inline row per scene.
    3. Validates the document through the official `mlcroissant` library
       before returning it.

    Usage: THE tool for turning discovered EO data into GeoCroissant.
    After generation use `inspect_geocroissant`, `get_records_preview`
    and `extract_distribution_urls` on the output.

    Returns:
    --------
    Dictionary containing:
        - valid/errors/warnings: mlcroissant validation outcome.
        - json_ld: The generated GeoCroissant document.
        - path: Output file path when output_filename was given.
        - search_summary: What was searched and how many scenes matched.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bboxYesBounding box as [min_lon, min_lat, max_lon, max_lat].
nameYesName for the generated dataset.
limitNoNumber of scenes to include (1-50).
licenseNoLicense URL.
creatorsNoCreator names.
modalityNoModality used to pick default collections.
collectionsNoExplicit STAC collection ids.
descriptionNoDescription of the generated dataset.
datetime_rangeNoSTAC datetime interval.
max_cloud_coverNoMax cloud cover percentage.
output_filenameNoWhen provided, writes the validated JSON-LD into GEOCR_OUTPUT_DIR (or temp dir) and returns the path.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It openly discloses that this runs a real STAC search, derives specific metadata properties, validates through mlcroissant, returns a structured dictionary, and optionally writes to a file when output_filename is provided. This is far more than generic 'creates metadata' and gives the agent a reliable model of side effects and outcomes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than typical, but it deserves the length: a high-level summary, numbered pipeline steps, usage guidance, and a structured returns breakdown. It is scannable and avoids filler. The only minor issue is some near-duplication between the numbered pipeline and the Returns section, but overall the structure earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity with 11 parameters, no annotations, and a rich transformation pipeline, the description covers the key decision-relevant context: input search criteria, output validation, the return dictionary shape, and follow-up tool recommendations. Nothing critical is missing for an agent to decide to call it and interpret the result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers every parameter with 100% description coverage, including defaults, ranges, and types. The tool description contributes little parameter-specific semantics beyond grouping bbox, collections, datetime, and cloud cover as search criteria, and mentioning output_filename in the return path. This meets the baseline but does not add substantial new parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Searches live EO data and generates VALIDATED GeoCroissant metadata from it.' It distinguishes itself from sibling tools by framing itself as the flagship end-to-end pipeline and naming follow-up inspection tools rather than other generators. This gives an agent a clear, unambiguous understanding of what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states this is the tool for turning discovered EO data into GeoCroissant and suggests follow-up sibling tools to use after generation. It does not explicitly contrast with create_geocroissant_scaffold or list search-only siblings, so no exclusionary guidance is given, but the context of when to invoke it is sufficiently clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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