SF Tennis Court Booking via Cloudflare MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SF Tennis Court Booking via Cloudflare MCP ServerCheck availability at Alice Marble for this Friday at 2 PM"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SF Tennis Court Booking via Cloudflare MCP Server
Automate tennis court bookings on San Francisco Recreation websites using a Cloudflare MCP (Model Context Protocol) server with browser automation. Never miss your favorite court and court time again!
It uses Stytch to authenticate the server so only certain emails (like mine) can book a court (in my name.)
Demo Video
📹 Watch the demo and a brief project explanation on YouTube
Related MCP server: Playwright MCP Server for Security
What This Does
This MCP server has 3 tennis booking tools:
Check Court Availability - See available time slots for any court/date
Book Court & Request SMS - Automate booking flow up to SMS verification
Complete Booking with SMS - Finish booking by entering your SMS code
Quick Deploy
This will deploy your tennis booking MCP server to: tennis-booking.<your-account>.workers.dev/sse
Alternatively, clone and deploy locally:
npm create cloudflare@latest -- tennis-booking-mcp --template=cloudflare/ai/demos/remote-mcp-authlessHow the tennis booking works
Check what's available:
check_tennis_courts({
court: "Alice Marble",
date: "2025-07-29",
time: "12:00 PM"
})Start booking process (stops at SMS step)
book_and_request_sms({
court: "Alice Marble",
time: "12:00 PM",
date: "2025-07-29"
})Manual SMS + Automated Completion (User gets verification code from rec.us, types it in to MCP server message, this tool then runs)
enter_sms_code_and_complete({code: "123456"})Setup Requirements
You need secrets for your Cloudflare Worker/MCP server:
REC_EMAIL=your-sf-rec-email@example.com
REC_PASSWORD=your-sf-rec-passwordYour wrangler.jsonc should have:
"ai": {
"binding": "AI"
},
"browser": {
"binding": "MYBROWSER"
},Connect to MCP Clients
Cloudflare LLM Playground
Go to https://playground.ai.cloudflare.com/
Enter your MCP server URL: tennis-booking.<your-account>.workers.dev/sse
Start booking courts with natural language!
Claude Desktop Install the mcp-remote proxy and update Claude Desktop's config:
{
"mcpServers": {
"tennis-booking": {
"command": "npx",
"args": [
"mcp-remote",
"https://tennis-booking.<your-account>.workers.dev/sse"
]
}
}
}Now you can chat with Claude: "Book Alice Marble court for tomorrow at 2 PM" and it will handle the entire process!
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/elizabethsiegle/rec-us-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server