chuk-mcp-her
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_STDIO | No | Set to any value to force stdio mode | |
| HER_TIMEOUT | No | HTTP request timeout in seconds | 30.0 |
| HER_CACHE_DIR | No | Filesystem cache directory | ~/.cache/chuk-mcp-her |
| HER_RATE_LIMIT | No | Max requests per second to ArcGIS | 5.0 |
| HER_HG_CACHE_TTL | No | Heritage Gateway cache TTL in seconds (1 hour) | 3600 |
| HER_AIM_CACHE_TTL | No | AIM cache TTL in seconds (7 days) | 604800 |
| HER_NHLE_CACHE_TTL | No | NHLE cache TTL in seconds (24 hours) | 86400 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"subscribe": true,
"listChanged": true
} |
| extensions | {
"io.modelcontextprotocol/ui": {
"mimeTypes": [
"text/html;profile=mcp-app"
]
}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| her_statusA | Check server health and data source availability. Returns server version, registered source statuses, and tool count. Args: output_mode: Response format — "json" (default) or "text" Returns: Server status including source availability Tips for LLMs: Call this first to check which sources are available. |
| her_list_sourcesA | List all registered heritage data sources and their capabilities. Returns metadata about each source including what query types it supports, its coverage area, and current status. Args: output_mode: Response format — "json" (default) or "text" Returns: List of sources with capabilities Tips for LLMs: Use this to discover which sources are available and what each one can do before running queries. |
| her_capabilitiesA | List full server capabilities: sources, tools, and supported queries. Provides complete information about the server including all available tools, registered sources, supported spatial references, and guidance for LLM query planning. Args: output_mode: Response format — "json" (default) or "text" Returns: Complete capability listing with LLM guidance Tips for LLMs: Call this once at the start of a session to understand what tools are available and how to use them effectively. |
| her_search_monumentsA | Search scheduled monuments by location, name, or description. Queries the National Heritage List for England for scheduled monuments. Supports spatial queries (bounding box or point+radius) and text search on monument names. Args: name: Monument name (partial match, case-insensitive) description: Full-text search on description field bbox: Bounding box as "xmin,ymin,xmax,ymax" in BNG (EPSG:27700) lat: WGS84 latitude for radius search lon: WGS84 longitude for radius search radius_m: Search radius in metres (requires lat/lon) max_results: Maximum results (1-2000, default 50) offset: Pagination offset output_mode: Response format — "json" (default) or "text" Returns: Matching scheduled monuments with location and metadata Tips for LLMs: - Use bbox for area searches (e.g. "586000,205000,602500,215000") - Use lat/lon + radius_m for point searches - Use name for text-based searches (e.g. "red hill") - Follow up with her_get_monument for full details - Use her_count_features first for quick totals - NHLE only contains designated assets. For undesignated sites (red hills, findspots, local HER records), ALSO search her_search_heritage_gateway and her_search_aerial in the same area to get comprehensive coverage. |
| her_get_monumentA | Get full details for a specific scheduled monument. Returns the complete record including name, designation, location, listing dates, and URL to the Historic England listing page. Args: nhle_id: NHLE list entry number (e.g. "1002345") output_mode: Response format — "json" (default) or "text" Returns: Full monument record Tips for LLMs: - Use the nhle_id from search results - The URL links to the full Historic England listing page |
| her_search_listed_buildingsA | Search listed buildings by location, name, or grade. Queries the NHLE for listed buildings. Filter by listing grade (I, II*, II) and location. Args: name: Building name (partial match, case-insensitive) grade: Listing grade filter: "I", "II*", or "II" bbox: Bounding box as "xmin,ymin,xmax,ymax" in BNG lat: WGS84 latitude for radius search lon: WGS84 longitude for radius search radius_m: Search radius in metres max_results: Maximum results (1-2000, default 50) offset: Pagination offset output_mode: Response format — "json" (default) or "text" Returns: Matching listed buildings with grade and location Tips for LLMs: - Grade I is the highest (most significant) - Grade II* is between I and II - Grade II is the most common (~92% of all listed buildings) - Use bbox or lat/lon to limit by area |
| her_search_designationsA | Search across all designation types in the NHLE. Generic search covering listed buildings, scheduled monuments, registered parks and gardens, battlefields, protected wrecks, and World Heritage Sites. Args: designation_type: Filter by type — listed_building, scheduled_monument, park_and_garden, battlefield, protected_wreck, world_heritage_site name: Name search (partial match) description: Description search bbox: Bounding box as "xmin,ymin,xmax,ymax" in BNG lat: WGS84 latitude for radius search lon: WGS84 longitude for radius search radius_m: Search radius in metres max_results: Maximum results (1-2000, default 50) offset: Pagination offset output_mode: Response format — "json" (default) or "text" Returns: Matching designations across all types Tips for LLMs: - Leave designation_type empty to search all types - Use her_count_features first for quick totals - Results include designation_type so you can see the mix |
| her_count_featuresA | Fast count of heritage features in an area. Returns counts by designation type without fetching full records. Use this before her_search_designations to estimate result sizes. Args: designation_type: Filter by type (None = count all types) bbox: Bounding box as "xmin,ymin,xmax,ymax" in BNG output_mode: Response format — "json" (default) or "text" Returns: Feature counts by designation type Tips for LLMs: - Much faster than a full search when you just need totals - Use this to decide whether to narrow your search area - Counts are broken down by designation type |
| her_search_aerialA | Search aerial investigation mapping data for archaeological features. Queries Historic England AIM data for features identified from aerial photographs and LiDAR. Includes cropmarks, earthworks, enclosures, ring ditches, saltern mounds, and other features not in the NHLE. Args: monument_type: Monument type keyword (e.g. "SALTERN MOUND", "ENCLOSURE") period: Period filter (e.g. "IRON AGE", "ROMAN", "MEDIEVAL") bbox: Bounding box as "xmin,ymin,xmax,ymax" in BNG (EPSG:27700) lat: WGS84 latitude for radius search lon: WGS84 longitude for radius search radius_m: Search radius in metres (requires lat/lon) max_results: Maximum results (1-2000, default 50) offset: Pagination offset output_mode: Response format — "json" (default) or "text" Returns: Matching aerial mapping features with monument type, period, evidence Tips for LLMs: Use monument_type and period as uppercase keywords matching the AIM vocabulary. Key monument types: "SALTERN MOUND" or "RED HILL" for salt-production mounds, "ENCLOSURE" for prehistoric/Roman enclosures, "RING DITCH" for barrow ditches, "EARTHWORK" for general earthworks, "FIELD SYSTEM" for field boundaries. Periods: "IRON AGE", "ROMAN", "MEDIEVAL". These features are NOT in the NHLE — they complement her_search_monuments. For comprehensive area surveys, run all three sources: her_search_monuments (NHLE designated), her_search_aerial (AIM cropmarks/earthworks), and her_search_heritage_gateway (local HER undesignated sites), then merge and deduplicate the results. Use her_map to display the combined results on a map. |
| her_count_aerialA | Count aerial mapping features in an area (fast, no geometry returned). Returns a quick count of AIM features matching spatial and attribute filters. Use before her_search_aerial to gauge result size. Args: bbox: Bounding box as "xmin,ymin,xmax,ymax" in BNG (EPSG:27700) monument_type: Monument type keyword (e.g. "ENCLOSURE", "MOUND") period: Period filter (e.g. "IRON AGE", "ROMAN") output_mode: Response format — "json" (default) or "text" Returns: Feature count Tips for LLMs: Call this before her_search_aerial to check how many features match before fetching full records. |
| her_get_aerial_featureA | Get full details of a specific aerial mapping feature. Retrieves a single AIM feature by its HE_UID. Accepts either "aim:HE_UID" or just the HE_UID. Args: record_id: AIM feature ID (e.g. "aim:12345" or "12345") output_mode: Response format — "json" (default) or "text" Returns: Full feature details including monument type, period, evidence, location Tips for LLMs: Use record_id from her_search_aerial results. |
| her_search_conservation_areasA | Search conservation areas across England. Queries Historic England's Conservation Areas dataset for areas of special architectural or historic interest designated by Local Planning Authorities. Args: query: Name search (e.g. "Maldon", "Bath") lpa: Local Planning Authority filter (e.g. "Maldon District") bbox: Bounding box as "xmin,ymin,xmax,ymax" in BNG (EPSG:27700) lat: WGS84 latitude for radius search lon: WGS84 longitude for radius search radius_m: Search radius in metres (requires lat/lon) max_results: Maximum results (1-2000, default 50) offset: Pagination offset output_mode: Response format — "json" (default) or "text" Returns: Matching conservation areas with name, LPA, designation date Tips for LLMs: Use lpa to filter by local authority. Combine with bbox or lat/lon for spatial queries. Use her_count_conservation_areas first to gauge result size. |
| her_count_conservation_areasA | Count conservation areas in an area (fast, no geometry returned). Returns a quick count of conservation areas matching filters. Use before her_search_conservation_areas to gauge result size. Args: bbox: Bounding box as "xmin,ymin,xmax,ymax" in BNG (EPSG:27700) query: Name filter (e.g. "Maldon") lpa: Local Planning Authority filter output_mode: Response format — "json" (default) or "text" Returns: Conservation area count Tips for LLMs: Call this before her_search_conservation_areas to check how many areas match before fetching full records. |
| her_get_conservation_areaA | Get full details of a specific conservation area. Retrieves a single conservation area by its UID. Accepts either "ca:UID" or just the UID number. Args: record_id: Conservation area ID (e.g. "ca:1234" or "1234") output_mode: Response format — "json" (default) or "text" Returns: Full conservation area details including name, LPA, location Tips for LLMs: Use record_id from her_search_conservation_areas results. |
| her_search_heritage_at_riskA | Search the Heritage at Risk Register for endangered heritage assets. Queries Historic England's annual register of heritage assets at risk of loss through neglect, decay, or inappropriate development. Args: query: Name search (e.g. "church", "castle") heritage_category: Filter by category — one of: "Scheduled Monument", "Listed Building", "Conservation Area", "Registered Park and Garden", "Registered Battlefield", "Protected Wreck Site" bbox: Bounding box as "xmin,ymin,xmax,ymax" in BNG (EPSG:27700) lat: WGS84 latitude for radius search lon: WGS84 longitude for radius search radius_m: Search radius in metres (requires lat/lon) max_results: Maximum results (1-2000, default 50) offset: Pagination offset output_mode: Response format — "json" (default) or "text" Returns: Matching heritage at risk entries with category, risk methodology Tips for LLMs: Use heritage_category to filter by asset type. Combine with bbox or lat/lon for spatial queries. These entries are designated assets that are at risk — they will also appear in NHLE searches. |
| her_count_heritage_at_riskA | Count heritage at risk entries in an area (fast, no geometry returned). Returns a quick count of at-risk heritage assets matching filters. Use before her_search_heritage_at_risk to gauge result size. Args: bbox: Bounding box as "xmin,ymin,xmax,ymax" in BNG (EPSG:27700) heritage_category: Filter by category (e.g. "Listed Building") output_mode: Response format — "json" (default) or "text" Returns: Heritage at risk count Tips for LLMs: Call this before her_search_heritage_at_risk to check how many entries match before fetching full records. |
| her_get_heritage_at_riskA | Get full details of a specific heritage at risk entry. Retrieves a single at-risk entry by its List Entry number. Accepts either "har:LIST_ENTRY" or just the number. Args: record_id: Heritage at Risk ID (e.g. "har:1021506" or "1021506") output_mode: Response format — "json" (default) or "text" Returns: Full heritage at risk details including category, risk methodology Tips for LLMs: Use record_id from her_search_heritage_at_risk results. |
| her_search_heritage_gatewayA | Search local Historic Environment Records via Heritage Gateway. Searches across 60+ local HERs for undesignated sites not in the NHLE — red hills, findspots, fieldwork records, HER monument entries. Best-effort access via web scraping; returns empty results gracefully when the Gateway is unavailable. Args: what: Monument type or keyword (e.g. "red hill", "saltern") where: Place name or area (e.g. "Goldhanger", "Blackwater") when: Period (e.g. "Iron Age", "Roman", "Medieval") max_results: Maximum results (default 50) output_mode: Response format — "json" (default) or "text" Returns: Matching Heritage Gateway records from local HERs Tips for LLMs: This is the best source for undesignated sites and local HER data. Results may be empty if the Gateway is temporarily unavailable. IMPORTANT: Gateway results cover only local HER records. For comprehensive coverage, ALSO run her_search_monuments (NHLE) and her_search_aerial (AIM) in the same area and merge the results. For spatial filtering, use her_enrich_gateway to resolve BNG coordinates, then apply a bbox to filter precisely. |
| her_cross_referenceA | Cross-reference candidate locations against known heritage assets. Takes a list of candidate locations (e.g. from LiDAR survey) and classifies each as match, near, or novel based on proximity to known NHLE records, AIM aerial mapping features, and optionally Heritage Gateway records. Args: candidates: JSON array of {"easting": x, "northing": y} dicts match_radius_m: Distance threshold for "match" (default 50m) near_radius_m: Distance threshold for "near" (default 200m) designation_types: Comma-separated NHLE designation types to match against (e.g. "scheduled_monument,listed_building") include_aim: Include AIM aerial mapping features in known assets (adds monument_type, period, form from aerial archaeology) gateway_sites: JSON array of Gateway records with easting/northing (output of her_enrich_gateway) to merge into known sites output_mode: Response format — "json" (default) or "text" Returns: Classification of each candidate as match, near, or novel Tips for LLMs: - Input candidates as BNG easting/northing coordinates - "match" means the candidate is within match_radius_m of a known asset - "near" means within near_radius_m but not a match - "novel" means no known asset within near_radius_m - Set include_aim=true for LiDAR workflows to include aerial features - Use her_enrich_gateway first to resolve Gateway record coordinates, then pass the output as gateway_sites for richer cross-referencing - Use her_export_for_lidar to get known sites in the same area |
| her_nearbyA | Find NHLE heritage assets near a single point. Searches the National Heritage List for England (NHLE) for designated heritage assets within a radius of the given point. Returns assets sorted by distance. NOTE: This tool searches NHLE only (England). For Scottish sites use her_search_scotland with lat/lon/radius_m. For aerial features use her_search_aerial with lat/lon/radius_m. Args: lat: WGS84 latitude (use with lon) lon: WGS84 longitude (use with lat) easting: BNG easting (use with northing, alternative to lat/lon) northing: BNG northing (use with easting) radius_m: Search radius in metres (default 500) max_results: Maximum results (default 20) output_mode: Response format — "json" (default) or "text" Returns: Nearby NHLE heritage assets with distance and bearing Tips for LLMs: - Use lat/lon OR easting/northing (not both) - Results are sorted by distance from the centre point - Each result includes distance_m and bearing_deg - For comprehensive nearby search, ALSO call her_search_aerial and her_search_scotland (if near/in Scotland) with the same lat/lon/radius_m parameters |
| her_enrich_gatewayA | Fetch Heritage Gateway records with resolved coordinates. Searches the Heritage Gateway for local HER records and resolves their BNG coordinates by parsing grid references and/or fetching detail pages. Returns only records with valid easting/northing, suitable for cross-referencing with her_cross_reference. Args: what: Monument type or keyword (e.g. "red hill", "saltern") where: Place name (e.g. "Blackwater", "Essex") when: Period (e.g. "Roman", "Iron Age") max_results: Maximum records to return (default 100) fetch_details: Fetch detail pages for coordinates (default true) output_mode: Response format — "json" (default) or "text" Returns: Gateway records with resolved BNG easting/northing coordinates Tips for LLMs: - This tool is SLOW (may take 1-2 minutes for 100 records) - Use it before her_cross_reference to enrich the known-sites pool - Pass the output records as gateway_sites to her_cross_reference - Set fetch_details=false for faster results (grid refs only) - Results include only records with successfully resolved coordinates - While waiting for this, also run her_search_monuments and/or her_search_aerial in the same area for comprehensive coverage — Gateway records are local HER data not in NHLE or AIM |
| her_search_scotlandA | Search Scottish NRHE records (320,000+ sites from Canmore). Queries the National Record of the Historic Environment for terrestrial archaeological sites, monuments, and buildings in Scotland. Covers 320,000+ records including castles, brochs, cairns, standing stones, churches, and industrial heritage. Args: name: Site name keyword (partial, case-insensitive) site_type: Site type keyword (e.g. "CASTLE", "BROCH", "CAIRN") broad_class: Broad classification (e.g. "DOMESTIC", "RELIGIOUS") council: Council area (e.g. "Highland", "Edinburgh") bbox: Bounding box as "xmin,ymin,xmax,ymax" in BNG (EPSG:27700) lat: WGS84 latitude for radius search lon: WGS84 longitude for radius search radius_m: Search radius in metres (requires lat/lon) max_results: Maximum results (1-1000, default 50) output_mode: Response format — "json" (default) or "text" Returns: Matching NRHE records with site type, classification, location Tips for LLMs: - This covers ALL known Scottish heritage sites, not just designated ones - For designated assets only, use her_search_scotland_designations - For cross-border queries near England/Scotland border, also run her_search_monuments (NHLE) and her_search_aerial (AIM) for English sites - site_type keywords: CASTLE, BROCH, CAIRN, STONE CIRCLE, CHURCH, FORT, CRANNOG, DUN, STANDING STONE, SOUTERRAIN - MapServer max is 1,000 records per request |
| her_get_scotland_recordA | Get full details of a Scottish NRHE record by Canmore ID. Retrieves a single record from the National Record of the Historic Environment. Accepts either "scotland:CANMOREID" or just the ID. Args: record_id: Canmore ID (e.g. "scotland:12345" or "12345") output_mode: Response format — "json" (default) or "text" Returns: Full record details including site type, form, location, grid reference Tips for LLMs: Use record_id from her_search_scotland results. |
| her_search_scotland_designationsA | Search Scottish designated heritage assets. Queries HES Designations for listed buildings, scheduled monuments, gardens and designed landscapes, battlefields, world heritage sites, conservation areas, and historic marine protected areas in Scotland. Args: designation_type: Filter by type — one of: listed_building, scheduled_monument, garden_designed_landscape, battlefield, world_heritage_site, conservation_area, historic_marine_protected_area name: Name keyword (partial, case-insensitive) bbox: Bounding box as "xmin,ymin,xmax,ymax" in BNG (EPSG:27700) lat: WGS84 latitude for radius search lon: WGS84 longitude for radius search radius_m: Search radius in metres (requires lat/lon) max_results: Maximum results (default 50) output_mode: Response format — "json" (default) or "text" Returns: Matching designated heritage assets with type, category, location Tips for LLMs: - Use this for formally designated Scottish assets - For ALL known Scottish sites (not just designated), use her_search_scotland - Scottish designation types differ slightly from English NHLE types: Scotland has garden_designed_landscape and historic_marine_protected_area - For cross-border queries, also search English sources (her_search_designations for NHLE) |
| her_mapB | Visualise heritage assets from multiple sources as a multi-layer interactive map. Returns a structured map view with colour-coded layers by designation type and source. |
| her_crossref_mapA | Visualise cross-reference results as a colour-coded map: green (match), amber (near), red (novel), grey (known assets). Runs the same analysis as her_cross_reference. |
| her_export_geojsonA | Export heritage assets as GeoJSON FeatureCollection. Exports query results in GeoJSON format suitable for use in QGIS, Leaflet, or other GIS tools. Args: bbox: Bounding box as "xmin,ymin,xmax,ymax" in BNG designation_type: Filter by designation type name: Name filter (partial match) max_results: Maximum features to export (default 500, max 2000) output_mode: Response format — "json" (default) or "text" Returns: GeoJSON FeatureCollection with matching heritage assets Tips for LLMs: - Use bbox to limit the export area - Output is a standard GeoJSON FeatureCollection - Coordinates are in WGS84 (EPSG:4326) |
| her_export_for_lidarA | Export heritage assets for LiDAR cross-referencing. Produces a list of known monument centroids with metadata in the format expected by chuk-mcp-lidar spatial matching. Args: bbox: Bounding box as "xmin,ymin,xmax,ymax" in BNG (required) include_aim: Include aerial mapping features (when available) include_nhle: Include NHLE designations (default true) gateway_sites: JSON array of Gateway records with easting/northing (output of her_enrich_gateway) to include as known sites output_mode: Response format — "json" (default) or "text" Returns: Known sites in LiDAR cross-reference format Tips for LLMs: - bbox is required for LiDAR export - Output includes easting/northing in BNG for spatial matching - Each site has id, source, name, type, monument_type, period - Use her_enrich_gateway first, then pass output as gateway_sites |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| map | Map view HTML |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/IBM/chuk-mcp-her'
If you have feedback or need assistance with the MCP directory API, please join our Discord server