Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

CourtReserve MCP by usefulapi

REMOTE · COURTRESERVE.USEFULAPI.IO

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

−44 this week 18 Trust /100

Last scanned (11 minutes ago)

Scores higher than 4% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Project Management

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security46
Transport & Reachability0
Schema Quality & AI Usability0
  • Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
  • Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
  • Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
  • Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified

Unverified: 5 categories

Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 1 Nov 26 −48
    • Endpoint reachability: reachable → not serving MCP ▼ security
    • Stability: 0.10 → unverified ▼ security
    • Tool safety: pass → unverified ▼ security
    • Authorization: pass → unverified ▼ security
    • Schema quality: 100 → unverified ▼ functional
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
  • 31 Oct 26 +3
    • Authorization: partial → pass ▲ security
    • MCP protocol: fail → pass ▲ functional
    • New prompt “review_court_schedules_and_availability” functional
    • New prompt “review_event_registrations_and_waitlists” functional
    • New prompt “summarize_club_revenue_and_membership” functional
    • MCP protocol version: 2025-06-18 → 2025-11-25 functional
    • Server version: 1.4.0 → 1.6.0 functional
    • Server version: 1.3.0 → 1.4.0 functional
    • Server version: 1.2.2 → 1.3.0 functional
  • 30 Oct 26 +1
    • Server version: 1.2.1 → 1.2.2 functional
    • Server version: 1.2.0 → 1.2.1 functional
  • 29 Oct 26 0
    • Stability: unverified → 0.03 ▲ functional
    • Server version: 1.1.0 → 1.2.0 functional
    • Server version: 1.0.0 → 1.1.0 functional
  • 28 Oct 26 62

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://courtreserve.usefulapi.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=usefulapi.io CN=WE1,O=Google Trust Services,C=US 13 Sept 2026 12 Dec 2026 ECDSA 256 ECDSA-SHA256 d9be3287b0fde9630e825ba1f79bff3f
SANs: usefulapi.io, *.usefulapi.io
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of courtreserve.usefulapi.io. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 38690 8 Verified
usefulapi.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Inconclusive

We could not reach the endpoint well enough to judge its authorisation posture.

Result Inconclusive
HTTP status 302

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://courtreserve.usefulapi.io/mcp Redirected 302 https://usefulapi.io/courtreserve/
http (plaintext) http://courtreserve.usefulapi.io/mcp Inconclusive 302 http://courtreserve.usefulapi.io/mcp
MCP tools · 23 exposed · ~3,761 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
courtreserve_court_utilization ~196

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.

NameTypeReqDescription
court_idsarray–Only these court ids (courtreserve_list_courts).
court_type_idsarray–Only these court type ids.
end_datestringyesLast day of the period (at most 7 days after the first).
event_tag_idsarray–Only these event tag ids.
event_type_idsarray–Only these event category ids (courtreserve_list_event_categories).
reservation_type_idsarray–Only these reservation type ids (courtreserve_list_reservation_types).
start_datestringyesFirst day of the period.

No output schema declared.

No examples provided.

courtreserve_get_court_availability ~159

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.

NameTypeReqDescription
court_type_idinteger–Only courts of this type (see the court type in courtreserve_list_courts).
datestring–One date, yyyy-MM-dd. Use this OR from_date + to_date.
from_datestring–First date of a range, yyyy-MM-dd.
to_datestring–Last date of the range, yyyy-MM-dd (at most 31 days after from_date).

No output schema declared.

No examples provided.

courtreserve_get_member_reservations ~201

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.

NameTypeReqDescription
end_datestring–Only reservations ending on or before this club-local date/time (default: open-ended).
external_idstring–The member's id in your own system (the member's External Id).
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.
organization_member_idinteger–CourtReserve member id (courtreserve_list_members). One of this or external_id is required.
start_datestring–Only reservations ending on or after this club-local date/time (default: now).

No output schema declared.

No examples provided.

courtreserve_list_cancelled_event_registrations ~139

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.

NameTypeReqDescription
cancelled_fromstring–Cancelled on or after.
cancelled_tostring–Cancelled on or before.
event_fromstring–Events on or after.
event_tostring–Events on or before.
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.

No output schema declared.

No examples provided.

courtreserve_list_cancelled_reservations ~143

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.

