Server definition
- Hash
- sha256:6e1240d7429edc6496cd33b6cbf36d6b19331e5b31ae4fcc341f3781e5d0f7bf
- What it is
- What a remote MCP server returned when asked what it offers: 7 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Find all UK administrative boundaries that geographically contain a coordinate point.\n\nUse this to answer \"what county/borough/ward is this location in?\" for a\nlatitude/longitude. Returns lightweight metadata only — no geometry. If you\nneed to display a boundary shape, call get_boundary_geojson_by_code() with\nthe returned `code`.\n\nMultiple boundaries at different administrative levels typically contain the\nsame point (e.g. a ward, a borough, and a county). Filter by boundary_types\nto restrict which levels are returned.\n\nCall list_boundary_type_codes() first if you are unsure which type codes to use.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"boundary_types": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional list of type codes to restrict results,\n e.g. [\"CTY\", \"LBO\"]. All levels are returned if omitted."
},
"lat": {
"description": "Latitude in decimal degrees. Must be between -90 and 90.\n Example: 51.5074 (central London).",
"type": "number"
},
"lng": {
"description": "Longitude in decimal degrees. Must be between -180 and 180.\n Example: -0.1278 (central London).",
"type": "number"
}
},
"required": [
"lat",
"lng"
],
"type": "object"
},
"name": "find_boundaries_at_point",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Get the bounding box and centroid for a boundary by its ONS census code.\n\nReturns min_lat, max_lat, min_lng, max_lng, centroid_lat, centroid_lng.\nPass the bbox values directly to Knotsure's sightings_in_bbox() or\ngeographic_summary(). Much cheaper than get_boundary_geojson_by_code() for\nspatial queries because no geometry is fetched or serialised.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"code": {
"description": "ONS census / GSS / LAU code, e.g. \"E14001592\" for Woking.\n Case-insensitive.",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "get_boundary_bbox",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Look up metadata for a single UK boundary by its ONS census code. No geometry.\n\nUse this when you already have a census code (e.g. from\nsearch_boundaries_by_name() or find_boundaries_at_point()) and need\nstructured metadata such as area size or type label. If you also need the\nboundary shape for display or analysis, call get_boundary_geojson_by_code()\ninstead.\n\nONS census codes (sometimes called GSS codes or LAU codes) are stable\nidentifiers of the form \"E09000012\" (Hackney), \"E10000016\" (Kent), etc.\nThe first letter indicates the country: E = England, W = Wales,\nS = Scotland, N = Northern Ireland.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"code": {
"description": "ONS census / GSS / LAU code, e.g. \"E09000012\".\n Case-insensitive — \"e09000012\" resolves to the same boundary.",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "get_boundary_by_code",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Fetch the full GeoJSON geometry for a UK boundary by its ONS census code.\n\nReturns a GeoJSON Feature object (WGS-84 / EPSG:4326) suitable for\nrendering on a map or performing geometric analysis. The geometry can be\nlarge — county and ceremonial county polygons are especially heavy. Only\ncall this when you specifically need the shape; for metadata only use\nget_boundary_by_code() instead.\n\nIMPORTANT — Leaflet / web maps: use get_boundary_geojson_simplified() instead.\nThe full geometry is large enough to exhaust your context window before you can\nfinish writing the page. The simplified version is safe to embed directly in HTML\nand indistinguishable from the full shape at normal map zoom levels.\n\nUse this tool only when you need full-fidelity geometry for server-side analysis\n(e.g. precise point-in-polygon checks, area calculations, clipping).\n\nObtain the census code from search_boundaries_by_name() or\nfind_boundaries_at_point() before calling this.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"code": {
"description": "ONS census / GSS / LAU code, e.g. \"E09000012\" for Hackney.\n Case-insensitive.",
"type": "string"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "get_boundary_geojson_by_code",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Fetch simplified GeoJSON for a boundary by its ONS census code.\n\nSafe to embed directly in generated HTML map files. At the default tolerance\n(0.0001°) a constituency polygon shrinks from ~4,000 vertices to ~200–400\nwith no visible difference at normal map zoom levels.\n\nPrefer this over get_boundary_geojson_by_code() when writing Leaflet map\npages — the full geometry is large enough to exhaust your context window\nbefore you can finish writing the HTML.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"code": {
"description": "ONS census / GSS / LAU code, e.g. \"E14001592\" for Woking.\n Case-insensitive.",
"type": "string"
},
"tolerance": {
"default": 0.0001,
"description": "Simplification tolerance in degrees (WGS-84). Default 0.0001.\n Increase to 0.001 for county-scale boundaries.",
"type": "number"
}
},
"required": [
"code"
],
"type": "object"
},
"name": "get_boundary_geojson_simplified",
"outputSchema": {
"properties": {
"result": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
]
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
},
{
"description": "Returns every valid UK boundary type code mapped to its human-readable label.\n\nCall this before using any tool that accepts a `boundary_type` or\n`boundary_types` argument so you know which codes are legal. Passing an\nunlisted code to another tool raises a ValueError.\n\nBoundary type codes are stable Ordnance Survey identifiers. Common ones:\n- \"CTY\" → County\n- \"LBO\" → London Borough\n- \"UTA\" → Unitary Authority\n- \"MTD\" → Metropolitan District\n- \"DIS\" → District\n- \"DIW\" → District Ward\n- \"CCTY\" → Ceremonial County\n- \"HCTY\" → Historic County\n- \"WMC\" → Westminster Parliamentary Constituency\n- \"GLC\" → Greater London Constituency\n- \"SWC\" → Scotland/Wales Constituency\n- \"PAR\" → Parish\n- \"CED\" → County Electoral Division\n\nReturns:\n Dict mapping code → label for all supported boundary types,\n e.g. {\"CTY\": \"County\", \"LBO\": \"London Borough\", ...}",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_boundary_type_codes",
"outputSchema": {
"additionalProperties": {
"type": "string"
},
"type": "object"
}
},
{
"description": "Search for UK administrative boundaries by name (case-insensitive partial match).\n\nUse this to discover boundaries when you have a place name but not a code.\nReturns lightweight metadata only — no geometry. If you need to display or\nanalyse the boundary shape, call get_boundary_geojson_by_code() with the\nreturned `code`.\n\nCall list_boundary_type_codes() first if you need to filter by type and are\nunsure which code to use.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"boundary_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional type code to narrow results, e.g. \"LBO\" for\n London Boroughs or \"CTY\" for Counties. Must be a code\n from list_boundary_type_codes(); raises ValueError otherwise."
},
"name": {
"description": "Full or partial boundary name. Case-insensitive. Examples:\n \"Hackney\", \"Greater Manchester\", \"York\", \"Kent\".",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "search_boundaries_by_name",
"outputSchema": {
"properties": {
"result": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
}
},
"required": [
"result"
],
"type": "object",
"x-fastmcp-wrap-result": true
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:6e1240d7429edc6496cd33b6cbf36d6b19331e5b31ae4fcc341f3781e5d0f7bf | sha256sum