{
  "openapi": "3.1.0",
  "info": {
    "title": "The Local Dentist API & Machine Surface",
    "version": "1.0.0",
    "description": "Independent UK dentist comparison, NHS fee benchmarks, and city price index API for AI agents.",
    "contact": {
      "name": "The Local Dentist Technical Team",
      "url": "https://thelocaldentist.co.uk",
      "email": "info@thelocaldentist.co.uk"
    }
  },
  "servers": [
    {
      "url": "https://thelocaldentist.co.uk",
      "description": "Production Server"
    }
  ],
  "paths": {
    "/api/v1/manifest.json": {
      "get": {
        "summary": "Machine Surface Manifest",
        "description": "Catalog of all available Plain Text, Markdown, Chunks, RSS, and Well-Known machine surfaces.",
        "responses": {
          "200": {
            "description": "Manifest retrieved successfully"
          }
        }
      }
    },
    "/data/datapackage.json": {
      "get": {
        "summary": "Open Knowledge Format Data Package",
        "description": "Frictionless Data Package describing the UK Dental Price Index and NHS new-patient snapshot CSVs.",
        "responses": {
          "200": {
            "description": "Data Package retrieved successfully"
          }
        }
      }
    },
    "/data/nhs-new-patients.csv": {
      "get": {
        "summary": "NHS new-patient snapshots",
        "description": "Dated sourced snapshots of NHS new-patient list status. Absence is unknown, not a closed list. Confirm on nhs.uk.",
        "responses": {
          "200": {
            "description": "CSV retrieved successfully"
          }
        }
      }
    },
    "/api/v1/mcp/": {
      "post": {
        "summary": "Model Context Protocol (MCP) JSON-RPC 2.0 Server",
        "description": "Execute live agent queries: get_dentist, search_dentists, compare_prices, get_price_index.",
        "responses": {
          "200": {
            "description": "MCP JSON-RPC response"
          }
        }
      }
    }
  }
}