CourtReserve MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.9.4Updated Nov 7, 2026

Read club members, court availability, reservations, events, attendance and revenue reports.

The publisher's own server: Ably MCP by usefulapi

Overview

AI-generated overview

Read-only access to a CourtReserve club account: members, court availability, reservations, events, attendance and revenue reports, hosted as a remote MCP…

What you can do
  • Look up members, families, membership types and membership reports with payment and cancellation dates
  • Check court availability, courts, reservation types, active and cancelled reservations, who is booked in a window, and court utilization
  • Browse event categories, calendar events, registrations, waitlists and cancelled registrations
  • Review check-ins, transactions, sales summaries, promo codes, leagues and league sessions
  • Check monthly tool-call usage, request a missing feature, and upgrade or cancel the paid plan
When to use it
Useful for club staff, managers or owners who want to ask an assistant questions about their CourtReserve data, such as free courts at a given time, memberships expiring soon, clinic sign-ups and waitlists, or revenue and attendance reports, without opening the admin UI.
Requirements
A remote MCP endpoint added by URL only; sign-in is via OAuth with the user's own CourtReserve credentials. No API key or Authorization header is configured. The CourtReserve account's roles and permissions determine which reports are accessible. A free tier allows 50 tool calls per month; paid plans are billed per connected account.
Before you install
The login page asks for CourtReserve account credentials, so connect only the account you intend to expose. Member data returned includes names, emails, phone numbers, family details and payment and transaction information, which is sent to the assistant and the model provider. Meta tools can start a paid Stripe subscription or cancel it; cancellation runs to the end of the paid period with no refund for the current period. The listed tools are read-only, but the server's instructions mention…

Installation

In SourceWeft

  1. Open CourtReserve MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fcourtreserve/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "courtreserve-by-usefulapi": {
      "type": "http",
      "url": "https://courtreserve.usefulapi.io/mcp"
    }
  }
}

README

CourtReserve MCP by usefulapi

Connect at https://courtreserve.usefulapi.io/mcp.

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://courtreserve.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http courtreserve https://courtreserve.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "courtreserve": {      "url": "https://courtreserve.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your CourtReserve credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/courtreserve/

Connect your CourtReserve credentials to access your account through usefulapi.

Tools

ToolTypeWhat it does
courtreserve_list_membersreadList members
courtreserve_get_member_reservationsreadGet a member's reservations
courtreserve_list_familiesreadList families
courtreserve_list_membership_typesreadList membership types
courtreserve_membership_reportreadMembership report
courtreserve_list_courtsreadList courts
courtreserve_list_reservation_typesreadList reservation types
courtreserve_get_court_availabilityreadGet court availability
courtreserve_list_reservationsreadList active reservations
courtreserve_list_cancelled_reservationsreadList cancelled reservations
courtreserve_whos_herereadWho is here
courtreserve_court_utilizationreadCourt utilization
courtreserve_list_event_categoriesreadList event categories
courtreserve_list_eventsreadList events
courtreserve_list_event_registrationsreadList event registrations
courtreserve_list_event_waitlistreadList event waitlist
courtreserve_list_cancelled_event_registrationsreadList cancelled event registrations
courtreserve_list_checkinsreadList check-ins
courtreserve_list_transactionsreadList transactions
courtreserve_sales_summaryreadSales summary
courtreserve_list_promo_codesreadList promo codes
courtreserve_list_leaguesreadList leagues
courtreserve_list_league_sessionsreadList league sessions
courtreserve_usage_statusmetaUsage status (free-tier meter)
courtreserve_request_featuremetaRequest a missing feature
courtreserve_upgrademetaUpgrade to Pro or Pro+
courtreserve_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per connected account)$9/mo or $90/yr (2 months free)10,000 tool calls / month

Pro covers this server only. Subscribe with courtreserve_upgrade (it returns a Stripe Checkout link). Cancel any time with courtreserve_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running courtreserve_upgrade before then undoes the cancel. Or write to [email protected].

License

Source: servers/courtreserve/README.md at commit 4046075

Tools

23

courtreserve_list_members

List members

