LayUp Sports Booking

Search bookable London courts, pitches, lanes and pickup games across every major UK provider.

我該用這個嗎

品質與安全性

A
說明品質
96%
結構描述完整度
82%
命名品質
96%
汙染風險
80%
權限相符程度
100%
協定合規性
100%

發現項目(2)

  • HIGHTool poisoning patterns detected
  • LOWTool description contains role marker that could confuse chat models在 create_alert 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~1,842Token(工具定義)
~3.1 KB典型回應大小
中等的注意力影響(128k 上下文的 1.44%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "sports-booking": {
      "url": "https://mcp.layupsport.com"
    }
  }
}

遠端端點

https://mcp.layupsport.comstreamable-http

它能做什麼

工具清單

工具(5)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢search_slots(sport, area, date_from, date_to, time_from, ...)

Search bookable sports slots in London across every provider LayUp aggregates. Use when a user wants to find a court, pitch, lane, class or pickup game for football, tennis, squash, padel or swimming. Filter by sport, area/borough, date range, time of day and max price. Returns upcoming slots with venue, London-local time, price, provider and a booking link. Times default to the next 7 days.

輸入結構描述

{
  "type": "object",
  "properties": {
    "sport": {
      "type": "string",
      "enum": [
        "Football",
        "Tennis",
        "Squash",
        "Padel",
        "Swimming"
      ],
      "description": "One of Football, Tennis, Squash, Padel, Swimming."
    },
    "area": {
      "type": "string",
      "description": "Where to look. Resolved geographically, so any of these work: a borough ('Hackney'), a neighbourhood ('Shoreditch', 'Maida Vale'), a region ('North London', 'Central London'), a postcode or outward code ('W9 2RF', 'SE1'), or a venue name ('Clissold'). Returns venues near the resolved point, not just ones with the word in their name."
    },
    "date_from": {
      "type": "string",
      "description": "ISO date or datetime — earliest start. Defaults to now."
    },
    "date_to": {
      "type": "string",
      "description": "ISO date or datetime — latest start. Defaults to 7 days out."
    },
    "time_from": {
      "type": "string",
      "description": "London-local earliest start time of day, 'HH:MM' (e.g. '18:00'). Samples the soonest upcoming slots; combine with date_from to target a specific day."
    },
    "time_to": {
      "type": "string",
      "description": "London-local latest start time of day, 'HH:MM'."
    },
    "max_price": {
      "type": "number",
      "description": "Maximum price in GBP. Published prices above this are removed; unpublished-price slots ('Check App', common for padel/tennis) are kept and flagged."
    },
    "booking_type": {
      "type": "string",
      "enum": [
        "spot",
        "court",
        "pitch"
      ],
      "description": "'spot' = book one place (pickup game / swim seat), 'court' = whole court, 'pitch' = whole pitch."
    },
    "min_courts": {
      "type": "integer",
      "description": "Only return venues with at least this many courts/pitches free AT THE SAME TIME. Use for groups: padel and tennis are 4 per court, so 16 people need 4. Nobody else can answer this — venues cannot see each other and the booking platforms only see their own sites. Results are one slot per venue; that venue had at least this many free at that hour."
    },
    "limit": {
      "type": "integer",
      "description": "Max results to return (1-30, default 15)."
    }
  },
  "additionalProperties": false
}
🟢refine_search(sport, area, date_from, date_to, time_from, ...)

Find out WHERE and WHEN there is availability, before asking the user a clarifying question. Takes the same filters as search_slots and returns counts by area, day, time band and price — not slots. Use it when the request is under-specified ('find me a tennis court', 'somewhere for a group') so the question you ask back is grounded in real supply: ask 'Wandsworth (8 venues) or Richmond (7)?' rather than an open 'which area?'. Also use it when a search returned nothing, to say which nearby area or time DOES have slots instead of reporting a dead end.

輸入結構描述

