https://github.com/elizabethsiegle/rec-us-mcp-server
Book a San Francisco tennis court via MCP server
https://github.com/elizabethsiegle/rec-us-mcp-server
browser-rendering cloudflare cloudflare-browser-rendering cloudflare-mcp cloudflare-mcp-servers cloudflare-workers cloudflare-workers-ai mcp mcp-server mcp-servers model-context-protocol model-context-protocol-servers modelcontextprotocol
Last synced: 2 months ago
JSON representation
Book a San Francisco tennis court via MCP server
- Host: GitHub
- URL: https://github.com/elizabethsiegle/rec-us-mcp-server
- Owner: elizabethsiegle
- Created: 2025-07-24T17:31:30.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-08-01T06:10:15.000Z (2 months ago)
- Last Synced: 2025-08-01T08:48:36.019Z (2 months ago)
- Topics: browser-rendering, cloudflare, cloudflare-browser-rendering, cloudflare-mcp, cloudflare-mcp-servers, cloudflare-workers, cloudflare-workers-ai, mcp, mcp-server, mcp-servers, model-context-protocol, model-context-protocol-servers, modelcontextprotocol
- Language: TypeScript
- Homepage: https://rec-us-mcp-server.lizziepika.workers.dev/sse
- Size: 199 KB
- Stars: 2
- Watchers: 0
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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](https://stytch.com) to authenticate the server so only certain emails (like mine) can book a court (in my name.)
## 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
[](https://deploy.workers.cloudflare.com/?url=https://github.com/cloudflare/ai/tree/main/demos/remote-mcp-authless)
This will deploy your tennis booking MCP server to: `tennis-booking..workers.dev/sse`
Alternatively, clone and deploy locally:
```bash
npm create cloudflare@latest -- tennis-booking-mcp --template=cloudflare/ai/demos/remote-mcp-authless
```## How the tennis booking works
1. Check what's available:
```javascript
check_tennis_courts({
court: "Alice Marble",
date: "2025-07-29",
time: "12:00 PM"
})
```2. Start booking process (stops at SMS step)
```javascript
book_and_request_sms({
court: "Alice Marble",
time: "12:00 PM",
date: "2025-07-29"
})
```3. Manual SMS + Automated Completion (User gets verification code from rec.us, types it in to MCP server message, this tool then runs)
```javascript
enter_sms_code_and_complete({code: "123456"})
```## Setup Requirements
You need secrets for your Cloudflare Worker/MCP server:
```bash
REC_EMAIL=your-sf-rec-email@example.com
REC_PASSWORD=your-sf-rec-password
```
Your wrangler.jsonc should have:
```jsonc
"ai": {
"binding": "AI"
},
"browser": {
"binding": "MYBROWSER"
},
```## Connect to MCP Clients
1. Cloudflare LLM PlaygroundGo to https://playground.ai.cloudflare.com/
Enter your MCP server URL: `tennis-booking..workers.dev/sse`
Start booking courts with natural language!2. Claude Desktop
Install the [mcp-remote proxy](https://www.npmjs.com/package/mcp-remote) and update Claude Desktop's config:
```json
{
"mcpServers": {
"tennis-booking": {
"command": "npx",
"args": [
"mcp-remote",
"https://tennis-booking..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!