Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
COURTRESERVE_PASSWORDYesYour CourtReserve API password
COURTRESERVE_USERNAMEYesYour CourtReserve API username (format: Org_<numeric>)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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