{"serverId":"mcp-registry/io.github.danielinniss/boundr","tools":[{"name":"find_boundaries_at_point","fixed":{"name":"find_boundaries_at_point","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 wh","inputSchema":{"type":"object","required":["lat","lng"],"properties":{"lat":{"type":"number","description":"Latitude in decimal degrees. Must be between -90 and 90.\n Example: 51.5074 (central London)."},"lng":{"type":"number","description":"Longitude in decimal degrees. Must be between -180 and 180.\n Example: -0.1278 (central London)."},"boundary_types":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"default":null,"description":"Optional list of type codes to restrict results,\n            e.g. [\"CTY\", \"LBO\"]. All levels are returned if omitted."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":327,"tokensAfter":327},{"name":"get_boundary_bbox","fixed":{"name":"get_boundary_bbox","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":{"type":"object","required":["code"],"properties":{"code":{"type":"string","description":"ONS census / GSS / LAU code, e.g. \"E14001592\" for Woking.\n  Case-insensitive."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":172,"tokensAfter":172},{"name":"get_boundary_by_code","fixed":{"name":"get_boundary_by_code","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),","inputSchema":{"type":"object","required":["code"],"properties":{"code":{"type":"string","description":"ONS census / GSS / LAU code, e.g. \"E09000012\".\n  Case-insensitive — \"e09000012\" resolves to the same boundary."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":227,"tokensAfter":227},{"name":"get_boundary_geojson_by_code","fixed":{"name":"get_boundary_geojson_by_code","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 eno","inputSchema":{"type":"object","required":["code"],"properties":{"code":{"type":"string","description":"ONS census / GSS / LAU code, e.g. \"E09000012\" for Hackney.\n  Case-insensitive."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":218,"tokensAfter":218},{"name":"get_boundary_geojson_simplified","fixed":{"name":"get_boundary_geojson_simplified","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":{"type":"object","required":["code"],"properties":{"code":{"type":"string","description":"ONS census / GSS / LAU code, e.g. \"E14001592\" for Woking.\n  Case-insensitive."},"tolerance":{"type":"number","default":0.0001,"description":"Simplification tolerance in degrees (WGS-84). Default 0.0001.\n       Increase to 0.001 for county-scale boundaries."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":256,"tokensAfter":256},{"name":"list_boundary_type_codes","fixed":{"name":"list_boundary_type_codes","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","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":182,"tokensAfter":182},{"name":"search_boundaries_by_name","fixed":{"name":"search_boundaries_by_name","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":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Full or partial boundary name. Case-insensitive. Examples:\n  \"Hackney\", \"Greater Manchester\", \"York\", \"Kent\"."},"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."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":287,"tokensAfter":287}],"toolsChanged":7,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}