Model Context Protocol

Source-backed civic tools for agents.

Connect a Streamable HTTP MCP client to Civic and discover useful London location tools with human-readable descriptions and structured outputs.

Connect

https://mcp.civicdata.co.uk/mcp

No OAuth or account is required for free atomic tools. Clients send standard Streamable HTTP MCP requests to the endpoint above.

Available tools

resolve_location
get_fire_data
get_census_data
get_crime_data
get_road_collision_data
get_flood_data
get_ptal
get_noise_data
get_air_quality_data
get_planning_constraints
get_planning_applications
get_property_sales
get_epc_data
get_property_price_per_area
get_deprivation_data
get_council_tax_rates
get_connectivity_data
get_income_data
get_radon_data
resolve_uprn
get_property_tribunal_decisions
find_nearby
get_history
get_source_info

get_area_profile       # subscription key or x402
compare_areas           # subscription key or x402

get_flood_data combines the imported Environment Agency RoFRS band with current warning-area intersections while keeping each source’s freshness separate. get_ptal returns TfL’s published 2023 WebCAT grid value. Neither tool derives a Civic score. get_noise_data returns separate Defra road, rail and airport model bands, while get_air_quality_data returns LAEI model concentrations and separately cited reference values without pass/fail labels.

Property-context tools return published EPC facts, exact observed Price Paid-to-EPC ratios, IMD ranks, ONS MSOA income with confidence intervals, authority council-tax charges, Ofcom postcode fixed broadband and local-authority mobile aggregates, OS Open UPRN coordinates, indicative BGS radon and tribunal index links. They do not create a valuation, property-band guess, address-level speed result, affluence/risk score or legal conclusion. The live API contract is authoritative for deployment availability.

Free tools return one cleaned public-data operation. Paid tools compose multiple operations into a consistent area profile or factual comparison. A subscribed client sends Authorization: Bearer civic_live_…; other clients receive the normal x402 challenge. REST and MCP call the same domain functions.

find_nearby is the shared category-based point-data tool. Choose food_hygiene, school, care_provider, gp_practice, pharmacy, dentist, station, bus_stop, cycle_hire or open_space with a postcode and radius. Official facts are returned verbatim and are never combined into a Civic Data quality score. Returned distances are straight-line, not road or walking distance.

resolve_location returns LSOA, MSOA, ward, local authority, Westminster parliamentary constituency, built-up area and rural/urban classification. Each geography includes its ONSPD source version.

get_history returns explicit monthly Fire, Crime or road collision counts for a postcode, ward, local authority or MSOA. It reports the real loaded coverage bounds and keeps Crime classification systems separate. get_area_profile and compare_areas accept the same identifier types, but one comparison cannot mix types.

Example client configuration

{
  "mcpServers": {
    "civic-data": {
      "type": "http",
      "url": "https://mcp.civicdata.co.uk/mcp"
    }
  }
}

Civic exposes bounded civic-data tools only. It does not expose arbitrary SQL, unrestricted raw tables or LLM-generated interpretation.

Resources for citations

MCP clients can list and read civic://methodology and civic://data-sources. They contain calculation bases, coverage, publisher and limitation notes, so an agent can cite the service without making a second data-tool call.

Machine discovery

Agents can discover the server through the MCP Server Card, the agent capability catalog and the agent skills index. Supported browsers also receive fourteen read-only WebMCP tools, including Census, income, indicative radon and Open UPRN alongside location resolution, source inspection, fire history and the core property-context datasets. Every tool declares a bounded input schema; postcode and UPRN inputs use explicit patterns, and each result identifies its canonical response schema in the live OpenAPI document.