carbon-geo-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CARBON_GEO_MCP_ROOTS | No | Optional list of folders the server is allowed to access. Several folders can be separated by ';' on Windows and ':' elsewhere. The server is read-only and never writes files. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| layer_infoA | Describe a vector layer before any analysis: CRS (and whether it is in degrees), feature count, missing/empty/invalid geometries, geometry types, bounds and fields with their null counts. Call this first on every layer. Args: path: Path to a vector file (GeoPackage, Shapefile, GeoJSON, KML, FlatGeobuf...). layer: Layer name inside a multi-layer file such as a GeoPackage (optional). |
| area_by_stratumA | Area in hectares of a polygon layer, in total and per stratum, measured in an equal-area CRS. Overlapping polygons are dissolved so ground is never counted twice, and the overlap inside each stratum and between strata is reported. Args: path: Polygon layer (project area, strata, eligible area...). stratum_field: Attribute holding the stratum or class (optional). layer: Layer name inside a multi-layer file (optional). crs: Projected CRS to measure in, e.g. "EPSG:32720". If omitted, a local Lambert Azimuthal Equal Area projection centred on the data is used. |
| compare_declared_areaA | Compare areas declared in a project document (PD, monitoring report) with the areas calculated from the layer, and flag differences above a tolerance. Args: path: Polygon layer with the project area or strata. declared_ha: Declared hectares, keyed by stratum value and/or "total", e.g. {"total": 8000, "dense_forest": 5200}. stratum_field: Attribute holding the stratum (needed for per-stratum keys). tolerance_pct: Accepted absolute difference in percent (default 1.0). layer: Layer name inside a multi-layer file (optional). crs: Projected CRS to measure in (optional, equal-area by default). |
| check_overlapA | Overlap between two polygon layers (e.g. project area vs. protected areas, other registered projects, leakage belt or reference region): hectares, percentage of each layer and the largest overlapping feature pairs. Reports 0 ha explicitly. Args: path_a: First polygon layer (usually the project area). path_b: Second polygon layer. id_field_a: Attribute used to name features of layer A (optional). id_field_b: Attribute used to name features of layer B (optional). layer_a: Layer name inside a multi-layer file A (optional). layer_b: Layer name inside a multi-layer file B (optional). crs: Projected CRS to measure in (optional, equal-area by default). max_pairs: Maximum number of overlapping pairs to list (default 20). |
| plots_in_strataA | Check monitoring or inventory plots against the strata: plots outside every stratum (with distance), plots whose declared stratum differs from the stratum they fall in, plots on overlapping strata, plots close to the boundary and duplicated coordinates. Distances are measured in the local UTM zone unless a CRS is given. Args: plots_path: Point layer with plot centres. strata_path: Polygon layer with the strata. stratum_field: Stratum attribute in the strata layer. plot_stratum_field: Stratum declared for each plot in the plots layer (optional). plot_id_field: Plot identifier attribute (optional). edge_distance_m: Flag plots closer than this to the strata boundary (0 = off). plots_layer: Layer name inside the plots file (optional). strata_layer: Layer name inside the strata file (optional). crs: Projected CRS for distances (optional). |
| forest_loss_in_areaA | Forest loss per year inside an area of interest from a local "lossyear" raster (e.g. a Hansen Global Forest Change tile, where 1 = 2001 ... 24 = 2024). Pixel areas are geodesic for rasters in degrees. Also reports how much of the area the raster actually covers, so a partial tile is never read as "no loss". Args: aoi_path: Polygon layer with the area of interest (project area, leakage belt...). lossyear_raster: Path to the GeoTIFF with loss years. aoi_layer: Layer name inside a multi-layer AOI file (optional). start_year: First year to include, e.g. 2015 (optional). end_year: Last year to include, e.g. 2024 (optional). base_year: Year added to the raster value (2000 for Hansen GFC). |
| data_completenessA | Completeness of the attributes of a layer: filled and missing values per field (blank text counts as missing) and number of distinct values. Args: path: Vector layer to inspect. fields: Fields to check (optional, all fields by default). layer: Layer name inside a multi-layer file (optional). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool has a clearly separate analytical purpose (inspection, area measurement, declared-area comparison, cross-layer overlap, plot QA, raster forest loss, attribute completeness). The only real overlap is between layer_info and data_completeness, since layer_info already reports per-field null counts while data_completeness goes deeper on blanks/distinct values; the descriptions make the distinction (structural describe vs. attribute QA) reasonably clear.
All names are snake_case and read predictably. The stem style is mixed—verb-led (compare_declared_area, check_overlap) versus noun/domain-led (layer_info, plots_in_strata, forest_loss_in_area, data_completeness)—but each name accurately telegraphs its operation.
Seven tools is well-scoped for a geo-validation server; each one covers a distinct step in carbon-project spatial verification (inspect, measure, compare, cross-check, plot QA, forest loss, attribute QA). No tool appears redundant or filler.
The surface covers the core QA lifecycle for project-area data: layer health, equal-area measurement, declared-vs-actual reconciliation, overlap detection, plot placement checks, forest-loss quantification and attribute completeness. Minor gaps exist—no reprojection/export or generic raster statistics beyond lossyear, and no written report output—but agents can work around these.