Usage Examples
Real-world examples of using the CourtsApp MCP Server to search and book courts.
These examples show how users interact with AI assistants connected to the CourtsApp MCP Server. The assistant handles tool calls automatically — users just ask in natural language.
Browsing and looking up facilities
Finding facilities in an area
User: "What pickleball facilities are near Austin, TX?"
The assistant calls list_facilities with:
{
"city": "Austin",
"state": "TX",
"sport": "pickleball"
}
The server returns facility names, IDs, and comingSoon status for all pickleball facilities within 50 miles of Austin.
Looking up facility details
User: "What are the hours for Austin Pickle Ranch? Do they have indoor courts?"
The assistant calls get_facility_details with:
{
"name": "Austin Pickle Ranch",
"city": "Austin",
"state": "TX"
}
The server returns full facility info: hours of operation, court details (indoor/outdoor, surface), amenities, booking policies, phone number, and address — no web search needed.
Checking a facility's cancellation policy
User: "What's the cancellation policy at that facility I was looking at?"
The assistant calls get_facility_details using the facilityId from a prior tool result:
{
"facilityId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
The response includes full booking and cancellation policies for that facility.
Searching for courts
Pickleball by location
User: "Find me a pickleball court near Manhattan for tomorrow afternoon around 3pm, 60 minutes."
The assistant calls search_availability with:
{
"sport": "pickleball",
"location": "manhattan, ny",
"date": "2026-03-27",
"time": "15:00",
"duration": 60
}
The server returns nearby facilities with available pickleball courts, pricing, and time slots around 3pm.
Tennis at a specific facility
User: "I want to book a tennis court at Sportime Randall's Island for Saturday at 9am, 90 minutes."
The assistant calls search_availability with the facilityName filter:
{
"sport": "tennis",
"location": "manhattan, ny",
"date": "2026-03-28",
"time": "09:00",
"duration": 90,
"facilityName": "Sportime Randall's Island"
}
The fuzzy matching on facilityName narrows results to that specific facility.
Comparing padel options
User: "What padel courts are available near zip code 10010 this Friday evening? I want to play for 60 minutes."
{
"sport": "padel",
"location": "10010",
"date": "2026-03-27",
"time": "18:00",
"duration": 60
}
The response includes multiple facilities with pricing, letting the assistant help the user compare options.
Generating a booking link
After searching, the assistant uses get_booking_link with the facilityId and sportId from the search results:
{
"facilityId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"date": "2026-03-27",
"time": "15:00",
"sportId": "f9e8d7c6-b5a4-3210-fedc-ba0987654321",
"duration": 60
}
The server returns a booking URL that the user can click to complete their reservation with pre-filled details and live pricing.
Full workflow
Finding and booking a court
- User asks — "Find me a pickleball court near downtown LA tomorrow at 5pm"
- Assistant searches — calls
search_availability, gets back 4 facilities - Assistant presents options — "I found 4 facilities. Courts & Greens has a 5:00pm slot for $28, and Pickle Pop has 5:30pm for $22..."
- User picks — "Book the Courts & Greens one"
- Assistant generates link — calls
get_booking_linkwith the facility's IDs - User books — clicks the link and completes checkout on CourtsApp
Browsing facilities then booking
- User asks — "What pickleball clubs are in Denver?"
- Assistant lists — calls
list_facilitieswith city "Denver", state "CO", sport "pickleball" - User asks — "Tell me more about Ace Pickleball Club"
- Assistant looks up — calls
get_facility_detailswith the facility ID, returns hours, courts, policies, and contact info - User decides — "Great, can I book there for Saturday at 10am?"
- Assistant searches — calls
search_availabilityfor that facility and time - Assistant generates link — calls
get_booking_linkwith the chosen slot
Using coordinates
For apps that have the user's GPS location:
{
"sport": "tennis",
"location": "34.0522,-118.2437",
"date": "2026-03-27",
"time": "10:00",
"duration": 60
}
This is useful for mobile apps or agents that can access device location.