chuk-mcp-her
OfficialIntegration with ArcGIS REST APIs to query Historic Environment Records, including listed buildings, scheduled monuments, conservation areas, heritage at risk, and Scottish heritage data.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@chuk-mcp-hersearch for listed buildings near Manchester"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
chuk-mcp-her
Historic Environment Records MCP Server -- A Model Context Protocol (MCP) server for querying Historic Environment Records across England and Scotland. Searches listed buildings, scheduled monuments, registered parks, battlefields, protected wrecks, and World Heritage Sites via live ArcGIS REST APIs from Historic England and Historic Environment Scotland.
This is a demonstration project provided as-is for learning and testing purposes.
Features
This MCP server provides structured access to Historic Environment Records through 28 tools across 10 categories, querying 6 data sources via live ArcGIS REST APIs and Heritage Gateway web scraping.
Key capabilities:
Source registry pattern -- pluggable adapters for NHLE, AIM, Conservation Areas, Heritage at Risk, Heritage Gateway, and Scotland (HES) with unified query interface
England + Scotland coverage -- English heritage via Historic England, Scottish heritage via Historic Environment Scotland (320,000+ NRHE records + designated assets)
Spatial-first queries -- bounding box, point+radius, and area searches via ArcGIS Feature/Map Services
BNG/WGS84 coordinate support -- automatic conversion between British National Grid (EPSG:27700) and WGS84 (EPSG:4326)
Interactive map views --
her_mapandher_crossref_mapreturn structuredMapContentfor rendering in chuk-mcp-ui-compatible clientsAll tools return fully-typed Pydantic v2 models for type safety, validation, and excellent IDE support
Most tools support
output_mode="text"for human-readable output alongside the default JSON
1. Server Discovery (her_status, her_list_sources, her_capabilities)
Check server health, list registered data sources, and get full capabilities:
Source availability and status
Supported query types per source
LLM guidance for query planning
2. NHLE Queries (her_search_monuments, her_get_monument, her_search_listed_buildings, her_search_designations, her_count_features)
Search the National Heritage List for England:
Scheduled monuments by location, name, or description
Listed buildings with grade filtering (I, II*, II)
Generic designation search across all 6 designation types
Fast feature counts without fetching full records
Pagination with offset-based paging
3. Aerial Mapping (her_search_aerial, her_count_aerial, her_get_aerial_feature)
Search aerial investigation mapping data:
Archaeological features from aerial photographs and LiDAR
Cropmarks, earthworks, and features not in the NHLE
Monument type and period filtering
Fast feature counts without fetching full records
Full details for individual aerial mapping features
4. Conservation Areas (her_search_conservation_areas, her_count_conservation_areas, her_get_conservation_area)
Search Historic England's 8,000+ conservation areas:
Search by name, Local Planning Authority, or location
Bounding box and point+radius spatial queries
Fast counts without fetching full records
Full details including designation date and area
5. Heritage at Risk (her_search_heritage_at_risk, her_count_heritage_at_risk, her_get_heritage_at_risk)
Search the Heritage at Risk Register:
Annual register of heritage assets at risk of loss
Filter by heritage category (Listed Building, Scheduled Monument, etc.)
Spatial search by bounding box or point+radius
Risk methodology details for each entry
6. Heritage Gateway (her_search_heritage_gateway)
Search local Historic Environment Records via Heritage Gateway:
Best-effort access to 60+ local HERs via web scraping
Undesignated sites, findspots, and HER monument entries
Returns empty results gracefully when Gateway unavailable
7. Scotland (her_search_scotland, her_get_scotland_record, her_search_scotland_designations)
Search Historic Environment Scotland records:
320,000+ National Record of the Historic Environment (NRHE) records via Canmore Points
Designated assets: listed buildings, scheduled monuments, gardens and designed landscapes, battlefields, world heritage sites, conservation areas, historic marine protected areas
Site type, broad class, and council area filtering
Full details for individual records by Canmore ID
8. Cross-Referencing (her_cross_reference, her_enrich_gateway, her_nearby)
Spatial matching, enrichment, and proximity search:
Cross-reference candidate locations against known heritage assets
Classify candidates as match, near, or novel
Grid-based spatial indexing for efficient batch processing (O(n+m) amortised)
Optional AIM aerial feature integration (
include_aimparameter)Designation type filtering (single type or comma-separated)
Enriched match output with 11 fields per asset (source, grade, monument_type, period, form, evidence)
Enrich Gateway records with resolved BNG coordinates for cross-referencing
Find nearby heritage assets with distance and bearing
Accepts both WGS84 and BNG coordinates
9. Export (her_export_geojson, her_export_for_lidar)
Export and format results:
GeoJSON FeatureCollection for QGIS, Leaflet, or other GIS tools
LiDAR cross-reference format with enriched metadata per source:
NHLE sites with grade
AIM aerial features with monument_type, period, form, evidence
Gateway sites with monument_type and period
Optional AIM integration (
include_aim) and Gateway sites (gateway_sites) for LiDAR export
10. Map Visualisation (her_map, her_crossref_map)
Interactive heritage maps rendered as structured MapContent for chuk-mcp-ui clients:
her_map-- queries up to five sources in parallel (NHLE, AIM, Conservation Areas, Heritage at Risk, Scotland) and renders each as a distinctly colour-coded layer; NHLE results are split by designation type for visual separationher_crossref_map-- runs the same analysis asher_cross_referencethen renders four colour-coded layers: green (match), amber (near), red (novel/potential new discovery), grey (known assets)Marker clustering, popup templates, and layer toggle controls
Accepts WGS84 bbox or lat/lon/radius_m; BNG candidates for crossref map
Related MCP server: Edinburgh Festivals MCP Server
Tool Reference
All tools accept an optional output_mode parameter ("json" default, or "text" for human-readable output).
Tool | Category | Description | Status |
| Discovery | Server health and source availability | Active |
| Discovery | List registered data sources with capabilities | Active |
| Discovery | Full server capability listing for LLM planning | Active |
| NHLE | Search scheduled monuments by location or name | Active |
| NHLE | Get full details for a specific monument | Active |
| NHLE | Search listed buildings with grade filter | Active |
| NHLE | Search across all designation types | Active |
| NHLE | Fast count of features in an area | Active |
| Aerial | Search aerial investigation mapping data | Active |
| Aerial | Count aerial mapping features in an area | Active |
| Aerial | Get full details of an aerial mapping feature | Active |
| Conservation | Search conservation areas by name, LPA, or location | Active |
| Conservation | Count conservation areas in an area | Active |
| Conservation | Get full details of a conservation area | Active |
| At Risk | Search heritage at risk register entries | Active |
| At Risk | Count heritage at risk entries in an area | Active |
| At Risk | Get full details of a heritage at risk entry | Active |
| Gateway | Search local HER data via Heritage Gateway | Active |
| Scotland | Search Scottish NRHE records (320K+ sites) | Active |
| Scotland | Get full details of a Scottish NRHE record | Active |
| Scotland | Search Scottish designated heritage assets | Active |
| Cross-Ref | Cross-reference candidates against known assets | Active |
| Cross-Ref | Resolve Gateway record coordinates for cross-referencing | Active |
| Cross-Ref | Find NHLE heritage assets near a point (England only) | Active |
| Export | Export results as GeoJSON FeatureCollection | Active |
| Export | Export known sites for LiDAR cross-referencing | Active |
| Map | Multi-source heritage map with colour-coded layers | Active |
| Map | Colour-coded cross-reference map (match/near/novel/known) | Active |
Data Sources
Source | Name | Organisation | Coverage | API Type | Status |
| National Heritage List for England | Historic England | England | ArcGIS Feature Service | Active |
| Aerial Investigation and Mapping | Historic England | England | ArcGIS Feature Service | Active |
| Conservation Areas | Historic England / LPAs | England | ArcGIS Feature Service | Active |
| Heritage at Risk Register | Historic England | England | ArcGIS Feature Service | Active |
| Heritage Gateway (Local HERs) | Historic England / Local HERs | England | Web scraper | Active |
| Historic Environment Scotland | Historic Environment Scotland | Scotland | ArcGIS Map Service | Active |
NHLE Designation Types
Type | Description |
| Listed buildings (Grades I, II*, II) |
| Scheduled monuments |
| Registered parks and gardens |
| Registered battlefields |
| Protected wreck sites |
| World Heritage Sites |
Installation
Using uvx (Recommended -- No Installation Required!)
uvx chuk-mcp-herUsing uv (Recommended for Development)
# Install from PyPI
uv pip install chuk-mcp-her
# Or clone and install from source
git clone <repository-url>
cd chuk-mcp-her
uv sync --devUsing pip (Traditional)
pip install chuk-mcp-herOptional: Sub-metre Coordinate Accuracy
# Install pyproj for sub-metre BNG<->WGS84 conversion
# Without pyproj, Helmert approximation (~5m accuracy) is used
pip install chuk-mcp-her[pyproj]Usage
With Claude Desktop
Option 1: Run Locally with uvx
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"her": {
"command": "uvx",
"args": ["chuk-mcp-her"]
}
}
}Option 2: Run Locally with pip
{
"mcpServers": {
"her": {
"command": "chuk-mcp-her"
}
}
}With Python SDK
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
server_params = StdioServerParameters(
command="uvx",
args=["chuk-mcp-her"],
)
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool(
"her_search_monuments",
{"name": "Stonehenge", "max_results": 5},
)Standalone
# STDIO mode (default, for MCP clients)
chuk-mcp-her stdio
# HTTP mode (for web access)
chuk-mcp-her http
chuk-mcp-her http --port 8010
# Auto-detect mode
chuk-mcp-herSTDIO mode is for MCP clients like Claude Desktop and mcp-cli. HTTP mode runs a web server on http://localhost:8010 for HTTP-based MCP clients.
CLI (mcp-cli)
mcp-cli chat --server herExample Usage
Once configured, you can ask questions like:
"List the available heritage data sources"
"Search for scheduled monuments near Stonehenge"
"Find Grade I listed buildings in central London"
"How many heritage assets are in this bounding box?"
"Get the full record for monument 1002345"
"What heritage assets are within 500m of the Tower of London?"
"Export all scheduled monuments in the Maldon area as GeoJSON"
"Cross-reference these LiDAR survey points against known heritage assets"
"Show all heritage assets within 2km of Stonehenge on a map"
"Map my LiDAR candidates against known scheduled monuments and show which are potential new discoveries"
"Search for protected wrecks along the English coast"
"Find registered parks and gardens near Bath"
"Search for all red hills along the north bank of the Blackwater estuary between Heybridge Basin and Tollesbury"
"Find castles in the Scottish Highlands"
"Search for brochs near Inverness"
"What scheduled monuments are in Edinburgh?"
Multi-source queries: The tool descriptions guide LLM agents to combine multiple sources automatically. A query like "find all red hills near the Blackwater" will prompt the agent to search NHLE (designated monuments), AIM (aerial mapping features), and Heritage Gateway (local HER records), then merge the results for comprehensive coverage.
Model-agnostic: The MCP server works with any LLM provider that supports function calling -- Claude, GPT, Gemini, or any other MCP-compatible client. The same tools work identically through Claude Desktop, mcp-cli, or the Python SDK.
Running the Examples
cd examples
python capabilities_demo.py # server capabilities, sources, tools
python quick_start.py # quick intro: status, count, search, nearby
python nhle_search_demo.py # scheduled monument and listed building search
python aerial_search_demo.py # aerial investigation mapping features
python conservation_area_demo.py # conservation area search
python heritage_at_risk_demo.py # heritage at risk register
python nearby_demo.py # find heritage assets near a point
python export_demo.py # GeoJSON export
python gateway_search_demo.py # Heritage Gateway local HER search
python cross_reference_demo.py # cross-reference candidates (with AIM)
python enrichment_pipeline_demo.py # Gateway enrichment + cross-reference
python blackwater_estuary_scenario.py # multi-source scenario
python scotland_search_demo.py # Scottish NRHE search (Canmore)
python scotland_designations_demo.py # Scottish designated heritage assetsScript | Network | Tools Demonstrated |
| No |
|
| Yes |
|
| Yes |
|
| Yes |
|
| Yes |
|
| Yes |
|
| Yes |
|
| Yes |
|
| Yes |
|
| Yes |
|
| Yes |
|
| Yes | Multi-source scenario using NHLE, AIM, Conservation Areas, Heritage at Risk |
| Yes |
|
| Yes |
|
Architecture
MCP Client (Claude, mcp-cli, etc.)
|
| MCP protocol (stdio / HTTP)
v
+-------------------------------+
| Tool Functions |
| discovery/ nhle/ aerial/ |
| conservation_area/ scotland/ |
| heritage_at_risk/ gateway/ |
| crossref/ export/ map/ |
+-------------------------------+
|
| validate params, format response
v
+-------------------------------+
| SourceRegistry |
| (unified query interface) |
+-------------------------------+
| | | | | |
NHLEAdapter | CA HAR | ScotlandAdapter
AIMAdapter | Adapter Adapter| (2 clients)
| GatewayAdapter
v v v v v
+------------------+ +------------------+ +------------------+
| ArcGIS Client | | Gateway Client | | ArcGIS Client |
| (HE FeatureSvr) | | (httpx, bs4) | | (HES MapServer) |
+------------------+ +------------------+ +------------------+
| | |
v v v
+------------------+ +------------------+ +------------------+
| HE ArcGIS Svc | | Heritage Gateway | | inspire.hes.scot |
| NHLE,AIM,CA,HAR | | (60+ local HERs) | | Canmore, HES Des |
+------------------+ +------------------+ +------------------+Built on top of chuk-mcp-server, this server uses:
Async-First: Native async/await with httpx for all HTTP requests
Type-Safe: Pydantic v2 models with
extra="forbid"for all responsesSource Registry Pattern: Pluggable adapters registered at startup, queried through unified interface
BNG/WGS84 Conversion: Helmert transformation with optional pyproj for sub-metre accuracy
Filesystem Cache: TTL-based per-source caching to reduce API load
Rate Limiting: Per-client rate limiting with exponential backoff on 429/5xx
chuk-view-schemas: Map tools return
MapContentstructured views viachuk_view_schemas.chuk_mcp.map_tooldecoratorDual Output: Most tools support
output_mode="text"for human-readable responses; map tools return structuredMapContentError Messages: All error strings from
ErrorMessagesconstants -- no hardcoded strings
See ARCHITECTURE.md for design principles and data flow diagrams. See SPEC.md for the full tool specification with parameter tables. See ROADMAP.md for the development roadmap and planned features.
Development
Setup
# Clone the repository
git clone <repository-url>
cd chuk-mcp-her
# Install with uv (recommended)
uv sync --dev
# Or with pip
pip install -e ".[dev]"Running Tests
# Run tests
pytest tests/
# Run tests with coverage
pytest tests/ --cov=src/chuk_mcp_her --cov-report=term-missing
# Run a specific test file
pytest tests/test_coordinates.py -vCode Quality
# Lint and format with ruff
ruff check src/ tests/
ruff format src/ tests/
# Type checking
mypy src/
# Security scan
bandit -r src/ -x tests/Building
# Build package
python -m build
# Or with uv
uv buildConfiguration
Environment Variables
Variable | Default | Description |
| - | Set to any value to force stdio mode |
|
| Filesystem cache directory |
|
| NHLE cache TTL in seconds (24 hours) |
|
| AIM cache TTL in seconds (7 days) |
|
| Heritage Gateway cache TTL in seconds (1 hour) |
|
| Max requests per second to ArcGIS |
|
| HTTP request timeout in seconds |
License
Apache License 2.0 -- See LICENSE for details.
References
Historic England -- National Heritage List for England
NHLE ArcGIS Feature Service -- Live data endpoint
ArcGIS REST API -- Query specification
Historic Environment Scotland -- National Record of the Historic Environment
HES ArcGIS MapServer -- Scottish heritage data endpoints
Heritage Gateway -- Federated HER search
Model Context Protocol -- MCP specification
Anthropic -- Claude and MCP support
British National Grid -- EPSG:27700 coordinate reference system
Available Tools
28 toolsher_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.
| Name | Required | Description | Default |
|---|---|---|---|
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes return content (capabilities, LLM guidance) and the output_mode parameter. No annotations provided, but description fully discloses behavior as a read-only listing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, followed by details and usage tips. Somewhat verbose with docstring format but every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a discovery tool: lists what it returns (sources, tools, queries, spatial references, LLM guidance) and provides usage advice. No output schema needed as return is well-described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'output_mode' is explained as 'Response format — "json" (default) or "text"', adding meaning beyond the schema which only has a default. With 0% schema coverage, description compensates adequately but is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists full server capabilities including sources, tools, and supported queries. Distinguishes from sibling tools like her_search_monuments or her_export_geojson by being a meta tool for discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises 'Call this once at the start of a session' to understand available tools and how to use them effectively, providing clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | ||
| period | No | ||
| output_mode | No | json | |
| monument_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool is fast, returns a count, and no geometry. Lacks details on error handling or authentication, but for a simple count tool, the transparency is good.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (Args, Returns, Tips). Every sentence is informative and concise without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, no output schema, and no annotations, the description thoroughly explains the tool's purpose, parameter details, and usage scenario. The inclusion of a usage tip enhances completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by specifying format for bbox (BNG coordinates), example values for monument_type and period, and options for output_mode. This adds crucial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it counts aerial mapping features in an area, emphasizes speed and no geometry return, and distinguishes itself from her_search_aerial by specifying the result is a count.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using this tool before her_search_aerial to gauge result size, providing clear when-to-use guidance. Also includes a tip for LLMs to call it before fetching full records.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lpa | No | ||
| bbox | No | ||
| query | No | ||
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool is 'fast, no geometry returned' and specifies output modes ('json' or 'text'). This is good but could further clarify if the count is an estimate or exact, and any error conditions. Still, it provides useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with a title line, args section, returns, and tips. Every sentence adds value, and the important information is front-loaded. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and lack of output schema, the description covers the key aspects: purpose, parameters, return value, and usage tips. It could note whether the count is exact or an estimate, but 'quick count' implies possible approximation. Overall, it is nearly complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage, so the description must compensate. It does so thoroughly: explains bbox format as 'xmin,ymin,xmax,ymax' in BNG (EPSG:27700), defines query as a name filter, lpa as Local Planning Authority filter, and output_mode as response format. This adds essential meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Count conservation areas in an area' with added qualifiers 'fast, no geometry returned', which distinguishes it from sibling tools like her_search_conservation_areas that return full records. The verb and resource are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: 'Use before her_search_conservation_areas to gauge result size' and 'Tips for LLMs: Call this before her_search_conservation_areas to check how many areas match before fetching full records.' This tells the agent when to use this tool and when to use an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | ||
| output_mode | No | json | |
| designation_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses it is fast, returns counts by designation type, and explains parameters. However, it does not mention potential limits on area size or count, nor pagination behavior. Still, it provides sufficient behavioral context for typical use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and well-structured: a title line, brief paragraph, then Args and Returns sections, plus tips. Every sentence adds value with no redundancy. Front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
All 3 parameters are described, return value is explained (counts by designation type), and performance tip is given. No output schema, but description covers what is needed. Given simplicity, it is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description compensates by explaining each parameter: designation_type filter semantics, bbox format in BNG, output_mode options. Adds meaning beyond type definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool counts heritage features in an area and returns counts by designation type. Distinguishes from search tools by emphasizing it doesn't fetch full records. The verb 'count' and resource 'heritage features' are specific, and it differentiates from sibling her_search_designations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use this before her_search_designations to estimate result sizes, providing clear when-to-use guidance. Also suggests using it to decide whether to narrow search area. Sibling tool is named, giving actionable context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | ||
| output_mode | No | json | |
| heritage_category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it returns a quick count with no geometry, implying a read-only, fast operation. No annotations provided, so description carries burden, but lacks details on limitations or edge cases. Still adequate for the tool's simplicity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with a one-line summary, bullet points for args/returns, and a tips section. Front-loaded, no unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple count tool: explains inputs, output, and provides usage context. No output schema needed as return type is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds significant meaning to all three parameters: bbox format and CRS specified, heritage_category example given, output_mode options listed. Compensates fully for 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it counts heritage at risk entries in an area, emphasizing speed and no geometry. Distinguishes from siblings like count tools for other entities and search functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises calling this before her_search_heritage_at_risk to gauge result size, providing clear when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| candidates | No | [] | |
| include_aim | No | ||
| output_mode | No | json | |
| gateway_sites | No | [] | |
| near_radius_m | No | ||
| match_radius_m | No | ||
| designation_types | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the classification logic and data sources (NHLE, AIM, Gateway) but does not disclose any side effects, authorization requirements, or error handling. With no annotations, the burden is on the description, and it partially meets it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with separate sections for description, Args, Returns, and Tips. However, it is somewhat verbose for a tool description; some tips could be integrated into parameter descriptions. Still front-loaded and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, no output schema), the description covers the input parameters fully but the return value description is minimal ('Classification of each candidate as match, near, or novel'). A more detailed output format or example would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 7 parameters are explained in the Args section with types, defaults, and semantics. Schema description coverage is 0%, so the description fully compensates, adding significant value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool cross-references candidate locations against heritage assets and classifies them as match, near, or novel. However, it does not explicitly differentiate from the sibling her_crossref_map, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit tips for LLMs: use BNG coordinates, set include_aim for LiDAR, and use her_enrich_gateway first for Gateway records. This gives clear usage context, though lacks explicit when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
her_crossref_mapARead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| basemap | No | osm | |
| candidates | No | [] | |
| include_aim | No | ||
| near_radius_m | No | ||
| match_radius_m | No | ||
| designation_types | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds visualization specifics (color-coded map) beyond the readOnlyHint annotation. It does not contradict annotations and provides context on output format, though lacks details on side effects or auth needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and contains no extraneous information. Every sentence is relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 unannotated parameters and no output schema, the description is incomplete. It omits parameter definitions, expected output format, and usage examples, leaving the agent with insufficient guidance for effective invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 6 parameters with 0% schema coverage, the description provides no explanation of what parameters like basemap, candidates, or radius values do. The description fails to add any meaning beyond the input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it visualizes cross-reference results as a color-coded map with specific colors for match types. It also mentions it runs the same analysis as her_cross_reference, distinguishing it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for visual mapping of cross-reference results, contrasting with her_cross_reference which likely provides data. However, it does not explicitly state when not to use it or provide alternatives beyond the sibling mention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| what | No | ||
| when | No | ||
| where | No | ||
| max_results | No | ||
| output_mode | No | json | |
| fetch_details | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses slowness (1-2 minutes), result filtering (only records with valid coordinates), and default behaviors. Lacks explicit safety statement but overall reveals key behavioral traits beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections, but some redundancy in tips (e.g., 'use before cross-reference' repeated). Still efficient and front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains return value shape (records with BNG coordinates) and relationship to her_cross_reference. Lacks output schema but provides enough context for effective use. Could detail record format, but sufficient given complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The 'Args' section explains all six parameters, including defaults and purpose, fully compensating for the 0% schema description coverage. Tips add practical guidance for fetch_details and output_mode.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch Heritage Gateway records with resolved coordinates', specifying verb (Fetch) and resource (Heritage Gateway records). It distinguishes from sibling her_search_heritage_gateway by emphasizing coordinate resolution and cross-referencing use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use before her_cross_reference and suggests running her_search_monuments and her_search_aerial in parallel for comprehensive coverage. Provides clear when-to-use and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | ||
| include_aim | No | ||
| output_mode | No | json | |
| include_nhle | No | ||
| gateway_sites | No | [] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses output structure (easting/northing, fields) and bbox requirement. No contradictions. Adequate transparency for a read-like export tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with intro, Args, Returns, and Tips sections. Slightly verbose with tips but each sentence adds value. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 params and no output schema, description covers purpose, parameters, output format, and a prerequisite workflow. Lacks error handling but sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description fully explains all 5 parameters with formats, defaults, and usage context (e.g., bbox format, gateway_sites as output of her_enrich_gateway). Adds significant meaning beyond raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Export heritage assets for LiDAR cross-referencing' with specific resource and format (chuk-mcp-lidar). Distinguishes from siblings like her_export_geojson by focusing on LiDAR spatial matching format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides tips for LLMs (bbox required, use her_enrich_gateway first) which imply a workflow, but no explicit when-to-use vs alternatives like her_export_geojson or her_cross_reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| bbox | No | ||
| name | No | ||
| max_results | No | ||
| output_mode | No | json | |
| designation_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses output format (GeoJSON FeatureCollection), coordinate system (WGS84), default and maximum values for max_results, and output_mode options. However, with no annotations, the description does not indicate whether the tool is read-only or destructive, nor does it mention potential errors or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with a clear one-line purpose, followed by a short explanation, then a bulleted Arg list, Returns, and Tips. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all parameters, output format, and practical tips. Given the lack of output schema and the tool's moderate complexity, the description is nearly complete. It misses error handling or permission context, but overall provides sufficient information for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage, but the description's Args section fully compensates by explaining each parameter's purpose, format (e.g., bbox in BNG), default values, and options (e.g., output_mode). This provides complete semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb (export), resource (heritage assets), and output format (GeoJSON FeatureCollection). The description distinguishes this tool from the sibling her_export_for_lidar by specifying suitability for GIS tools like QGIS and Leaflet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for exporting query results as GeoJSON, but does not explicitly state when to use this tool versus alternatives like her_export_for_lidar. The tips section provides some usage guidance (e.g., using bbox) but lacks exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| record_id | No | ||
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses behavioral traits such as input formats (accepting 'aim:HE_UID' or just HE_UID), output modes ('json' or 'text'), and return contents (monument type, period, etc.). It could be more explicit about idempotency or side effects, but the 'get' nature is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: clear purpose, args, returns, and tips. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with two parameters and no output schema, the description covers input formats, output modes, and return fields adequately. It could mention error handling for invalid IDs, but this is not essential for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining record_id format with examples and output_mode options. This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves full details of a specific aerial mapping feature by its HE_UID. It explicitly distinguishes from sibling tools like her_search_aerial by focusing on a single record retrieval rather than search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Tips for LLMs' section explicitly directs agents to use record_id from her_search_aerial results, providing clear usage context. However, it does not mention when not to use the tool or alternative tools for similar purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| record_id | No | ||
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description covers input formats, output modes, and return content (name, LPA, location) but omits details like read-only nature, error handling, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections, but could be slightly tighter. Every sentence adds value, including the LLM tips. Appropriate length for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately describes return values ('Full details including name, LPA, location') despite no output schema. Context from siblings confirms it's a specific getter. Small gaps in behavior details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds significant value beyond schema (0% coverage). Explains record_id accepts 'ca:UID' or plain UID, and output_mode defaults, with examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get full details of a specific conservation area' using a specific verb and resource. Distinguishes itself from sibling search tools by focusing on retrieval by UID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use (retrieve by UID) and includes LLM tip to use record_id from search results. Does not explicitly state when not to use or compare to other get tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| record_id | No | ||
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description discloses the return fields (category, risk methodology) and the nature of the operation (retrieval). It is transparent about inputs and outputs, though it doesn't mention error handling or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized: a clear purpose, followed by a brief explanation, parameter list, return statement, and a targeted tip. Each sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieve tool with 2 parameters and no output schema, the description covers the necessary details. It lists example inputs and mentions return fields, which is adequate for an agent to understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining record_id as 'Heritage at Risk ID (e.g. har:1021506 or 1021506)' and output_mode as 'Response format — json (default) or text'. This adds essential meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get full details of a specific heritage at risk entry' and specifies retrieval by List Entry number. It distinguishes from sibling tools like her_search_heritage_at_risk by focusing on a single entry retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells LLMs to use record_id from her_search_heritage_at_risk results, and provides two acceptable formats for the ID. This gives direct guidance on when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| nhle_id | Yes | ||
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool returns a complete record with specific fields, which is good, but does not explicitly mention read-only behavior or any side effects. For a simple read tool, this is adequate but could be improved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for description, Args, Returns, and Tips. It is front-loaded with the purpose and is concise, but the Args and Returns sections could be integrated into the main description to reduce redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only two parameters, no output schema, and no annotations, the description provides sufficient information for a simple retrieval tool. It explains the purpose, parameters, and gives usage tips. It does not cover error handling, but that is acceptable for this straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no parameter descriptions (0% coverage), but the description adds parameter meanings in the Args section: nhle_id as 'NHLE list entry number (e.g. '1002345')' and output_mode as 'Response format — 'json' (default) or 'text''. This compensates well for the missing schema details, though 'text' format is not further elaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get full details for a specific scheduled monument.' The verb 'Get' and resource 'scheduled monument' are specific, and the tool is distinguished from siblings like search and other get tools by focusing on scheduled monuments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Tips for LLMs' section advises using nhle_id from search results, providing clear guidance. However, there is no explicit statement on when not to use the tool or alternatives, though the context of siblings implies this tool is for retrieving full records after search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| record_id | No | ||
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It explains the tool retrieves a single record and describes the return format and fields (site type, form, location, grid reference). It does not mention side effects or permissions, but these are likely minimal for a read-only lookup tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a clear title sentence, followed by a brief explanation, labeled Args and Returns sections, and a practical tip for LLMs. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two parameters and no output schema, but the description explains return fields adequately. It could mention error handling or rate limits, but for a read-only lookup tool, the coverage is sufficient for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% coverage with no descriptions for the two parameters. The description fully compensates by explaining record_id accepts two formats ('scotland:CANMOREID' or just the ID) and output_mode options ('json' default or 'text'), adding crucial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'Scottish NRHE record', specifying it retrieves full details by Canmore ID. It distinguishes from sibling tools like her_search_scotland by focusing on retrieval of a single record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using record_id from her_search_scotland results, providing clear context for when to use this tool. However, it does not explicitly mention when not to use it or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively explains the return structure (metadata including query types, coverage area, status) and provides usage tips, though it could explicitly state it is a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for Args, Returns, and Tips. It front-loads the core purpose and adds valuable context without excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 optional param, no output schema), the description is sufficiently complete. It explains what the tool returns and provides usage guidance, fulfilling the agent's needs for discovery.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the single parameter 'output_mode' as 'Response format — "json" (default) or "text"', adding meaning beyond the schema. With 0% schema coverage, this compensates well, though enum options are not formally defined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all registered heritage data sources and their capabilities' with a specific verb and resource, distinguishing it from siblings that focus on searching, counting, or exporting specific data types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit tip 'Use this to discover which sources are available and what each one can do before running queries' provides clear context for when to use the tool, though it lacks explicit exclusion of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
her_mapBRead-only
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| bbox | No | ||
| basemap | No | osm | |
| sources | No | ||
| radius_m | No | ||
| max_results | No | ||
| designation_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, providing the core behavioral trait. The description adds context about multi-layer, color-coded output, which is beneficial but not critical beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two short sentences, front-loading the purpose without fluff. However, it could pack more parameter guidance without losing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no required ones, and many sibling tools, the description lacks context on parameter usage, output details, and differentiation from similar mapping tools like 'her_crossref_map'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 8 parameters, the description provides no explanation for any parameter (lat, lon, bbox, etc.). This fails to compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'visualise', the resource 'heritage assets from multiple sources', and the output 'a multi-layer interactive map' with color-coded layers. It distinguishes from sibling search and list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives like 'her_nearby' or 'her_search_*'. No when-not or alternative scenarios are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| easting | No | ||
| northing | No | ||
| radius_m | No | ||
| max_results | No | ||
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that it searches NHLE, returns sorted by distance, and includes tips about coordinate systems and result details. It does not explicitly address permissions or side effects, but the read-only nature is implied. Slight lack of explicit non-destructive assertion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for Args, Returns, and Tips. It is slightly lengthy but each sentence adds value. The main purpose is front-loaded, and the structure aids readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately describes returns. It accounts for the complexity of 7 parameters with coordinate system choices and links to sibling tools. It provides comprehensive guidance for a complete search workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description provides extensive parameter documentation in the Args section, including coordinate alternatives, default values, and usage constraints (lat/lon vs easting/northing). This adds critical meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Find' and resource 'NHLE heritage assets near a single point'. It specifies the spatial search within a radius and sorting by distance. It also distinguishes from sibling tools by mentioning Scottish and aerial alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool (for NHLE in England) and when not (use her_search_scotland for Scotland, her_search_aerial for aerial features). It also advises calling both for comprehensive results, providing clear alternatives and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| bbox | No | ||
| offset | No | ||
| period | No | ||
| radius_m | No | ||
| max_results | No | ||
| output_mode | No | json | |
| monument_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It explains the data source (AIM), return fields (monument type, period, evidence), and output formats, implying a safe read operation. It does not explicitly state read-only or disclose any side effects, which is acceptable for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear intro, parameter list, return info, and LLM tips. It front-loads the purpose. While long, every sentence provides value for a complex tool with 9 parameters, though minor redundancy exists (e.g., repeating the data source).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the search capability, parameters, return content, and cross-references to sibling tools. It lacks explicit pagination semantics (offset meaning, result limits) and error handling, but overall is quite complete for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides detailed explanations for all 9 parameters, including examples, default values, and tips (e.g., 'monument_type: Monument type keyword (e.g. "SALTERN MOUND", "ENCLOSURE")'). This adds critical meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb ('Search') and resource ('aerial investigation mapping data'), explicitly states it queries Historic England AIM data for archaeological features from aerial photos and LiDAR, and contrasts with NHLE monuments, distinguishing it from sibling tools like her_search_monuments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool (for cropmarks, earthworks, etc. not in NHLE), provides tips for LLMs on keyword usage, and recommends running all three sources (NHLE, AIM, Heritage Gateway) for comprehensive surveys, thus guiding on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| lpa | No | ||
| bbox | No | ||
| query | No | ||
| offset | No | ||
| radius_m | No | ||
| max_results | No | ||
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It describes the search as querying a dataset and returning matches, but does not explicitly state side effects, limitations, or error handling. Since it's a read-only search, the lack of behavioral depth is acceptable but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for summary, args, returns, and tips. Though slightly lengthy due to parameter documentation, every sentence serves a purpose. The structure is clear and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no output schema, and no annotations, the description covers all necessary context: purpose, dataset origin, parameter details, return format, and usage advice. It is complete for a search tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides detailed explanations for all 9 parameters, including expected formats (e.g., bbox as 'xmin,ymin,xmax,ymax' in BNG), defaults, and constraints (max_results 1-2000). This fully compensates for the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Search conservation areas across England,' a specific verb+resource. It distinguishes from siblings by specifying the dataset (Historic England's Conservation Areas) and including tips that reference her_count_conservation_areas as an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Tips for LLMs' section explicitly tells when to use lpa, spatial parameters (bbox, lat/lon), and suggests using her_count_conservation_areas first to gauge result size. This provides clear usage guidance and alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| bbox | No | ||
| name | No | ||
| offset | No | ||
| radius_m | No | ||
| description | No | ||
| max_results | No | ||
| output_mode | No | json | |
| designation_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It describes the operation as 'Search' and explains parameters and tips, but does not explicitly state that it is read-only or mention any limitations like data freshness or permissions. The lack of output schema also leaves some uncertainty about return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections for purpose, covered types, Args, Returns, and Tips. It is front-loaded with the primary purpose. While comprehensive, it could be slightly more concise by removing redundant phrasings, but overall it effectively organizes essential information for a tool with 10 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, no output schema, no annotations), the description covers all parameters, provides tips, and mentions that results include designation_type. However, it lacks explicit constraints on parameter combinations (e.g., radius search requires both lat and lon) and does not detail pagination behavior beyond the offset parameter. It is satisfactory but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must fully define parameters. It does so effectively in the Args section, explaining each parameter's purpose, format (e.g., bbox format, lat/lon for radius), and defaults (e.g., max_results default 50). It also lists possible values for designation_type, adding meaning beyond the schema's string type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Search across all designation types in the NHLE' and lists the specific types, providing a clear verb (Search) and resource (designation types). It distinguishes itself from sibling tools like her_search_listed_buildings by being a generic cross-type search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tips section advises to leave designation_type empty to search all types and to use her_count_features first for quick totals, offering guidance on when to use and an alternative action. However, it does not explicitly state when not to use this tool (e.g., preferring dedicated search tools for a single type), so it lacks full exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| bbox | No | ||
| query | No | ||
| offset | No | ||
| radius_m | No | ||
| max_results | No | ||
| output_mode | No | json | |
| heritage_category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that it queries an annual register and returns entries with category and risk methodology. It does not indicate any destructive behavior or rate limits, but for a search tool this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args, Returns, and Tips sections, making it easy to navigate. It is fairly long but every sentence adds value, though minor redundancy exists (e.g., repeating query description).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no output schema, and no annotations, the description covers all essential aspects: what the tool does, all parameters with clarifications, and return values. It could improve by specifying the output format for 'text' mode or adding examples.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description provides detailed explanations for all 9 parameters, including allowed values for heritage_category and tips for spatial queries. This adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches the Heritage at Risk Register for endangered heritage assets. It uses a specific verb ('Search') and specific resource ('Heritage at Risk Register'), distinguishing it from sibling tools like her_get_heritage_at_risk (which likely gets a specific entry) or her_search_monuments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance in the 'Tips for LLMs' section, suggesting to use heritage_category and combine with spatial parameters. It also clarifies that these entries also appear in NHLE searches. However, it does not explicitly state when not to use this tool or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| what | No | ||
| when | No | ||
| where | No | ||
| max_results | No | ||
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses 'Best-effort access via web scraping' and graceful empty results on unavailability. However, it does not cover rate limits, authentication, or further behavioral nuances, though the tool's read-only nature is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a main description, Args, Returns, and Tips sections. It is concise with no redundant sentences, every line adds value—especially the critical tips about merging results and spatial filtering.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description covers the tool's purpose, usage, parameter meanings, and fallback behavior. It could be more complete by specifying the return format or data structure, but the Returns line gives a general idea. The tips enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description compensates with an Args section explaining each parameter (what, where, when, max_results, output_mode) and their default values. It adds context like 'Monument type or keyword' for 'what' and place name for 'where', but lacks format constraints or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches local Historic Environment Records via Heritage Gateway, specifying it covers undesignated sites not in the NHLE. It distinguishes from sibling tools like her_search_monuments and her_search_aerial by mentioning alternative coverage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (best for undesignated sites and local HER data) and provides clear guidance on when not to rely solely on it, recommending to also run her_search_monuments and her_search_aerial. Includes spatial filtering tip using her_enrich_gateway.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| bbox | No | ||
| name | No | ||
| grade | No | ||
| offset | No | ||
| radius_m | No | ||
| max_results | No | ||
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states 'Queries the NHLE' and describes parameters and return format, implying a read-only search. However, it does not disclose quotas, rate limits, or side effects beyond the query nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose sentence, then Args/Returns/Tips sections. Every sentence adds value; no unnecessary words. It is concise despite covering many parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no output schema, and no annotations, the description is quite complete: all parameters documented, return format specified, and grading explained. Minor gap: the return structure ('Matching listed buildings with grade and location') could be more specific, but overall it's thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides rich parameter details: types, formats (e.g., 'xmin,ymin,xmax,ymax' for bbox), units, defaults, and constraints. This fully compensates for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search listed buildings by location, name, or grade' with specific verb and resource. It distinguishes from sibling tools (e.g., her_search_aerial) by focusing on listed buildings and referencing the NHLE and grading system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use (searching listed buildings) and includes tips for LLMs (e.g., grading hierarchy, using bbox/lat-lon). However, it does not explicitly mention when not to use or suggest alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| bbox | No | ||
| name | No | ||
| offset | No | ||
| radius_m | No | ||
| description | No | ||
| max_results | No | ||
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that it queries NHLE, returns matching monuments with location and metadata, and implies it is a read operation (search). However, it does not explicitly state it is read-only or mention rate limits. Still, it adequately conveys the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a concise summary, detailed Args list, Returns section, and Tips for LLMs. It is front-loaded with the purpose. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no required ones, and no output schema, the description fully explains parameter usage, return value (matching monuments with location and metadata), and provides cross-references to sibling tools. It is comprehensive for an LLM to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 provides detailed explanations for all 9 parameters, including formats like 'bbox as xmin,ymin,xmax,ymax in BNG (EPSG:27700)', radius in metres, max_results range, and output_mode values. This adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search scheduled monuments by location, name, or description.' It specifies the resource (scheduled monuments) and the actions (search). It distinguishes from siblings by noting that NHLE only contains designated assets and suggests other tools for undesignated sites.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance for each parameter (bbox for area, lat/lon+radius for point, name for text). It includes tips for LLMs, such as following up with her_get_monument, using her_count_features first, and alternatives for undesignated sites. This clearly differentiates usage from sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| bbox | No | ||
| name | No | ||
| council | No | ||
| radius_m | No | ||
| site_type | No | ||
| broad_class | No | ||
| max_results | No | ||
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that it queries NRHE, covers terrestrial sites, and mentions MapServer max of 1,000 records per request. It also describes return format. However, it does not explicitly state that the tool is read-only or mention any authentication or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat lengthy but well-structured with sections: summary, args, returns, tips. Every sentence adds value, though tips could be slightly condensed. The structure aids readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, no output schema, and many sibling tools, the description is highly complete. It covers all parameters, provides usage guidance, mentions limits, and cross-references related tools. The return description is brief but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and description compensates fully. Each parameter is explained with clear meaning (e.g., 'Site name keyword (partial, case-insensitive)'), examples for site_type, and format for bbox. It also explains usage constraints like lat/lon requiring radius_m.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches Scottish NRHE records (320,000+ sites from Canmore). It specifies the resource (terrestrial archaeological sites, monuments, and buildings in Scotland) and distinguishes from sibling tools like her_search_scotland_designations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when-to-use guidance: mentions that for designated assets only, use her_search_scotland_designations, and for cross-border queries near England/Scotland border, also run her_search_monuments and her_search_aerial. Also includes tips for site_type keywords and max results limit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| bbox | No | ||
| name | No | ||
| radius_m | No | ||
| max_results | No | ||
| output_mode | No | json | |
| designation_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes return type, parameter constraints (e.g., bbox in BNG, radius requires lat/lon), and mentions default max_results. No contradictions, but could mention if there are any rate limits or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Structured with a brief purpose, parameter list, returns, and tips. No redundant sentences; every part adds value. Front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no output schema, and no annotations, the description provides thorough parameter explanations and usage context. However, it does not detail the exact structure of returned data beyond mentioning type, category, location.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description fully explains each parameter, including defaults and valid values. However, the explanation is in text rather than in the schema; a more structured format could improve machine readability.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool searches Scottish designated heritage assets and lists all covered types. Distinguishes from siblings like her_search_designations (English NHLE) and her_search_scotland (all Scottish sites) in the tips.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises when to use this tool versus her_search_scotland (for all sites) and recommends also searching English sources for cross-border queries. Provides clear context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| output_mode | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It correctly indicates a read-only operation (checking health) without mentioning any destructive or side effects. Could explicitly state it is non-destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise yet complete: introduction, args, returns, and usage tips. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately covers the simple health check function with one optional parameter. Describes return content (version, statuses, tool count). Could be considered complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter with 0% schema coverage. Description explains output_mode accepts 'json' (default) or 'text', adding meaning beyond the schema's basic type/default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks server health and data source availability, specifying it returns version, source statuses, and tool count. This distinguishes it from sibling tools that are search or retrieval focused.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises calling this first to check available sources, providing a clear use context. Lacks explicit when-not-to-use, but that's less critical for a health check tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
28 tool updates
v0.3.3- First observed
her_capabilities - First observed
her_count_aerial - First observed
her_count_conservation_areas - First observed
her_count_features - First observed
her_count_heritage_at_risk - First observed
her_cross_reference - First observed
her_crossref_map - First observed
her_enrich_gateway - First observed
her_export_for_lidar - First observed
her_export_geojson - First observed
her_get_aerial_feature - First observed
her_get_conservation_area - First observed
her_get_heritage_at_risk - First observed
her_get_monument - First observed
her_get_scotland_record - First observed
her_list_sources - First observed
her_map - First observed
her_nearby - First observed
her_search_aerial - First observed
her_search_conservation_areas - First observed
her_search_designations - First observed
her_search_heritage_at_risk - First observed
her_search_heritage_gateway - First observed
her_search_listed_buildings - First observed
her_search_monuments - First observed
her_search_scotland - First observed
her_search_scotland_designations - First observed
her_status
TDQS
Each tool has a distinct purpose targeting specific entity types (e.g., aerial features, monuments, conservation areas, heritage at risk) with clear separation between count, search, get, export, cross-reference, and mapping operations. Even overlapping functions like search vs. nearby are distinguished by documentation, minimizing confusion.
All tools use 'her_' prefix and snake_case, with most following a verb_noun pattern (e.g., 'her_search_monuments', 'her_get_aerial_feature'). A few outliers like 'her_capabilities', 'her_map', and 'her_nearby' deviate slightly, but the overall pattern is strong and predictable.
With 28 tools, the server covers a broad domain (multiple heritage datasets, search, count, get, export, cross-reference, mapping) without being bloated. Each tool has a clear role, and the count is appropriate for the comprehensive scope described.
The tool surface covers all essential operations for a read-only heritage data API: capability discovery, status checks, listing sources, searching/counting/getting details for multiple entity types, cross-referencing, exporting (GeoJSON, LiDAR), and mapping. No obvious gaps for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Canonical British Columbia Property Intelligence & Risk Screening MCP Server.
Hosted MCP server for finding authoritative primary data sources and official portals.
MCP server for US nursing facility search and ownership lookup (NursingHomeDatabase).
MCP server for Open Archives: Dutch genealogical records and historical page transcriptions.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA Python-based MCP server that provides access to Ordnance Survey APIs, allowing querying of geographic data through a standardized protocol with features like collection management, feature search, and spatial filtering.2MIT
- AlicenseBqualityDmaintenanceAn MCP server that provides tools for querying the Edinburgh Festivals API to retrieve information about events and venues across all Edinburgh festivals, including historical data.31MIT
- AlicenseBqualityCmaintenanceMCP server for querying archaeological site information from the EGIPCI service of the Generalitat de Catalunya, enabling AI editors to access Catalan archaeological data.118MIT
- AlicenseNot gradedqualityCmaintenanceThis MCP server provides access to City of Houston GIS open geospatial data, enabling search, query, and schema retrieval of datasets like parcels and zoning through ArcGIS feature services.16MIT
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