Skip to main content
Anyone can call every tool on the Private Clubs MCP server, without an account or API key. The tools only read the directory. Each result is one text item that holds JSON. Your app can call tools/list for the full input schemas. Private Clubs never returns membership fees. Account holders see fees on each club’s profile at theprivateclubs.com.

Search clubs

search_clubs (title “Search Private Clubs”) finds clubs by place, type, amenities and waitlist status. Nothing is required. With no state and no place in query, the search is worldwide. Returns up to 25 clubs, best known first, with no paging. Each club has id, name, slug, city, state, country, type, waitlist_status, holes, par, yardage, course_architect, amenities and url. Errors: Club search failed. Try again. when the search cannot run.

Get club details

get_club (title “Get Club Details”) returns the profile of one club. Returns one club with id, name, slug, city, state, country, type, description, waitlist_status, holes, par, yardage, course_architect, founded_year, total_members, amenities, website, phone, hero_image_url, url and membership_fees. The membership_fees field holds the fee message, never a figure. Errors: Club not found: <slug> when no listed club has that slug.

Get clubs by state

get_clubs_by_state (title “Get Clubs by State”) lists the clubs in one US state or Canadian province. It covers the US and Canada only. Returns up to 100 clubs, best known first. Each club has id, name, slug, city, state, country, type, waitlist_status, holes, par, yardage and url. Errors: Club search failed. Try again. when the search cannot run.

Compare clubs

compare_clubs (title “Compare Clubs”) puts two or three clubs side by side. It works for clubs in any country. Returns one entry per club with name, slug, location, url, waitlist_status, holes, par, yardage, course_architect, founded_year, amenities and website. The location field is the city and state in one string, such as New York, New York. When there is no state, the country takes its place, such as Sydney, Australia. A missing part is left out, and location is null when the city, state and country are all missing. Unknown slugs are left out without an error, and the order is not fixed. Errors: fewer than 2 or more than 3 slugs fail the input schema. Club search failed. Try again. means the comparison cannot run.

Get membership info

get_membership_info (title “Get Membership Info”) returns a club’s waitlist status and where to see its fees. Returns name, slug, type, waitlist_status, url and membership_fees. The membership_fees field is the fee message, followed by See <url> when the club has a profile link. Errors: Club not found: <slug> when no listed club has that slug.
Result from October 2026:

How the tools behave

Which clubs appear

Only listed public clubs appear. Drafts, closed or hidden listings and merged duplicates never do. search_clubs and get_clubs_by_state list the best known clubs first. When one club is listed twice in the same city and state, under names that differ only in words such as The, Golf, Club or and, or in the city’s name, the two tools show it once. A name made only of such words and the city’s name, such as Boca Raton Golf Club in Boca Raton, always keeps its own row. The url field links the club’s profile:
The region is the state or province for clubs in the US and Canada, and the country elsewhere. The field is null when a club has no region. Use the link as the tool returns it.

Place names

Use full names, such as Florida or Ontario. Two-letter codes such as FL also resolve, but the tool descriptions ask for full names. search_clubs also reads a place from a query that holds a comma, such as Naples, Florida:
  • Only the first part is searched, so Naples, Florida searches for Naples.
  • When the last part names a US state or Canadian province, by full name or by a two-letter code in capitals, such as Naples, FL, the search keeps to that state.
  • Otherwise, when the last part names a country the directory knows, such as Sydney, Australia, the search keeps to that country.
  • A state wins over a country with the same code or name, so Toronto, CA means California, not Canada, and Tbilisi, Georgia means the US state. For the country Georgia, use its code: Tbilisi, GE.
  • A two-letter last part in lower case, such as in, is ignored, and so is a last part that names no place.
  • A state you send wins over the place in query.
Outside the US and Canada, leave state empty and put the city and country in query, such as Sydney, Australia.

Types

type is an exact match on the club’s stored type, and case does not matter. The search_clubs description lists 13 types: golf, city, yacht, athletic, beach, equestrian, ski, automotive, aviation, outdoor, business, wellness and dining. Legacy types such as country_club stay separate, so golf does not include them. See Club types.

Amenities

Amenity values come back as each listing stores them. Most are snake_case codes such as golf_course or pro_shop, and some clubs store labels such as Spa. The match is exact and case-sensitive, so copy values from a live result before you filter.

Waitlist values

waitlist_status can be open, waitlist, by_invitation, invite_only, closed or unknown, and it can be null. See Waitlist values for what each one means.

Fees

No tool returns fees, as a figure or a range. get_club and get_membership_info return this message in membership_fees:

Errors

Tool errors come back as results marked isError, with one text item:
  • Club not found: <slug> from get_club and get_membership_info.
  • Club search failed. Try again. from search_clubs, get_clubs_by_state and compare_clubs.
  • Arguments that break the input schema, such as one slug in compare_clubs, return a result that starts with MCP error -32602: Input validation error.
Errors in the request itself, such as a body that is not valid JSON, are covered in Troubleshooting. Next, put the tools to work in Use cases, or install Private Clubs in another app.