ENDPOINT 1
https://mcp.pga.com/mcp
MCP server metadata
- Name
- com.pga/pga-golf
- Version
- 1.0.0
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.
Known tools 4
search_golf_programsSearch for upcoming public PGA Coach programs (clinics, camps, classes, and other group events) near a location (required).
Inferred read-onlyget_golf_coach_availabilityRetrieve offering details and available lesson times for one specific coach.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.com-pga-pga-golf]
url = "https://mcp.pga.com/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"com-pga-pga-golf": {
"type": "http",
"url": "https://mcp.pga.com/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: com-pga-pga-golf
Remote MCP URL: https://mcp.pga.com/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"com-pga-pga-golf": {
"url": "https://mcp.pga.com/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"com-pga-pga-golf": {
"type": "http",
"url": "https://mcp.pga.com/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "com-pga-pga-golf",
"transport": "streamable-http",
"url": "https://mcp.pga.com/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Trust Data Available
BuiltWith Trust API v2 evidence for pga.com was fetched 2026-08-04T02:18:15.900Z and is being refreshed.
pga.com is assessed as Caution: Domain is currently showing placeholder (lorem ipsum) content.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.