{
  "tools": [
    {
      "name": "local_amenities_pack",
      "description": "Paid pack of nearby UK amenities (shops, cafes, pubs, etc.) for a postcode or outward code. Geocodes via free postcodes.io, queries OpenStreetMap Overpass, returns up to `size` places (default 25, max 100) with distance. Optional Google Places enrichment only when GOOGLE_PLACES_API_KEY is set (otherwise OSM-only). Requires Stripe Checkout (£0.49) then a one-time bearer token. Soft-Offer outbound is OFF.",
      "method": "POST",
      "path": "/v1/packs/local-amenities",
      "body": {
        "postcode": "string (required) — full UK postcode or outward code (e.g. M1 1AE / M1)",
        "size": "number (optional, default 25, max 100)",
        "radius_m": "number (optional, default 800, max 2000)"
      },
      "auth": "Authorization: Bearer <one-time-token> or ?token= after checkout"
    },
    {
      "name": "local_context_pack",
      "description": "Paid compound local-context pack: nearby OSM amenities + density stats (per km², by category) + honest risk_flags (e.g. thin_sample, geocode_weak). Requires Stripe Checkout (£0.49) then a one-time bearer token. Soft-Offer outbound is OFF.",
      "method": "POST",
      "path": "/v1/packs/local-context",
      "body": {
        "postcode": "string (required) — full UK postcode or outward code",
        "size": "number (optional, default 25, max 100)",
        "radius_m": "number (optional, default 800, max 2000)"
      },
      "auth": "Authorization: Bearer <one-time-token> or ?token= after checkout"
    },
    {
      "name": "redeem_pack",
      "description": "Redeem a paid Stripe Checkout session (success redirect). Returns local-amenities or local-context pack JSON once, based on session product.",
      "method": "GET",
      "path": "/v1/packs/redeem?session_id=cs_..."
    },
    {
      "name": "local_amenities_discover",
      "description": "Free peek: up to 5 nearby OSM amenities for a UK postcode / outcode (e.g. M1). Cached 24h. For MCP tool discovery / samples. Soft-Offer outbound is OFF.",
      "method": "GET",
      "path": "/v1/discover/local-amenities?postcode=M1"
    }
  ],
  "mcp": {
    "endpoint": "/mcp",
    "transport": "streamable-http"
  },
  "one_liner": "AI-ready MCP tools for proptech / site-selection / local-context agents. Free discover → £0.49 pack → JSON for your agent.",
  "outcome": "Nearby shops/cafes/pubs + density JSON for a UK postcode (site-selection / local-context agents)",
  "how_agents_use_this": "GET /v1/discover/local-amenities?postcode=… → POST pack → Stripe £0.49 → Bearer once",
  "data_licence": "OpenStreetMap ODbL + postcodes.io. Not an official register; OSM coverage varies.",
  "soft_offer_outbound": "off",
  "price_tiers": {
    "selling_now": "£0.49 only",
    "default": "£0.49 (STRIPE_PRICE_ID)",
    "pro": "dormant until converters",
    "deep": "dormant until converters",
    "bundle": "dormant until converters"
  },
  "free_vs_paid": {
    "free": [
      "GET /tools",
      "GET /health",
      "POST /mcp",
      "GET /v1/discover/local-amenities (≤5)"
    ],
    "paid_049": [
      "POST /v1/packs/local-amenities",
      "POST /v1/packs/local-context"
    ]
  }
}