PGA Golf
Server Details
PGA's official MCP Server for all things golf-related. Find a coach, play golf, improve your game.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.6/5 across 4 of 4 tools scored.
Each tool targets a distinct aspect of the golf coaching process: searching for coaches (private), searching for programs (group), checking a specific coach's availability, and booking a lesson. There is no overlap in functionality.
All tool names follow a consistent verb_noun pattern using snake_case (book_golf_lesson, get_golf_coach_availability, search_golf_coaches, search_golf_programs). The naming is predictable and clear.
With 4 tools, the server is tightly scoped to the core workflow of discovering and booking golf lessons. It is neither too sparse nor excessive for its purpose.
The tool set covers the main discovery and booking workflows well. However, it lacks tools for canceling or modifying bookings, which are common post-booking actions. This is a minor gap given the server's apparent focus on initial booking.
Available Tools
4 toolsbook_golf_lessonBook Golf LessonAInspect
Request to book a golf lesson for a specific coach's offering.
offeringIdis an internal identifier; never show or mention it to the user.A continuation URL will be returned that you can direct the user to after calling this tool.
If the offering was booked automatically (e.g., free lesson or no prepayment required), the confirmation code will also be included.
| Name | Required | Description | Default |
|---|---|---|---|
| student | Yes | ||
| offeringId | Yes | Internal offering record ID to book a lesson for. Never display or mention this identifier to the user. | |
| startDateTime | Yes | The start date and time of the lesson in ISO 8601 format. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lesson | No | Confirmation details for the booked lesson (if booked successfully). |
| message | Yes | A message describing the outcome of the booking. |
| continuationUrl | No | The URL to continue the booking flow after calling this tool. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations: it discloses that a continuation URL is returned, that a confirmation code may be included for automatic bookings, and that offeringId must never be shown to the user. These details help the agent understand the response flow and handle sensitive identifiers correctly. The annotations only indicate non-readonly, so this extra context is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear opening statement followed by three relevant bullet points. Every sentence adds value, and there is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (booking with different student types, internal IDs, and follow-up URLs), the description covers key aspects: the internal ID privacy rule, the continuation URL, and conditional confirmation codes. The existence of an output schema reduces the need to explain return values. It could mention prerequisites like checking availability, but the sibling tools imply that workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers most parameter meanings (student details, startDateTime format, offeringId as internal record ID). The description adds crucial usage semantics by emphasizing that offeringId is internal and must never be displayed or mentioned to the user, and by clarifying that a continuation URL will be returned. This goes beyond schema descriptions and helps with correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: requesting to book a golf lesson for a specific coach's offering. It uses a specific verb and resource, and the context of booking a lesson distinguishes it from sibling tools like get_golf_coach_availability and search_golf_coaches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool—when booking a lesson for a specific offering—and what to do after calling it (direct the user to the continuation URL). It does not explicitly mention alternatives or exclusions, but the purpose is unambiguous enough that an agent can select it appropriately alongside the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_golf_coach_availabilityGet Golf Coach AvailabilityARead-onlyInspect
Retrieve offering details and available lesson times for one specific coach.
Use this when the user asks for schedule, openings, or available times for a known coach.
If the user has not selected a coach yet, call search_golf_coaches first (or reuse a coach already identified from search_golf_programs).
Coach slug and offering id values are internal identifiers and must never be shown or mentioned to the user.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | 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 | No | Optional offering ID to scope availability to a single offering. Use this when the user has already selected an offering. |
Output Schema
| Name | Required | Description |
|---|---|---|
| coach | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare `readOnlyHint: true` and `destructiveHint: false`, clearly signaling this is a read-only, non-destructive operation. The description adds value by clarifying it retrieves 'available lesson times' and 'offering details', and it discloses the operational caveat that the slug and offeringId are internal identifiers not to be shown. No contradictions with annotations are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of only four sentences with no waste. Critical information is front-loaded: the purpose is stated in the first sentence, with usage constraints and security rules following immediately. Every sentence earns its place by addressing a distinct aspect (purpose, use case, prerequisites, security constraint).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the input schema has 100% coverage, an output schema exists, and annotations fully cover the tool's safety profile, the description is complete. The output schema presumably defines the return shape for availability and offering details, so the description does not need to expand on that. The description effectively sets context on when to use the tool and how to handle internal identifiers, leaving no gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both `slug` and `offeringId` having detailed descriptions in the schema. The tool description does not add additional parameter-level information beyond what the schema provides, which aligns with the baseline score of 3. The description does inform usage context for the parameters (e.g., using slug from prior search results), but that is more about usage guidelines than parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'offering details and available lesson times for one specific coach'. It uses a specific verb ('Retrieve') and resource ('offering details and available lesson times'), and the context of 'one specific coach' effectively distinguishes it from sibling tools like `search_golf_coaches` which searches for coaches rather than their availability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('when the user asks for schedule, openings, or available times for a known coach') and provides clear guidance on what to do if the coach is not yet selected, directing the agent to call `search_golf_coaches` or reuse results from `search_golf_programs`. It also notes that internal identifiers (slug and offeringId) 'must never be shown or mentioned to the user', which is a crucial usage constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_golf_coachesSearch Golf CoachesARead-onlyInspect
Search for qualified PGA golf coaches listed on pga.com/coach in the specified location (required).
Use this tool when the user asks to find, browse, or compare coaches for private lessons in a location.
For location-first discovery of clinics, camps, classes, or other group programs, use search_golf_programs instead.
If the user asks for availability for a specific coach, use get_golf_coach_availability instead.
Internal record identifiers (for example coach slug and offering id) are for tool calls only and must never be shown or mentioned to the user.
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.Use that program context to recommend which group offering best fits the golfer when relevant; present upcoming programs when available.
Results are ordered by proximity to the search location, so list them to the user in this order.
Results are paginated, so use the pagination cursor provided at the end of the response to retrieve the next page of results.
| Name | Required | Description | Default |
|---|---|---|---|
| searchRadius | No | Search radius in miles from `searchLocation`. Use 25 by default unless the user requests a different radius. | |
| searchLocation | Yes | Required location used to find nearby coaches. Accepts city/state, ZIP code, full address, or latitude/longitude coordinates. | |
| paginationCursor | No | Pagination cursor from a prior `search_golf_coaches` response. Use only when fetching additional pages of the same search. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| coaches | Yes | |
| endCursor | Yes | |
| hasNextPage | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true (safe, read-only operation). The description adds valuable context beyond annotations: ordering by proximity, pagination behavior, that results are capped at 2 program teasers, and that internal record identifiers must be hidden from users. No contradictions are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the essential purpose, then usage guidelines, then behavioral details. It is reasonably concise for the amount of guidance provided, though the repeated sibling references could be slightly tighter. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and good annotations, the description covers all necessary aspects: what the tool does, when to use it vs siblings, ordering, pagination, and handling of internal identifiers. No gaps remain for the agent to make correct decisions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions for all parameters. The description amplifies understanding by clarifying that searchLocation is required and provides guidance on default searchRadius (25 miles unless user requests otherwise). It also explains the paginationCursor usage appropriately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and resource ('qualified PGA golf coaches listed on pga.com/coach'), clearly distinguishing its purpose from siblings. It explicitly states the required location and that results include profile info, pricing, and program teasers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance ('when the user asks to find, browse, or compare coaches for private lessons'), when-not-to-use alternatives ('use search_golf_programs for clinics/camps/classes; use get_golf_coach_availability for coach availability'), and even advises on presenting results to the user.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_golf_programsSearch Golf ProgramsARead-onlyInspect
Search for upcoming public PGA Coach programs (clinics, camps, classes, and other group events) near a location (required).
Use this tool when the user asks to find programs, clinics, camps, classes, or group events — not private one-on-one lessons.
For private lesson coaches, use search_golf_coaches instead.
Internal record identifiers (for example program id and coach slug) are for tool calls only and must never be shown or mentioned to the user.
Search results include program details plus the hosting coach and facility for each program.
The response also includes top-level
coachesandfacilitiesarrays summarizing the unique coaches and venues in the result set — always present those to the user.Results are ordered by program start instant and filtered to the requested radius.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| searchRadius | No | Search radius in miles from `searchLocation`. Use 50 by default unless the user requests a different radius. | |
| searchLocation | Yes | Required location used to find nearby PGA Coach programs. Accepts city/state, ZIP code, full address, or latitude/longitude coordinates. | |
| paginationCursor | No | Pagination cursor from a prior `search_golf_programs` response. Use only when fetching additional pages of the same search (same location and radius). |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| coaches | Yes | Unique coaches hosting the returned programs. Present these alongside the programs so golfers can see who is teaching. |
| programs | Yes | |
| endCursor | Yes | |
| facilities | Yes | Unique facilities hosting the returned programs. Present these alongside the programs so golfers can see where programs are held. |
| hasNextPage | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, establishing the tool is safe. The description adds rich behavioral details: discovery uses nearby PGA Coach profiles, loads up to 30 programs per coach in a 180-day window via batched GraphQL request, pagination cursor behavior, ordering by start instant, and the inclusion of top-level `coaches` and `facilities` arrays. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with front-loaded purpose, then usage guidance, then behavioral details, and finally pagination instructions. Each sentence is justified. It is slightly longer than necessary but remains clear and non-redundant. A minor improvement would be to trim redundant explanations of the pagination cursor already covered in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters, output schema exists, annotations present), the description covers purpose, usage, behavioral mechanics, pagination, and presentation instructions. It explains the internal discovery process, pagination reuse, and directs users to program URLs. No gaps are evident for an AI agent to correctly select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value for `searchLocation` by specifying accepted formats (city/state, ZIP, address, lat/lng). For `searchRadius` and `paginationCursor`, the schema already provides detailed descriptions; the description reinforces pagination behavior but does not add new parameter-specific semantics. Overall, it provides meaningful extra context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for 'upcoming public PGA Coach programs (clinics, camps, classes, and other group events) near a location.' It explicitly distinguishes from private lessons and names the sibling tool `search_golf_coaches` for that purpose. The verb 'search' and resource 'golf programs' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'Use this tool when the user asks to find programs, clinics, camps, classes, or group events — not private one-on-one lessons.' It also gives a clear alternative: 'For private lesson coaches, use `search_golf_coaches` instead.' This covers both positive and negative use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceOfficial MCP server for exerciseapi.dev — give your AI coding agent direct access to 2,198+ vetted exercises across 12 categories.432MIT
- AlicenseAqualityBmaintenanceOfficial MCP server for creating and managing AI UGC video ads. Browse assets, estimate credit costs, generate videos, and retrieve completed outputs through eleven typed tools.1169MIT

QA Touch MCP Serverofficial
AlicenseNot gradedqualityBmaintenanceOfficial MCP server for QA Touch, enabling AI assistants to manage test cases, defects, test runs, and more via natural language.85MIT- AlicenseAqualityBmaintenanceOfficial MCP Server for Indian Stock Market (NSE & BSE) equities, futures context, and option chains.46MIT