Connect Pga Golf to any MCP client in minutes
https://mcp.pga.com/mcpOperate Pga Golf? You can take over the listing's metadata.
Take over this listing's metadata — name, description, category, logo, website, contact email, and skill content. Verification is a 6-digit code we email to one of the maintainer addresses your server already publishes in /.well-known/security.txt or /.well-known/mcpbundles.json. Free, takes about a minute.
Request removal from the MCPBundles directory. We stop publishing this listing on mcpbundles.com.
MCPBundles publishes this directory for MCP discovery. Except where we host or operate an offering, third-party services run under their own terms. Product and company names on this page are used in a descriptive, identifying way (including under nominative fair use where applicable); they remain the property of their owners. Nothing here grants you rights in those marks, and nothing here is an offer to sell a third party's services. Terms
Connect your account, then chat with AI to run tools.
PGA of America golf platform. Provides access to golf course directories, tournament information, player statistics, and tee time booking.
This listing identifies a third-party MCP server. MCPBundles is not affiliated with, sponsored by, or endorsed by the service or its operator unless stated on this page.
https://mcp.pga.com/mcpOpens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.
Browse all toolsLive probe refreshed Nov 2, 2026 · Endpoint host mcp.pga.com
Domain knowledge for Pga Golf — workflow patterns, data models, and gotchas for your AI agent.
The PGA of America MCP server is designed to provide AI agents and LLMs with the insight and expertise of over 31,000 certified PGA golf professionals through a suite of specialized tools. Use this server to find a golf coach, search for programs, book a lesson, and improve your game. ## Tool Selection Guardrails - Use search_golf_coaches when the user is trying to find, browse, or compare coaches for private lessons in a location. Coach results also include a short teaser of upcoming public programs those coaches host. - Use search_golf_programs when the user is trying to find clinics, camps, classes, group events, or other PGA Coach programs in a location. - Use get_golf_coach_availability only when a specific coach has already been identified (via coach profile URL, known slug, or prior selection from search_golf_coaches or search_golf_programs results). - If the user asks for availability but has not selected a coach, run search_golf_coaches first (or reuse a coach already identified from search_golf_programs) and ask the user to choose a coach. - If the user request is unrelated to golf lesson/program discovery or lesson booking (for example weather, travel booking, or general sports trivia), do not call these tools. - Never display or mention internal identifiers to the user (for example coach slug, offering id/offeringId, program id, facility IDs, or pagination cursors). Use these values only for tool calls. ## Workflows ### Find a program 1. Collect a location if the user has not provided one. 2. Call search_golf_programs with searchLocation (and optional searchRadius; default 50 miles). 3. Present program titles, dates, prices, hosting coaches, and facilities. Do not expose internal identifiers. 4. Use the top-level coaches and facilities arrays to summarize who is teaching and where programs are held. 5. Direct the user to each program's programUrl to view details and register. Offer coach profileUrl / bookingUrl when helpful. 6. If the user wants more results from the same query, call search_golf_programs again with paginationCursor from the prior response while preserving the original location and radius. Additional pages reuse the collected nearby programs and do not repeat GraphQL discovery. ### Book a lesson Use the following tool-call sequence to successfully book a lesson: 1. Collect missing prerequisites: - If a coach was already identified from search_golf_programs, reuse that coach slug and skip to availability. - If no location is provided and no coach is selected, ask for a location before calling search_golf_coaches. - If the user wants more coach results from the same query, call search_golf_coaches again with paginationCursor from the prior response while preserving the original location and radius. 2. If no coach is selected yet, call search_golf_coaches with the user's location (searchLocation, optionally searchRadius) to find candidate coaches and offerings. 3. Present coaches and offering titles to the user, but do not expose internal identifiers. Save the selected coach slug and desired offering context for internal use only. 4. Resolve references to selected coaches (for example "Anthony" or "him") to the chosen coach slug before continuing. If ambiguous, ask a clarifying question. 5. Call get_golf_coach_availability with the selected coach slug to retrieve up-to-date offering availability (availableTimes) and offering IDs. - If the user already selected a specific offering, pass its offeringId to scope results to that offering. 6. Let the user choose an offering and time: - Prefer the availability/search widgets when shown. When the user continues from a widget, read the selected booking from the widget/view model context (offeringId, startDateTime, title, coach, price) — treat that as their selection and continue in chat (do not send them back into widget forms). The visible follow-up message is human-friendly only; do not expect internal IDs in chat text. - Chat-only booking (no widget interaction) is also supported: ask the user to choose one available time from the tool results. - Resolve the offering by title from prior search or availability context when needed. If multiple offerings share a similar name, ask a clarifying question before booking. - Match the chosen date/time to one of the returned availableTimes ISO8601 values for startDateTime. 7. Collect required participant details in chat (natural language), then call book_golf_lesson: - Ask who the lesson is for. If they are booking for someone other than themselves, or age is unclear, ask whether that person is 17 or younger. - Adult (18+): firstName, lastName, email, optional phone - Junior (17 or younger): firstName, lastName, guardianFirstName, guardianLastName, email, optional phone - Call book_golf_lesson with: - offeringId (from widget/view model context or availability/search result, never user-entered text) - startDateTime (exact ISO8601 from widget/view model context, or one of the returned availableTimes) - student object matching the adult or junior schema 8. Handle booking outcome: - If lesson.confirmationCode is returned, confirm the booking and share the confirmation code. - If continuationUrl is returned, direct the user to that URL to complete payment or other required steps. - If only message indicates failure, report it and help the user choose another time or offering.
Search Golf Coaches
Search for qualified PGA golf coaches listed on pga.com/coach in the specified location (required).
Search Golf Programs
Search for upcoming public PGA Coach programs (clinics, camps, classes, and other group events) near a location (requir…
Get Golf Coach Availability
Retrieve offering details and available lesson times for one specific coach.
Book Golf Lesson
Request to book a golf lesson for a specific coach's offering.
[
{
"name": "search_golf_coaches",
"title": "Search Golf Coaches",
"annotations": {
"readOnlyHint": true
},
"description": "Search for qualified PGA golf coaches listed on pga.com/coach in the specified location (required).\nUse this tool when the user asks to find, browse, or compare coaches for private lessons in a location.\nFor location-first discovery of clinics, camps, classes, or other group programs, use `search_golf_programs` instead.\nIf the user asks for availability for a specific coach, use `get_golf_coach_availability` instead.\nInternal record identifiers (for example coach `slug` and offering `id`) are for tool calls only and must never be shown or mentioned to the user.\n- Search results include the coach's profile information, private-lesson offerings, pricing, and a short teaser of upcoming public programs they host (capped at 2). For location-first program discovery, use `search_golf_programs`.\n- Use that program context to recommend which group offering best fits the golfer when relevant; present upcoming programs when available.\n- Results are ordered by proximity to the search location, so list them to the user in this order.\n- Results are paginated, so use the pagination cursor provided at the end of the response to retrieve the next page of results.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"searchLocation"
],
"properties": {
"searchRadius": {
"type": "number",
"default": 25,
"minimum": 0,
"description": "Search radius in miles from `searchLocation`. Use 25 by default unless the user requests a different radius."
},
"searchLocation": {
"type": "string",
"description": "Required location used to find nearby coaches. Accepts city/state, ZIP code, full address, or latitude/longitude coordinates."
},
"paginationCursor": {
"type": "string",
"description": "Pagination cursor from a prior `search_golf_coaches` response. Use only when fetching additional pages of the same search."
}
}
}
},
{
"name": "search_golf_programs",
"title": "Search Golf Programs",
"annotations": {
"readOnlyHint": true
},
"description": "Search for upcoming public PGA Coach programs (clinics, camps, classes, and other group events) near a location (required).\nUse this tool when the user asks to find programs, clinics, camps, classes, or group events — not private one-on-one lessons.\nFor private lesson coaches, use `search_golf_coaches` instead.\nInternal record identifiers (for example program `id` and coach `slug`) are for tool calls only and must never be shown or mentioned to the user.\n- Search results include program details plus the hosting coach and facility for each program.\n- The response also includes top-level `coaches` and `facilities` arrays summarizing the unique coaches and venues in the result set — always present those to the user.\n- Results are ordered by program start instant and filtered to the requested radius.\n- Discovery uses nearby PGA Coach profiles (nearest 20 in the radius), then loads up to 30 upcoming public programs per coach in a 180-day window in one batched GraphQL request. Facility coordinates still have to fall inside the radius.\n- Results are paginated. The pagination cursor carries the remaining nearby programs so additional pages do not repeat GraphQL discovery. Reuse that cursor with the original location and radius.\n- Direct golfers to the program URL to view details and register. Coach profile and booking URLs are also included when the golfer wants to learn more about the coach.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"searchLocation"
],
"properties": {
"searchRadius": {
"type": "number",
"default": 50,
"minimum": 0,
"description": "Search radius in miles from `searchLocation`. Use 50 by default unless the user requests a different radius."
},
"searchLocation": {
"type": "string",
"description": "Required location used to find nearby PGA Coach programs. Accepts city/state, ZIP code, full address, or latitude/longitude coordinates."
},
"paginationCursor": {
"type": "string",
"description": "Pagination cursor from a prior `search_golf_programs` response. Use only when fetching additional pages of the same search (same location and radius)."
}
}
}
},
{
"name": "get_golf_coach_availability",
"title": "Get Golf Coach Availability",
"annotations": {
"readOnlyHint": true
},
"description": "Retrieve offering details and available lesson times for one specific coach.\nUse this when the user asks for schedule, openings, or available times for a known coach.\nIf the user has not selected a coach yet, call `search_golf_coaches` first (or reuse a coach already identified from `search_golf_programs`).\nCoach `slug` and offering `id` values are internal identifiers and must never be shown or mentioned to the user.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "Coach slug from a pga.com profile URL, prior `search_golf_coaches` results, or prior `search_golf_programs` results (e.g., `anthonyvitale`). Internal-only value; never display or mention it to the user."
},
"offeringId": {
"type": "string",
"description": "Optional offering ID to scope availability to a single offering. Use this when the user has already selected an offering."
}
}
}
},
{
"name": "book_golf_lesson",
"title": "Book Golf Lesson",
"annotations": {
"readOnlyHint": false
},
"description": "Request to book a golf lesson for a specific coach's offering.\n- `offeringId` is an internal identifier; never show or mention it to the user.\n- A continuation URL will be returned that you can direct the user to after calling this tool.\n- If the offering was booked automatically (e.g., free lesson or no prepayment required), the confirmation code will also be included.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"offeringId",
"startDateTime",
"student"
],
"properties": {
"student": {
"anyOf": [
{
"type": "object",
"required": [
"type",
"firstName",
"lastName",
"email"
],
"properties": {
"type": {
"type": "string",
"const": "adult"
},
"email": {
"type": "string",
"description": "The email address of the student booking the lesson."
},
"phone": {
"type": "string",
"description": "The phone number of the student booking the lesson."
},
"lastName": {
"type": "string",
"description": "The last name of the student booking the lesson."
},
"firstName": {
"type": "string",
"description": "The first name of the student booking the lesson."
}
}
},
{
"type": "object",
"required": [
"type",
"firstName",
"lastName",
"guardianFirstName",
"guardianLastName",
"email"
],
"properties": {
"type": {
"type": "string",
"const": "junior"
},
"email": {
"type": "string",
"description": "The email address of the student booking the lesson."
},
"phone": {
"type": "string",
"description": "The phone number of the student booking the lesson."
},
"lastName": {
"type": "string",
"description": "The last name of the student booking the lesson."
},
"firstName": {
"type": "string",
"description": "The first name of the student booking the lesson."
},
"guardianLastName": {
"type": "string",
"description": "The last name of the guardian booking the lesson."
},
"guardianFirstName": {
"type": "string",
"description": "The first name of the guardian booking the lesson."
}
},
"description": "The contact information for the student participating in the lesson. Student type can be either 'adult' or 'junior'. If the student is a junior, the guardian's information is also required."
}
]
},
"offeringId": {
"type": "string",
"description": "Internal offering record ID to book a lesson for. Never display or mention this identifier to the user."
},
"startDateTime": {
"type": "string",
"description": "The start date and time of the lesson in ISO 8601 format."
}
}
}
}
]PGA of America golf platform. Provides access to golf course directories, tournament information, player statistics, and tee time booking. It provides MCP tools that your client discovers when it connects (this page may not list every tool name) that AI agents can use through the Model Context Protocol (MCP).
Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/pga-golf-mcp. Authentication is handled automatically.
© 2026 ThinkChain Inc. All rights reserved.
Usage on MCPBundles
Pga Golf is a remote MCP server. The live tool list is supplied by the server when your MCP client connects, so the count is not fixed on this public page. After you connect in MCPBundles Studio or your client, you will see the tools your session can call. A SKILL.md is still included to guide your agent on capabilities and workflows.
Pga Golf uses API Key. Pga Golf requires credentials. Connect via MCPBundles and authentication is handled automatically.
MCPBundles is an independent platform built on the open Model Context Protocol standard. MCPBundles is not affiliated with, sponsored by, or endorsed by Anthropic PBC.
Other MCP servers in this category from the directory index
Five monsters. One secret feeling. Play Hidden Feelings free with a friend or the Monster. No wallet...