NameTypeReqDescription
cancelled_fromstring–Cancelled on or after.
cancelled_tostring–Cancelled on or before.
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.
reservations_fromstring–Reservations starting on or after.
reservations_tostring–Reservations starting on or before.

No output schema declared.

No examples provided.

courtreserve_list_checkins ~180

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.

NameTypeReqDescription
checkin_fromstring–Checked in on or after.
checkin_tostring–Checked in on or before.
include_court_bookingboolean–Include court bookings (default true).
include_eventsboolean–Include events (default true).
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.
reservations_fromstring–Reservations starting on or after.
reservations_tostring–Reservations starting on or before.

No output schema declared.

No examples provided.

courtreserve_list_courts ~82

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.

NameTypeReqDescription
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.

No output schema declared.

No examples provided.

courtreserve_list_event_categories ~111

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

NameTypeReqDescription
category_idinteger–Only this category id.
is_publicboolean–Only public (true) or only non-public (false) categories; omit for all.
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.

No output schema declared.

No examples provided.

courtreserve_list_event_registrations ~172

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.

NameTypeReqDescription
event_fromstring–Events on or after.
event_tostring–Events on or before.
include_courtsboolean–Add court information.
include_partner_infoboolean–Add partner(s) for team events.
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.
registered_fromstring–Registered on or after.
registered_tostring–Registered on or before.

No output schema declared.

No examples provided.

courtreserve_list_event_waitlist ~160

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.

NameTypeReqDescription
event_fromstring–Events on or after.
event_tostring–Events on or before.
include_courtsboolean–Add court information.
include_partner_infoboolean–Add partner(s) for team events.
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.
registered_fromstring–Registered on or after.
registered_tostring–Registered on or before.

No output schema declared.

No examples provided.

courtreserve_list_events ~196

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.

NameTypeReqDescription
category_idinteger–Only this event category (courtreserve_list_event_categories).
end_datestring–Events up to this club-local date/time.
include_price_infoboolean–Add prices (default true).
include_rating_restrictionsboolean–Add rating restrictions.
include_tagsboolean–Add event tags.
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.
start_datestring–Events from this club-local date/time.
statusstring–Event status (default Active).

No output schema declared.

No examples provided.

courtreserve_list_families ~87

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

NameTypeReqDescription
family_idinteger–Only this family (organizationMemberFamilyId).
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.

No output schema declared.

No examples provided.

courtreserve_list_league_sessions ~154

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.

NameTypeReqDescription
include_game_daysboolean–Add each session's game days.
include_playersboolean–Add each session's registered players (use with one session).
league_idinteger–Only this league's sessions.
pageinteger–Page number, from 1 (default 1). Pass the previous reply's next_page.
page_sizeinteger–Sessions per page, 1-200 (default 100).
session_idinteger–Only this session.

No output schema declared.

No examples provided.

courtreserve_list_leagues ~125

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.

NameTypeReqDescription
include_sessionsboolean–Add each league's sessions (default true).
league_idinteger–Only this league id.
pageinteger–Page number, from 1 (default 1). Pass the previous reply's next_page.
page_sizeinteger–Leagues per page, 1-200 (default 100).

No output schema declared.

No examples provided.

courtreserve_list_members ~373

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.

NameTypeReqDescription
created_fromstring–Only members created at or after this club-local date-time (with created_to: at most 30 days apart).
created_or_updated_fromstring–Only members created or changed at or after this club-local date-time (with the end: at most 31 days apart).
created_or_updated_tostring–Only members created or changed at or before this club-local date-time.
created_tostring–Only members created at or before this club-local date-time.
emailstring–Exact email address (no partial matches).
family_idinteger–Only the members of this family (organizationMemberFamilyId).
include_custom_fieldsboolean–Add the club's user-defined fields.
include_marketing_consentboolean–Add current email/text opt-in and the consent history.
include_ratingsboolean–Add skill ratings (DUPR, UTR and so on).
organization_member_idinteger–Only this member id.
pageinteger–Page number, from 1 (default 1). Pass the previous reply's next_page.
page_sizeinteger–Members per page, 1-200 (default 50).
phone_numberstring–Phone number.

No output schema declared.

No examples provided.

courtreserve_list_membership_types ~97

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.

NameTypeReqDescription
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.
membership_type_idinteger–Only this membership type id.

No output schema declared.

No examples provided.

