{
  "name": "chch.live",
  "description": "Christchurch's public record — the heritage register, a decade of council reports, the document archive, every suburb (with its census shape), street, address, school, park, facility, track, business, marae, place of worship, ward and community board, the geography rolls (memorials, cemeteries with the council's plot register, summits, sites, coast, beaches, rocks, lakes, piers, falls, rivers), the ground layers (liquefaction, faults, red zone, floods, hazards, tsunami and the rest), crashes, buses (routes, stops and the live ETA/position feed), cycleways, plaques and walks — readable as markdown at .md on almost any path, and as JSON at api.chch.live. Cemetery person-level records honour a 70-year privacy horizon: recent deaths count in totals, never list.",
  "url": "https://www.chch.live",
  "provider": {
    "organization": "chch.live",
    "url": "https://www.chch.live/about"
  },
  "version": "1.0.0",
  "documentationUrl": "https://www.chch.live/llms.txt",
  "additionalInterfaces": [
    {
      "transport": "MCP",
      "url": "https://www.chch.live/mcp",
      "description": "JSON-RPC 2.0 over POST — tools: search_the_record, what_stood_here, read_page_as_markdown, what_changed, compare_suburbs, list_directory"
    }
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": ["text"],
  "defaultOutputModes": ["text/markdown", "text/html"],
  "skills": [
    {
      "id": "what-stood-here",
      "name": "What stood on this ground before",
      "description": "The founding question — the nearest heritage-register places to a coordinate, distances and sourced-claim counts, each linked at its record.",
      "tags": ["heritage", "geospatial", "christchurch"],
      "examples": [
        "https://www.chch.live/before.md?lat=-43.5321&lon=172.6362&radius=250",
        "https://www.chch.live/before?lat=-43.5321&lon=172.6362"
      ],
      "inputModes": ["text"],
      "outputModes": ["text/markdown", "text/html"]
    },
    {
      "id": "search-the-record",
      "name": "Search every register at once",
      "description": "One query across suburbs, streets, heritage places, articles, sourced claims, the document archive, reports, schools, parks, facilities, tracks, wire posts, the business directory, the marae roll, places of worship and the wards and boards — answered as a linked roll.",
      "tags": ["search", "archive", "christchurch"],
      "examples": [
        "https://www.chch.live/search.md?q=cathedral",
        "https://www.chch.live/search.md?q=12%20march"
      ],
      "inputModes": ["text"],
      "outputModes": ["text/markdown", "text/html"]
    },
    {
      "id": "any-page-as-markdown",
      "name": "Any record as markdown",
      "description": "Append .md to nearly any path — a place, suburb, street, address, report, article, explainer, day, year, collection, paper, index or the crash record — and the same answer arrives as markdown with its citations and caveats intact. Baked where bakeable, rendered live where not.",
      "tags": ["markdown", "records", "christchurch"],
      "examples": [
        "https://www.chch.live/place/28.md",
        "https://www.chch.live/riccarton.md",
        "https://www.chch.live/report/8949981.md",
        "https://www.chch.live/how-nz-works/te-tiriti.md"
      ],
      "inputModes": ["text"],
      "outputModes": ["text/markdown"]
    },
    {
      "id": "what-changed",
      "name": "What changed since",
      "description": "The delta feed — every record the archive learned or relearned since a timestamp, linked at its page. For incremental re-crawls.",
      "tags": ["feed", "delta", "christchurch"],
      "examples": [
        "https://www.chch.live/changes.md",
        "https://www.chch.live/changes.md?since=2026-09-15"
      ],
      "inputModes": ["text"],
      "outputModes": ["text/markdown"]
    },
    {
      "id": "compare-suburbs",
      "name": "Compare two suburbs",
      "description": "Two suburbs' public records side by side — population, area, reports filed, crashes, schools, parks, facilities, tracks, bus stops and heritage places — as a table with the notable side marked.",
      "tags": ["compare", "suburbs", "christchurch"],
      "examples": [
        "https://www.chch.live/compare.md?a=riccarton&b=sydenham",
        "https://www.chch.live/compare?a=addington&b=riccarton"
      ],
      "inputModes": ["text"],
      "outputModes": ["text/markdown", "text/html"]
    },
    {
      "id": "data-api",
      "name": "The record as JSON",
      "description": "Every page's payload is a JSON endpoint at api.chch.live — /place, /suburb, /street, /address, /report, /documents, /search, /before, /changes and the rolls. Documented in prose at /llms.txt.",
      "tags": ["api", "json", "christchurch"],
      "examples": [
        "https://api.chch.live/suburb?name=Riccarton",
        "https://api.chch.live/search?q=cathedral",
        "https://api.chch.live/changes?since=1789582596094"
      ],
      "inputModes": ["text"],
      "outputModes": ["application/json"]
    },
    {
      "id": "live-buses",
      "name": "Live bus ETAs and positions",
      "description": "Metro's GTFS-Realtime feed decoded (CC BY 4.0): the next arrivals at a stop by GTFS stop_id, or the buses inside a bounding box. `stale` marks a dead or slow poll — an empty answer overnight is the buses asleep, not the feed broken.",
      "tags": ["transit", "realtime", "christchurch"],
      "examples": [
        "https://api.chch.live/buses/live?stops=14180",
        "https://api.chch.live/buses/live?bbox=172.60,-43.55,172.68,-43.50"
      ],
      "inputModes": ["text"],
      "outputModes": ["application/json"]
    }
  ]
}