List the club's members (name, email, phone, membership type and status, start/end/next payment dates, family id). Filter by member id, family, exact email, phone or the created (at most 30 days) / created-or-updated (at most 31 days) time. Paged: pass next_page back as page. PIN codes and SSO links are not returned. Needs the Member role (Read). GET /api/v1/member/get.

Parameterspageemailfamily_idpage_sizecreated_tocreated_fromphone_numberinclude_ratingscreated_or_updated_toinclude_custom_fieldsorganization_member_idcreated_or_updated_from+1 more

courtreserve_get_member_reservations

Get a member's reservations

A member's upcoming (or dated) court bookings and event registrations: type, start/end, courts, event name and players. For a family member the reply covers the whole family. Give the member id or your own external id. Needs the Member role (Read). GET /api/v1/member/reservations.

Parameterslimitend_datestart_dateexternal_idorganization_member_id

courtreserve_list_families

List families

List family accounts (family id, name, number, members and membership). Needs the Family role (Read). GET /api/v1/family/get.

Parameterslimitfamily_id

courtreserve_list_membership_types

List membership types

The club's membership types (id, name, price, billing and status). Use the ids to filter the membership report. Needs the MembershipType role (Read). GET /api/v1/membershiptype/get.

Parameterslimitmembership_type_id

courtreserve_membership_report

Membership report

The Membership report: one row per member or family membership with status, billing cadence, start/end, next payment and cancellation history. Filter by type, assignment (family or individual) and the start, end, next-payment or cancellation dates. Paged. Needs the Membership Report role (Read). GET /api/v1/membershipreport/list.

Parameterspageend_toend_fromstart_topage_sizestart_fromcanceled_tocanceled_fromassignment_typenext_payment_tonext_payment_frommembership_type_ids

courtreserve_list_courts

List courts

The club's courts: id, label, court type and order. Use the ids in court utilization and court blocks. Needs the Reservation role (Read). GET /api/v1/reservation/courts.

Parameterslimit

courtreserve_list_reservation_types

List reservation types

The club's reservation types (court booking, lesson, court block and so on) with ids. Needs the Reservation role (Read). GET /api/v1/reservation/reservationtypes.

Parameterslimit

courtreserve_get_court_availability

Get court availability

Court availability: each court's operating hours and the time slots already booked, for one date or a date range of at most 31 days (time zone of the club in the reply). Needs the Reservation role (Read). GET /api/v1/reservation/availability.

Parametersdateto_datefrom_datecourt_type_id

courtreserve_list_reservations

List active reservations

Active court reservations for a reservation period (the dates played) or a created/updated period, at most 31 days each: type, courts, start/end, players with contact details and what they owe/paid. Give at least one period. PIN codes are not returned. Needs the ReservationReport role (Read). GET /api/v1/reservationreport/listactive.

Parameterslimitinclude_ratingsreservations_toreservations_fromcreated_or_updated_toinclude_custom_fieldscreated_or_updated_from

courtreserve_list_cancelled_reservations

List cancelled reservations

Cancelled court reservations by the date they were cancelled or by the reservation period, at most 31 days each. Give at least one period. Needs the ReservationReport role (Read). GET /api/v1/reservationreport/listcancelled.

Parameterslimitcancelled_tocancelled_fromreservations_toreservations_from

courtreserve_whos_here

Who is here

Who is booked in a time window (for example today): member reservations and event registrations with the member, court and time, optionally including or only cancelled ones. The window can be at most 31 days. Needs the ReservationReport role (Read). GET /api/v1/reservationreport/whoisheretoday.

Parametersendrequiredlimitstartrequiredcancelled_onlyinclude_cancelled

courtreserve_court_utilization

Court utilization

Court utilization report (booked vs available time per time slot) for a period of at most 7 days, optionally for chosen courts, court types, event types, event tags or reservation types. Needs the ReservationReport role (Read). GET /api/v1/reservationreport/courtutilization.

Parametersend_daterequiredcourt_idsstart_daterequiredevent_tag_idscourt_type_idsevent_type_idsreservation_type_ids

courtreserve_list_event_categories

List event categories