courtreserve_list_promo_codes ~94

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.

NameTypeReqDescription
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.
promo_code_idinteger–Only this promo code id.

No output schema declared.

No examples provided.

courtreserve_list_reservation_types ~78

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.

NameTypeReqDescription
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.

No output schema declared.

No examples provided.

courtreserve_list_reservations ~200

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.

NameTypeReqDescription
created_or_updated_fromstring–Reservations created or changed on or after.
created_or_updated_tostring–Reservations created or changed on or before.
include_custom_fieldsboolean–Add user-defined fields.
include_ratingsboolean–Add player ratings.
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.
reservations_fromstring–Reservations starting on or after.
reservations_tostring–Reservations starting on or before.

No output schema declared.

No examples provided.

courtreserve_list_transactions ~261

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.

NameTypeReqDescription
include_promo_infoboolean–Add the promo codes each fee used.
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.
only_paidboolean–Only paid transactions.
only_unpaidboolean–Only unpaid transactions.
payment_typesstring–Comma-separated payment types, for example 'Cash,Credit Card,Balance'.
reservation_fromstring–Reservations starting on or after.
reservation_tostring–Reservations starting on or before.
transaction_fromstring–Transactions on or after.
transaction_tostring–Transactions on or before.
transaction_typesstring–Comma-separated transaction types, for example 'Fee,Membership Fee,Payment' (the vendor's own names).

No output schema declared.

No examples provided.

courtreserve_membership_report ~269

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.

NameTypeReqDescription
assignment_typestring–Only family or only individual memberships (default both).
canceled_fromstring–Canceled on or after.
canceled_tostring–Canceled on or before.
end_fromstring–Membership ends on or after.
end_tostring–Membership ends on or before.
membership_type_idsarray–Only these membership type ids (courtreserve_list_membership_types).
next_payment_fromstring–Next payment on or after.
next_payment_tostring–Next payment on or before.
pageinteger–Page number, from 1 (default 1). Pass the previous reply's next_page.
page_sizeinteger–Rows per page, 1-500 (default 100).
start_fromstring–Membership started on or after.
start_tostring–Membership started on or before.

No output schema declared.

No examples provided.

courtreserve_sales_summary ~109

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.

NameTypeReqDescription
include_promo_infoboolean–Add the promo codes each fee used.
payment_fromstringyesFirst day of the payment period.
payment_tostringyesLast day of the payment period (at most 31 days after the first).

No output schema declared.

No examples provided.

courtreserve_whos_here ~175

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.

NameTypeReqDescription
cancelled_onlyboolean–Only cancelled reservations (wins over include_cancelled).
endstringyesEnd of the window, club-local yyyy-MM-ddTHH:mm:ss.
include_cancelledboolean–Also return cancelled reservations.
limitinteger–Most rows to return (default 100, max 500). The reply says when rows were left out.
startstringyesStart of the window, club-local yyyy-MM-ddTHH:mm:ss.

No output schema declared.

No examples provided.

Install

How do I install the CourtReserve MCP by usefulapi server?

CourtReserve MCP by usefulapi is a hosted endpoint at https://courtreserve.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · courtreserve.usefulapi.io

# add to Claude Code
claude mcp add --transport http io-usefulapi-courtreserve 'https://courtreserve.usefulapi.io/mcp'
Common questions

What is the CourtReserve MCP by usefulapi server?

CourtReserve MCP by usefulapi is listed in the public MCP registry as io.usefulapi/courtreserve. Read club members, court availability, reservations, events, attendance and revenue reports. This page covers its hosted endpoint (https://courtreserve.usefulapi.io/mcp).

Is the CourtReserve MCP by usefulapi server safe to use?

CourtReserve MCP by usefulapi scores 18 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the CourtReserve MCP by usefulapi server expose?

CourtReserve MCP by usefulapi exposes 23 tools: courtreserve_list_members, courtreserve_get_member_reservations, courtreserve_list_families, courtreserve_list_membership_types, courtreserve_membership_report, and 18 more. Their descriptions and schemas cost roughly 3,761 tokens of context every time the server is loaded.

Does the CourtReserve MCP by usefulapi server require authentication?

Its publisher declares no required credentials for CourtReserve MCP by usefulapi. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.

Is the CourtReserve MCP by usefulapi server still maintained?

CourtReserve MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.