{
  "type": "object",
  "properties": {
    "sport": {
      "type": "string",
      "enum": [
        "Football",
        "Tennis",
        "Squash",
        "Padel",
        "Swimming"
      ],
      "description": "One of Football, Tennis, Squash, Padel, Swimming."
    },
    "area": {
      "type": "string",
      "description": "Optional. Same geographic resolution as search_slots — borough, neighbourhood, region, postcode or venue name. Omit to see every area."
    },
    "date_from": {
      "type": "string",
      "description": "ISO date or datetime — earliest start. Defaults to now."
    },
    "date_to": {
      "type": "string",
      "description": "ISO date or datetime — latest start. Defaults to 7 days out."
    },
    "time_from": {
      "type": "string",
      "description": "London-local earliest start time of day, 'HH:MM'."
    },
    "time_to": {
      "type": "string",
      "description": "London-local latest start time of day, 'HH:MM'."
    },
    "max_price": {
      "type": "number",
      "description": "Maximum price in GBP."
    },
    "booking_type": {
      "type": "string",
      "enum": [
        "spot",
        "court",
        "pitch"
      ],
      "description": "'spot', 'court' or 'pitch'."
    },
    "min_courts": {
      "type": "integer",
      "description": "Only count venue-hours with at least this many free at the same time. Same meaning as in search_slots."
    }
  },
  "additionalProperties": false
}
🟢list_sports

List the sports LayUp covers with a count of slots available in the next 7 days. Useful as a quick overview before a more specific search.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢get_venue(venue_slug, limit)

List upcoming bookable slots at a single venue, identified by its venue_slug (as returned by search_slots). Use to drill into one venue after a search.

輸入結構描述

{
  "type": "object",
  "properties": {
    "venue_slug": {
      "type": "string",
      "description": "The venue_slug from a search_slots result."
    },
    "limit": {
      "type": "integer",
      "description": "Max slots to return (1-30, default 15)."
    }
  },
  "required": [
    "venue_slug"
  ],
  "additionalProperties": false
}
🟡create_alert(email, sport, area, venue_names, venue_slugs, ...)

Set up an email alert for the user: LayUp watches for NEW matching slots (e.g. a cancellation freeing up a peak court) and emails them when one appears. Use when the user can't find a slot now and wants to be notified, or asks to 'monitor'/'watch'/'let me know when'. Requires their email. A confirmation email is sent first — the user must click confirm before any alerts fire (so always tell them to check their inbox). LayUp does the watching; the notification arrives by email, not in this chat.

輸入結構描述

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "The user's REAL email address, as given by them (required — alerts are emailed here). Never invent, guess or substitute a placeholder like [email protected]; if you don't have it, ask the user first."
    },
    "sport": {
      "type": "string",
      "enum": [
        "Football",
        "Tennis",
        "Squash",
        "Padel",
        "Swimming"
      ],
      "description": "One of Football, Tennis, Squash, Padel, Swimming. Omit for any."
    },
    "area": {
      "type": "string",
      "description": "Where to watch, resolved geographically: a borough ('Hackney'), a neighbourhood ('Maida Vale'), a region ('North London'), or a postcode ('W9 2RF', 'SE1'). A postcode is the most precise option when the user gives one. NOT a venue name — to watch a specific venue use venue_names. Omit for all London."
    },
    "venue_names": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Pin the alert to specific venues BY NAME, exactly as shown in search results (e.g. [\"Hay's Galleria\", \"Padel Box\"]). Use this whenever the user names venues — the server resolves names to the right venue(s). Prefer this over venue_slugs."
    },
    "venue_slugs": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Pin the alert to specific venues by their exact venue_slug (only if you already have slug values from search_slots). For most cases use venue_names instead. Omit for any venue."
    },
    "time_from": {
      "type": "string",
      "description": "Earliest London time-of-day, 'HH:MM' (e.g. '18:00')."
    },
    "time_to": {
      "type": "string",
      "description": "Latest London time-of-day, 'HH:MM'."
    },
    "days_of_week": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "Mon",
          "Tue",
          "Wed",
          "Thu",
          "Fri",
          "Sat",
          "Sun"
        ]
      },
      "description": "Only alert on these days (e.g. ['Sat','Sun'] for weekends). The alert is standing — it keeps watching these days every week until the user unsubscribes. Omit for any day."
    },
    "max_price": {
      "type": "number",
      "description": "Only alert on slots at or under this GBP price."
    }
  },
  "required": [
    "email"
  ],
  "additionalProperties": false
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本5 個工具
已驗證未記錄版本4 個工具
已驗證未記錄版本4 個工具