Event categories (clinics, round robins, tournaments, open play...) with ids. Needs the EventCalendar role (Read). GET /api/v1/eventcalendar/categories.

Parameterslimitis_publiccategory_id

courtreserve_list_events

List events

Events on the club calendar between two dates: name, category, start/end, courts, instructors, capacity, registered and waitlist counts, price and rating limits. SSO links are not returned. Needs the EventCalendar role (Read). GET /api/v1/eventcalendar/eventlist.

Parameterslimitstatusend_datestart_datecategory_idinclude_tagsinclude_price_infoinclude_rating_restrictions

courtreserve_list_event_registrations

List event registrations

Active registrations for events, clinics and lessons with the member, event and what was paid. Give an event period or a registration period, at most 31 days each. Needs the EventRegistrationReport role (Read). GET /api/v1/eventregistrationreport/listactive.

Parameterslimitevent_toevent_fromregistered_toinclude_courtsregistered_frominclude_partner_info

courtreserve_list_event_waitlist

List event waitlist

People on event waitlists. Give an event period or a registration period, at most 31 days each. Needs the EventRegistrationReport role (Read). GET /api/v1/eventregistrationreport/listwaitlist.

Parameterslimitevent_toevent_fromregistered_toinclude_courtsregistered_frominclude_partner_info

courtreserve_list_cancelled_event_registrations

List cancelled event registrations

Cancelled event registrations by cancellation date or by event date, at most 31 days each. Give at least one period. Needs the EventRegistrationReport role (Read). GET /api/v1/eventregistrationreport/listcancelled.

Parameterslimitevent_toevent_fromcancelled_tocancelled_from

courtreserve_list_checkins

List check-ins

Check-in report: who checked in to court bookings and events, by check-in period or reservation period (at most 31 days each). Give at least one period. Role: the key's access to attendance data. GET /api/v1/attendancereport/checkin.

Parameterslimitcheckin_tocheckin_frominclude_eventsreservations_toreservations_frominclude_court_booking

courtreserve_list_transactions

List transactions

Transactions (fees, membership fees, payments, refunds...) by transaction date or reservation date: id, type, date, subtotal, tax, total, unpaid amount, payment type, category and the member's name, email and phone. Filter by type, paid/unpaid and payment type. Give at least one period. Needs the Transactions role (Read). GET /api/v1/transactions/list.

Parameterslimitonly_paidonly_unpaidpayment_typesreservation_totransaction_toreservation_fromtransaction_fromtransaction_typesinclude_promo_info

courtreserve_sales_summary

Sales summary

Detailed sales summary for a payment period of at most 31 days: paid fees plus refunds by category and payment type. Needs the Transactions role (Read). GET /api/v1/transactions/salessummarydetailed.

Parameterspayment_torequiredpayment_fromrequiredinclude_promo_info

courtreserve_list_promo_codes

List promo codes

The club's promo codes: code, name, type, value, dates, limits and what they apply to. Needs the PromoCodes role (Read). GET /api/v1/promocode/get.

Parameterslimitpromo_code_id

courtreserve_list_leagues

List leagues

The club's leagues, with their sessions (id and name) when include_sessions is true (default). Paged. Needs the League role (Read). GET /api/v1/league/get.

Parameterspageleague_idpage_sizeinclude_sessions

courtreserve_list_league_sessions

List league sessions

League sessions, for one league or one session, optionally with their game days and registered players. Paged. Needs the League role (Read). GET /api/v1/league/sessions.

Parameterspageleague_idpage_sizesession_idinclude_playersinclude_game_days

Version history

11
  1. v1.9.4LatestNov 7, 2026
  2. v1.8.3Nov 5, 2026
  3. v1.8.2Nov 5, 2026
  4. v1.8.1Nov 4, 2026
  5. v1.8.0Nov 3, 2026
  6. v1.7.1Nov 3, 2026
  7. v1.6.0Nov 1, 2026
  8. v1.4.0Oct 31, 2026
  9. v1.3.0Oct 31, 2026
  10. v1.2.2Oct 30, 2026
  11. v1.2.0Oct 30, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations