courtreserve-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| COURTRESERVE_PASSWORD | Yes | Your CourtReserve API password | |
| COURTRESERVE_USERNAME | Yes | Your CourtReserve API username (format: Org_<numeric>) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| health_checkA | Verify credentials work. Returns location list as a smoke test. Use when: "is my CourtReserve API key valid?" - if this fails, all other tools will too. Check COURTRESERVE_USERNAME / COURTRESERVE_PASSWORD and that the API key is enabled on an Advance/Momentum/Enterprise plan. |
| list_membersA | List club members with optional paging and search filter. Use when: "show me all members", "find member Jane Doe", "list active members at our downtown location". Args: skip: Records to skip (paging offset). Default 0. take: Page size (max records returned). Default 100. q: Search query - matches name/email substring. location_id: Filter to a single location (multi-location clubs only). |
| get_memberA | Fetch a single member's full profile by id. Use when: "show member 12345's profile", "what membership tier does Sarah have?". Returns the full record including family, membership, contact info, and account status. |
| create_memberA | Create a new club member. Use when: "add Jane Doe to the club", "register a new member". Args: first_name: Member's first name (required). last_name: Member's last name (required). email: Primary email - used for login (required). phone: Optional phone number. location_id: Home location for multi-location clubs. notes: Internal admin notes. |
| update_memberA | Update an existing member. Partial updates are supported. Use when: "change Jane's phone number", "fix typo in member 12345 email". Only fields passed in are updated. |
| delete_memberA | Remove a member from the club. Use with caution - often irreversible. Use when: "delete member 12345". Consider cancelling the membership instead - cancellation preserves the history while removing billing. |
| list_membershipsA | List memberships, optionally filtered by member or location. Use when: "what memberships are active?", "show member 12345's membership history", "list all memberships at location 1". |
| get_membershipA | Fetch a single membership by id - tier, status, dates, billing. Use when: "show membership 67890's full details". |
| create_membershipA | Assign a membership tier to a member. Use when: "give Jane a Gold membership starting today". Args: member_id: Target member id. tier: Membership tier name as configured in CourtReserve (e.g. "Gold", "Family", "Junior"). Exact strings depend on club configuration. start_date: ISO date (YYYY-MM-DD). Defaults to today. end_date: ISO date (YYYY-MM-DD). Open-ended if omitted. location_id: Location (multi-location clubs only). |
| update_membershipB | Update a membership tier, end date, or status. Use when: "extend membership 67890 to year-end", "change tier to Gold". |
| cancel_membershipA | Cancel (terminate) a membership. Preserves the historical record. Use when: "cancel membership 67890". Preferable to deleting the member outright - keeps the audit trail. |
| list_familiesC | List family accounts (linked members under a primary contact). Use when: "list all families", "find family accounts at our west location". |
| get_familyA | Fetch a single family account by id - includes linked members. Use when: "show family 555's profile - which members are linked?". |
| add_family_memberA | Link an existing member into a family account. Use when: "add Sarah to the Doe family account". Args: family_id: Target family id. member_id: Member to add to the family. relationship: Optional relationship string ("spouse", "child", etc.). |
| list_reservationsA | List court reservations, with optional filters by location, court, member, and date range. Use when: "what reservations are on court 3 this Saturday?", "show all reservations for member 12345 in the next 30 days". Args: skip: Paging offset. take: Page size (default 100). location_id: Filter to one location. court_id: Filter to one court. member_id: Filter to one member's reservations. start_date: ISO date (YYYY-MM-DD) lower bound. end_date: ISO date (YYYY-MM-DD) upper bound. |
| get_reservationA | Fetch a single reservation by id - full player list, court, time, cost. Use when: "show reservation 8888 - who booked it?". |
| create_reservationA | Create a new court reservation. Use when: "book court 3 for Sarah at 2pm for 90 minutes with John". Args: court_id: Target court id. start_time: ISO datetime (YYYY-MM-DDTHH:MM:SS) in club local time. duration_minutes: Reservation length in minutes. primary_member_id: Booking member id. additional_member_ids: Optional list of additional member ids (for doubles, group play, etc.). notes: Optional admin notes. |
| cancel_reservationA | Cancel (delete) a court reservation. Use when: "cancel reservation 8888". Sends a courtesy email to the primary member if CourtReserve is configured to do so. |
| list_eventsB | List events (clinics, lessons, tournaments, round robins, open play). Use when: "what events are happening next month?", "list all tournaments in Q3". |
| get_eventA | Fetch a single event by id - description, schedule, capacity, price. Use when: "show event 4444 - when does it start, what's the cost?". |
| list_event_registrationsB | List registrations (signups) for an event. Use when: "who's signed up for the Tuesday clinic?". |
| register_for_eventA | Register a member for an event. Use when: "sign Sarah up for the Tuesday clinic". Args: event_id: Target event id. member_id: Member to register. notes: Optional notes (partner name, skill level, etc.). |
| cancel_event_registrationA | Cancel a member's event registration. Use when: "pull Sarah out of the Tuesday clinic". |
| list_transactionsA | List payment transactions - charges, credits, refunds. Use when: "show me yesterday's revenue", "what did member 12345 spend this month?". Args: skip: Paging offset. take: Page size (default 100). location_id: Filter to one location. member_id: Filter to one member. start_date: ISO date lower bound. end_date: ISO date upper bound. |
| get_transactionA | Fetch a single transaction by id - amount, type, payment method, status. Use when: "show transaction 9999 - what was it for?". |
| list_courtsA | List courts at one or all locations. Use when: "what courts do we have at location 1?", "list all 12 courts". |
| get_courtA | Fetch a single court by id - surface type, location, hourly rate. Use when: "show court 5 - what's the surface and rate?". |
| list_locationsA | List the club's locations (sites / branches). Use when: "list all our club locations". Single-location clubs get a 1-item list. |
| get_locationA | Fetch a single location by id - address, hours, contact info. Use when: "show our downtown location's details". |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/sanjibani/courtreserve-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server