Skip to main content
Glama

geojson_diff

Compare two GeoJSON FeatureCollections — added/removed/changed features.

Matched by an `id_field` property if given, else by array position (exact
structural comparison, not topological equals). Returns JSON {ok, added,
removed, changed, added_count, removed_count, changed_count, unchanged_count}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
id_fieldNo
geojson_aYes
geojson_bYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Added

TDQS

A4.2/5.0
Behavior4/5

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

Without annotations, the description carries the full burden. It explains the exact matching method (id_field or array position) and that comparison is structural, not topological. It also details the output format. However, it does not mention performance, error handling, or input size limits.

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

Conciseness5/5

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

The description is three sentences: purpose, matching logic, output format. It is concise, front-loaded, and each sentence adds value. No redundant or unclear phrasing.

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

Completeness4/5

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

For a diff tool with no annotations and 0% schema coverage, the description covers the core functionality and output well. It lacks details on error scenarios, input validation, or limitations, but the presence of an output schema reduces the need to describe return values. Overall, it is mostly complete.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It explains that geojson_a and geojson_b are the two inputs and that id_field is an optional property for matching. It does not specify that inputs should be valid GeoJSON strings, but the schema indicates string type. The description provides meaningful context beyond the empty schema.

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 clearly states the tool's purpose: comparing two GeoJSON FeatureCollections to find added, removed, and changed features. It specifies the matching logic (by id_field or array position), which distinguishes it from other geospatial tools like overlay_geojson or validate_geojson.

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

Usage Guidelines3/5

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

The description implies when to use the tool (for detecting changes between two feature collections) but does not explicitly mention when not to use it or provide alternatives. Sibling tools include other GeoJSON operations but no direct diff alternative, so the guidance is minimal.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

B3.3/5.0
Disambiguation2/5

Many assess_* composite tools (datacenter, ev_charging, renewable, telecom, due_diligence) share the same building blocks of grid proximity, land cover, and terrain, making their boundaries fuzzy. assess_property_hazard_x402 also duplicates assess_property_hazard with only a payment-method difference, and bundle_* tools intentionally overlap with the free primitives they replace.

Naming Consistency3/5

There is a mix of verb_noun tools (query_features, geocode_address), noun-first geometry tools (centroids_geojson, envelope_geojson), and inconsistent _geojson suffix usage (buffer_geojson, fix_geometry, geometry_stats). The assess_* and bundle_* prefixes offer some grouping, but no single naming pattern is followed across the set.

Tool Count1/5

With 85 tools, the surface is extreme for an MCP server and far exceeds the typical well-scoped 3-15 range. Many tools are convenience bundles or variants that could be consolidated, making the count a significant usability burden.

Completeness4/5

The toolkit covers a broad range of GIS tasks: format conversions, GeoJSON analysis, FeatureServer query/inspection, geocoding, site assessment, and sharing. Minor gaps exist (e.g., no Excel-to-GeoJSON, no FeatureServer update/delete), but most missing functionality can be worked around by chaining existing tools.