mcp-geo
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 | {} |
| prompts | {} |
| resources | {} |
| extensions | {
"io.modelcontextprotocol/ui": {
"mimeTypes": [
"text/html;profile=mcp-app"
]
}
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| admin_lookup_area_geometryA | Return bbox and optional full boundary geometry for a given area id |
| admin_lookup_containing_areasA | Return containing administrative areas for a point (lat/lon) |
| admin_lookup_find_by_nameA | Search administrative areas by name; returns ids and bbox summaries. Use admin_lookup.area_geometry for full boundary geometry. |
| admin_lookup_get_cache_statusC | Return boundary cache status (levels, datasets, counts). |
| admin_lookup_reverse_hierarchyB | Return ancestor chain for a given area id |
| admin_lookup_search_cacheC | Search the boundary cache by id/name/level. |
| council_tax_band_lookupC | Experimental England/Wales Council Tax band lookup via the public GOV.UK service. |
| council_tax_queryA | Query AddressBase Premium Application Cross Reference records by UPRN to identify Council Tax and non-domestic rates flags. |
| landis_archive_get_itemA | Get detail for one locally mirrored LandIS archive item. |
| landis_archive_list_itemsB | List locally mirrored LandIS archive items and their triage classification. |
| landis_catalog_list_productsC | List the LandIS MVP product registry with coverage, access tier, and resource hints. |
| landis_derive_pipe_riskA | Screen corrosion and shrink-swell pipe risk for a bbox or GeoJSON Polygon/MultiPolygon. |
| landis_metadata_getA | Retrieve LandIS product metadata, provenance notes, and linked resources. |
| landis_natmap_area_summaryB | Summarize NATMAP map units across a bbox or GeoJSON polygon. |
| landis_natmap_pointB | Get the NATMAP map unit at a WGS84 lat/lon. |
| landis_natmap_thematic_area_summaryB | Summarize one NATMAP thematic product across a bbox or GeoJSON polygon. |
| landis_nsi_nearest_sitesB | Find the nearest LandIS NSI evidence sites to a WGS84 point. |
| landis_nsi_profile_summaryB | Get an evidence summary for one LandIS NSI site identifier. |
| landis_nsi_within_areaA | List LandIS NSI evidence sites within a bbox or GeoJSON polygon. |
| landis_soilscapes_area_summaryA | Summarize LandIS Soilscapes coverage for a bbox or GeoJSON Polygon/MultiPolygon. |
| landis_soilscapes_pointA | Return the LandIS Soilscapes class and caveats for a WGS84 point. |
| nomis_codelistsC | List NOMIS codelists or return a codelist definition. |
| nomis_conceptsC | List NOMIS concepts or return a concept definition. |
| nomis_datasetsA | List NOMIS datasets (filtered and limited summary by default), or return a dataset definition. |
| nomis_queryC | Query NOMIS datasets (JSON-stat or SDMX JSON). |
| ons_codes_listC | List available ONS dimensions for a live dataset version. |
| ons_codes_optionsC | List codes/options for a given ONS live dimension. |
| ons_data_create_filterC | Create a filter for live ONS observations. Returns filterId. |
| ons_data_dimensionsB | List available ONS observation dimensions from the live API. |
| ons_data_editionsB | List live editions for an ONS dataset. |
| ons_data_get_filter_outputA | Retrieve data for a previously created filter (formats: JSON, CSV, XLSX). Supports inline or resource delivery for larger outputs. |
| ons_data_get_observationC | Fetch a single observation by geography, measure, time from the live ONS API. |
| ons_data_queryA | Query live ONS observations (dataset/edition/version or search term). |
| ons_data_versionsC | List live versions for an ONS dataset edition. |
| ons_geo_area_summaryC | Resolve a compact OA/LSOA/MSOA/parish/ward/profile summary from an area code, postcode, or UPRN using cached ONS geographies, compact inventory counts, and curated NOMIS follow-up datasets. |
| ons_geo_by_postcodeB | Lookup all cached geographies for a postcode using derivation mode (exact via ONSPD, best_fit via NSPL). |
| ons_geo_by_uprnB | Lookup all cached geographies for a UPRN using derivation mode (exact via ONSUD, best_fit via NSUL). |
| ons_geo_cache_statusA | Return cache/index status for ONS geography lookups (ONSPD/ONSUD/NSPL/NSUL). |
| ons_geo_release_auditA | Audit ONS UPRN release freshness by combining AddressBase epoch schedule, Geoportal notices, Geoportal dataset discovery, and current package resolution. |
| ons_search_queryC | Search live ONS datasets by term. |
| ons_select_searchB | Rank ONS datasets using a cached catalog with explainable scoring and elicitation prompts for missing context. |
| os_apps_log_eventC | Log MCP-Apps UI interaction events for tracing. |
| os_apps_render_boundary_explorerC | Open the MCP-Apps boundary explorer widget. |
| os_apps_render_feature_inspectorC | Open the MCP-Apps feature inspector widget. |
| os_apps_render_geography_selectorC | Open the MCP-Apps geography selector widget. |
| os_apps_render_route_plannerC | Open the MCP-Apps route planner widget. |
| os_apps_render_statistics_dashboardD | Open the MCP-Apps statistics dashboard widget. |
| os_apps_render_ui_probeC | Probe MCP-Apps UI rendering support. |
| os_downloads_get_exportB | Retrieve a previously prepared OS downloads export by exportId. |
| os_downloads_get_productB | Get OS Downloads product metadata by productId. |
| os_downloads_list_data_packagesB | List account-specific OS data packages (permission dependent). |
| os_downloads_list_product_downloadsB | List download entries for a specific OS Downloads product. |
| os_downloads_list_productsB | List OS Downloads products with optional local query filtering. |
| os_downloads_prepare_exportC | Prepare an OS downloads export payload and return inline or resource delivery metadata. |
| os_features_collectionsB | List OS NGD OGC API Features collections (and a latest-by-base mapping). |
| os_features_queryA | Query OS NGD features by collection using bbox or polygon constraints, with optional filter/projection/sort/queryables support. |
| os_features_wfs_archive_capabilitiesB | Fetch WFS archive GetCapabilities (entitlement dependent). |
| os_features_wfs_capabilitiesC | Fetch WFS GetCapabilities for OS Features API. |
| os_landscape_findC | Find protected landscapes (AONB/National Landscape) by name for AOI-first environmental survey routing. |
| os_landscape_getB | Retrieve a protected-landscape record and boundary geometry by id or name. |
| os_linked_ids_feature_typesD | Resolve linked identifiers using /featureTypes/{featureType}/{id}. |
| os_linked_ids_getC | Resolve linked identifiers (UPRN/USRN/TOID) using OS search/links API. |
| os_linked_ids_identifiersD | Resolve linked identifiers using /identifiers/{id}. |
| os_linked_ids_product_version_infoC | Resolve product version info for a correlation method. |
| os_map_exportB | Export a map artifact. Legacy mode exports inventory snapshots from bbox; selection_uprn mode queues async selector-driven UPRN exports. |
| os_map_export_roadsA | Export complete road overlay artifacts server-side from road numbers and/or selectionSpec-derived AOIs, including all upstream pages and semantic parts. |
| os_map_get_exportB | Get async export status for a selector-driven os_map.export job. |
| os_map_inventoryA | Return a bounded inventory (UPRNs, buildings, road links, path links) for a bbox. |
| os_maps_raster_tileC | Fetch a raster ZXY tile with inline/resource delivery controls. |
| os_maps_renderC | Return metadata for rendering a static map image (proxy URL) with overlay-ready geometry contracts and optional os_map.inventory hydration. |
| os_maps_wmts_capabilitiesA | Fetch WMTS GetCapabilities with inline/resource delivery controls. |
| os_mcp_descriptorB | Describe server capabilities and tool search configuration. |
| os_mcp_route_queryB | Classify a query and recommend the right tool/workflow. |
| os_mcp_select_toolsetsB | Select discovery toolsets and return tools/list filter guidance. |
| os_mcp_stats_routingB | Explain whether stats queries route to ONS or NOMIS. |
| os_names_findD | Find place names |
| os_names_nearestD | Nearest named features |
| os_net_rinex_yearsA | List OS Net RINEX years. |
| os_net_station_getA | Get OS Net station metadata by stationId. |
| os_net_station_logB | Get OS Net station log text with inline/resource delivery controls. |
| os_offline_descriptorC | Describe PMTiles/MBTiles offline map packs and retrieval contracts. |
| os_offline_getC | Return offline delivery handoff skeletons for a PMTiles/MBTiles pack. |
| os_peat_evidence_pathsB | Build AOI-scoped peat evidence and proxy query plans with explicit provenance, confidence, and caveats. |
| os_peat_layersB | List peat evidence layers and proxy layers with provenance and caveats. |
| os_places_by_postcodeA | Lookup UPRNs and addresses for a UK postcode via OS Places API |
| os_places_by_uprnB | Lookup a single address by UPRN |
| os_places_nearestB | Find nearest addresses to a point |
| os_places_polygonC | Addresses within a polygon |
| os_places_radiusC | Addresses within a radius of a WGS84 point |
| os_places_searchB | Free text search in OS Places |
| os_places_withinC | Addresses within a bounding box |
| os_poi_nearestA | Find nearby OS Points of Interest for a latitude/longitude point. |
| os_poi_searchA | Search OS Points of Interest by text, with optional bbox filtering. |
| os_poi_withinA | Find OS Points of Interest within a WGS84 bounding box. |
| os_qgis_export_geopackage_descriptorB | Build a QGIS GeoPackage import descriptor for a resource-backed export artifact. |
| os_qgis_vector_tile_profileB | Return a QGIS-ready OS vector tile profile (proxy or direct URL mode). |
| os_resources_getB | Read an MCP Geo resource by uri or name with transport-safe chunking. |
| os_route_descriptorA | Describe MCP Geo route-planning capabilities and graph readiness. |
| os_route_getC | Resolve route stops and compute a pgRouting-backed route. |
| os_tiles_ota_collectionsB | List OS NGD OTA tile collections. |
| os_tiles_ota_conformanceA | List OGC conformance classes supported by OS NGD OTA. |
| os_tiles_ota_tilematrixsetsA | List OS NGD OTA tile matrix sets. |
| os_vector_tiles_descriptorA | Return vector tiles style and tile template URLs |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| eval_address_lookup | Postcode lookup via OS Places. |
| eval_area_comparison | Multi-area comparison workflow. |
| eval_boundary_fetch | Two-step boundary bbox lookup. |
| eval_dataset_discovery | ONS dimensions listing (live mode). |
| eval_feature_search | Feature inspector widget. |
| eval_interactive_selection | Interactive selection + boundary lookup. |
| eval_linked_ids | Linked identifiers lookup. |
| eval_map_render | Vector tiles + static map descriptors. |
| eval_place_lookup | Basic administrative area lookup (live). |
| eval_route_planning | Route planner widget. |
| eval_statistics | ONS query over live observations. |
| eval_unknown | Tool search endpoint validation. |
| eval_vector_tiles | Vector tiles descriptor output for OS base map. |
| landis_planner_soil_constraints_brief | Summarize generalized soil constraints and caveats for a planning area. |
| landis_water_utility_pipe_risk_brief | Screen corrosion and shrink-swell risk for a water utility area of interest. |
| landis_catchment_soil_behaviour_brief | Summarize generalized soil behaviour and caveats for catchment-style screening. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| skills_getting_started | Getting started guidance for MCP Geo tools and resources. |
| ui_geography_selector | Interactive selector for UK administrative areas. |
| ui_boundary_explorer | Map Lab workspace for learning and building UK maps with boundaries, UPRNs, buildings, links, selector-based collections, and export. |
| ui_statistics_dashboard | Visual dashboard for ONS observations and comparisons. |
| ui_feature_inspector | Inspect OS NGD features and linked identifiers. |
| ui_route_planner | Plan routes with waypoints and directions. |
| ui_simple_map_lab | Minimal lab for simple map delivery tests: OS vector proxy auth fallback and PMTiles browser-render trials. |
| data_boundary_manifest | Boundary dataset manifest driving the ingestion pipeline. |
| data_ons_catalog | Curated ONS dataset catalog index for selection and ranking. |
| data_os_catalog | Catalog of Ordnance Survey API endpoints and download products, with sample probes for live validation. |
| data_layers_catalog | Catalog mapping user-friendly layer concepts to OS NGD collections and rendering hints. |
| data_landis_products | Checked-in registry for the LandIS MVP product, metadata, and provenance surface. |
| data_landis_docs_soil_data_structures | Operational join guidance for LandIS association, series, and horizon data. |
| data_landis_docs_soil_classification | Operational classification and caveat guidance for LandIS-derived outputs. |
| data_landis_licence_current | Current LandIS open-access and licence validation note for the MVP. |
| data_landis_portal_inventory | Authenticated inventory of the mirrored LandIS portal catalog. |
| data_landis_archive_triage | Machine-readable triage manifest for the local LandIS archive and release inventory. |
| data_landis_full_release_manifest | Supplementary public/data.gov release manifest captured alongside the portal mirror. |
| data_protected_landscapes_england | AONB/National Landscape lookup dataset used for AOI-first survey routing. |
| data_peat_layers_england | Peat evidence/proxy layer registry with AOI query strategy, provenance, confidence, and caveats. |
| data_offline_map_catalog | PMTiles/MBTiles offline pack catalog and retrieval contracts. |
| data_map_embedding_style_profiles | Lightweight style profiles for constrained MCP/AI host embedding contexts. |
| data_nomis_workflows | Dataset-specific NOMIS workflow profiles and routing hints. |
| data_area_summary_workflows | Compact area-summary prompt patterns, guardrails, and evaluation guidance. |
| data_ons_geo_sources | Manifest of exact and best-fit ONS geography products (ONSPD/ONSUD and NSPL/NSUL). |
| data_ons_geo_cache_index | Index/status for local ONS geography cache refresh runs. |
| data_boundary_pack_sources | Source manifest for boundary packs managed via hybrid fetch cache. |
| data_code_list_pack_sources | Source manifest for code-list packs managed via hybrid fetch cache. |
| data_boundary_packs_index | Hybrid cache index for boundary packs (checksum + cache path status). |
| data_code_list_packs_index | Hybrid cache index for code-list packs (checksum + cache path status). |
| data_stakeholder_benchmark_pack | Scenario pack used by the playground benchmarks workbench and live-run harness. |
| data_stakeholder_benchmark_live_run_latest | Stable alias to the latest reviewed stakeholder benchmark live-run artifact. |
| data_boundary_cache_status | Live status summary for the PostGIS boundary cache. |
| data_offline_packs_index | Index of PMTiles/MBTiles offline pack artifacts. |
| data_map_scenario_packs_index | Notebook-generated scenario packs with provenance metadata. |
| data_map_scenario_pack_map_delivery_option_tracker | Notebook-generated map scenario pack artifact. |
| data_map_scenario_pack_map_delivery_option_tracker.sample | Notebook-generated map scenario pack artifact. |
TDQS
Scored across 103 tools
While the provider prefixes (os_, ons_, landis_) help, there is considerable overlap between tools like os_places_search vs os_poi_search vs os_names_find, and os_map_export vs os_map_export_roads. The distinction between os_features_query and os_map_inventory is also unclear, making it easy for an agent to select the wrong tool.
Most tools follow a {provider}_{resource}_{action} pattern, and each data source has a reasonably consistent style (e.g., os_places_*, os_poi_*, os_downloads_*). However, there are notable exceptions like os_linked_ids_* and os_mcp_* that mix nouns and verbs, and some tools like os_net_station_log use a noun instead of an action, creating uneven conventions.
With 103 tools, this is far beyond the 50+ threshold for an extreme mismatch. Even though the server covers many geo data sources, the sheer number makes it unwieldy and hard for an agent to navigate efficiently. The tool count is the primary driver of low coherence.
The server provides broad read-only coverage across administrative boundaries, soil data, census/statistics, OS maps, places, points of interest, routes, and tile services. Minor gaps exist (e.g., no cache refresh or write operations), but for a data-lookup-centric geo server, the coverage is strong and well-suited to its purpose.