protogrid

Search / io.github.danielinniss/boundr

Boundr

R0· no sign-in

UK administrative boundary data from OS Boundary Line: name search, point lookup, GeoJSON geometries

v1.1.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality79good
Trust89of 100
Uptime, 30 days93%
Latency p50813 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "boundr": {
      "type": "http",
      "url": "https://mcp.boundr.dev/mcp"
    }
  }
}
claude mcp add --transport http boundr https://mcp.boundr.dev/mcp
[mcp_servers.boundr]
url = "https://mcp.boundr.dev/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "boundr": {
      "type": "remote",
      "url": "https://mcp.boundr.dev/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "boundr": {
      "type": "http",
      "url": "https://mcp.boundr.dev/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=boundr&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmJvdW5kci5kZXYvbWNwIn0%3D"
}
{
  "servers": {
    "boundr": {
      "type": "http",
      "url": "https://mcp.boundr.dev/mcp"
    }
  }
}
{
  "mcpServers": {
    "boundr": {
      "httpUrl": "https://mcp.boundr.dev/mcp"
    }
  }
}
extensions:
  "boundr":
    enabled: true
    name: "boundr"
    type: streamable_http
    uri: "https://mcp.boundr.dev/mcp"
    timeout: 300

Quality 79 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: search_boundaries_by_name (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); find_boundaries_at_point (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_boundary_by_code (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 1,670 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

7 tools, about 1,670 tokens to load them all · tool set a3b59cb6b457 · checked 2026-10-20 10:03 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 89 / 100

provenance90
liveness97
freshness65
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-93% ~updated-93d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.boundr.dev/mcp streamable-httpnoneyes93%813 ms2025-11-252026-10-20

Tools (7)

find_boundaries_at_pointFind all UK administrative boundaries that geographically contain a coordinate point. Use this to answer "what county/borough/ward is this location in?" for a latitude/longitude. Returns lightweight metadata only — no geometry. If you need to display a boundary shape, call get_boundary_geojson_by_code() with the returned `code`. Multiple boundaries at different administrative levels typically contain the same point (e.g. a ward, a borough, and a county). Filter by boundary_types to restrict which levels are returned. Call list_boundary_type_codes() first if you are unsure which type codes to use.
get_boundary_bboxGet the bounding box and centroid for a boundary by its ONS census code. Returns min_lat, max_lat, min_lng, max_lng, centroid_lat, centroid_lng. Pass the bbox values directly to Knotsure's sightings_in_bbox() or geographic_summary(). Much cheaper than get_boundary_geojson_by_code() for spatial queries because no geometry is fetched or serialised.
get_boundary_by_codeLook up metadata for a single UK boundary by its ONS census code. No geometry. Use this when you already have a census code (e.g. from search_boundaries_by_name() or find_boundaries_at_point()) and need structured metadata such as area size or type label. If you also need the boundary shape for display or analysis, call get_boundary_geojson_by_code() instead. ONS census codes (sometimes called GSS codes or LAU codes) are stable identifiers of the form "E09000012" (Hackney), "E10000016" (Kent), etc. The first letter indicates the country: E = England, W = Wales, S = Scotland, N = Northern Ireland.
get_boundary_geojson_by_codeFetch the full GeoJSON geometry for a UK boundary by its ONS census code. Returns a GeoJSON Feature object (WGS-84 / EPSG:4326) suitable for rendering on a map or performing geometric analysis. The geometry can be large — county and ceremonial county polygons are especially heavy. Only call this when you specifically need the shape; for metadata only use get_boundary_by_code() instead. IMPORTANT — Leaflet / web maps: use get_boundary_geojson_simplified() instead. The full geometry is large enough to exhaust your context window before you can finish writing the page. The simplified version is safe to embed directly in HTML and indistinguishable from the full shape at normal map zoom levels. Use this tool only when you need full-fidelity geometry for server-side analysis (e.g. precise point-in-polygon checks, area calculations, clipping). Obtain the census code from search_boundaries_by_name() or find_boundaries_at_point() before calling this.
get_boundary_geojson_simplifiedFetch simplified GeoJSON for a boundary by its ONS census code. Safe to embed directly in generated HTML map files. At the default tolerance (0.0001°) a constituency polygon shrinks from ~4,000 vertices to ~200–400 with no visible difference at normal map zoom levels. Prefer this over get_boundary_geojson_by_code() when writing Leaflet map pages — the full geometry is large enough to exhaust your context window before you can finish writing the HTML.
list_boundary_type_codesReturns every valid UK boundary type code mapped to its human-readable label. Call this before using any tool that accepts a `boundary_type` or `boundary_types` argument so you know which codes are legal. Passing an unlisted code to another tool raises a ValueError. Boundary type codes are stable Ordnance Survey identifiers. Common ones: - "CTY" → County - "LBO" → London Borough - "UTA" → Unitary Authority - "MTD" → Metropolitan District - "DIS" → District - "DIW" → District Ward - "CCTY" → Ceremonial County - "HCTY" → Historic County - "WMC" → Westminster Parliamentary Constituency - "GLC" → Greater London Constituency - "SWC" → Scotland/Wales Constituency - "PAR" → Parish - "CED" → County Electoral Division Returns: Dict mapping code → label for all supported boundary types, e.g. {"CTY": "County", "LBO": "London Borough", ...}
search_boundaries_by_nameSearch for UK administrative boundaries by name (case-insensitive partial match). Use this to discover boundaries when you have a place name but not a code. Returns lightweight metadata only — no geometry. If you need to display or analyse the boundary shape, call get_boundary_geojson_by_code() with the returned `code`. Call list_boundary_type_codes() first if you need to filter by type and are unsure which code to use.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.danielinniss/boundr",
  "title": "Boundr",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.boundr.dev/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.1.0",
  "repository": {
    "url": "https://github.com/danielinniss/boundr",
    "source": "github"
  },
  "websiteUrl": "https://boundr.dev",
  "description": "UK administrative boundary data from OS Boundary Line: name search, point lookup, GeoJSON geometries"
}