{
  "entries": [
    {
      "identifier": "urn:air:tubehound.co.uk:hound",
      "displayName": "Tube Hound",
      "type": "application/mcp-server-card+json",
      "url": "https://tubehound.co.uk/.well-known/mcp/server-card.json",
      "version": "0.3.0",
      "description": "MCP door for the Tube Hound warehouse: natural-language answers, instant routes, live status, station boards, lifts, and places or events open at arrival with the route. POST one JSON-RPC message to /hound/mcp.",
      "capabilities": [
        "ask_tubehound",
        "plan_tube_route",
        "discover_places",
        "trip_check",
        "tube_network_status",
        "tube_station_board",
        "resolve_place",
        "ask",
        "network_now",
        "service_status",
        "disruptions",
        "planned",
        "lifts",
        "arrivals",
        "stop_search"
      ],
      "representativeQueries": [
        "quickest way from King's Cross to Waterloo right now",
        "step-free route from Paddington to Canary Wharf",
        "which lines are having a bad day",
        "next trains at Bank",
        "is the Central line running ok this weekend",
        "where's good for Thai in Soho tonight and how long is the ride from Brixton"
      ]
    },
    {
      "identifier": "urn:air:tubehound.co.uk:chat",
      "displayName": "Tube Hound chat",
      "type": "application/vnd.tubehound.chat+json",
      "description": "Same-origin question box. POST /hound/chat returns a natural-language sentence, a verdict, and a route or station card. GET /hound/chat/{session} returns the visible turns.",
      "data": {
        "post": {
          "path": "/hound/chat",
          "contentType": "application/json",
          "body": {
            "text": "required string",
            "session": "optional, 1-64 characters from A-Za-z0-9_-",
            "here": "optional {lat, lon}, used only when the text says here or near me"
          },
          "response": {
            "verdict": "blocked | partly blocked | running | stopped | noted | unresolved",
            "sentence": "string",
            "session": "string",
            "route": "optional {origin, destination, minutes, fast: {minutes, changes, legs[]}, calm, notes[]}",
            "station": "optional {name, lines[], arrivals[], next_by_line[], headways[], lifts[]}",
            "places": "optional list of {name, kind, cuisine, area, station_name, rating, review_count, price, open_state, closes_at, next_open, hours_summary, walk_min, tags, summary, route, events}",
            "events": "optional list of {title, venue_name, station_name, status, starts, ends, price, route}"
          }
        },
        "get": {
          "path": "/hound/chat/{session}",
          "response": {
            "session": "string",
            "messages": [
              {
                "role": "user | assistant",
                "message": "string"
              }
            ]
          }
        },
        "scope": "Tube, Elizabeth line, Overground, DLR, and Tram status, routes, lifts, and arrivals, plus restaurants, bars, museums, markets and events near stations with opening hours checked at arrival. Fares, last trains, and buses are not tracked; the assistant says so.",
        "rateLimit": "HTTP 429 after HOUND_RATE_PER_MIN questions from one client. Default 30 a minute."
      },
      "capabilities": [
        "plan_route",
        "network_status",
        "station_board",
        "resolve_place",
        "discover_places"
      ],
      "representativeQueries": [
        "I'm in Chelsea, how do I get to Canary Wharf?",
        "is the Central line running",
        "what's shut this weekend",
        "where's good in Soho for late-night food tonight"
      ]
    }
  ]
}
