PGA Golf MCP Server
The PGA of America's 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, book a lesson, and improve your game.
Technical Details
- PGA Golf MCP server follows the latest revision of the remote MCP spec.
- This server only supports the Streamable HTTP transport protocol, accessible at
https://mcp.pga.com/mcp.
Setup Instructions
Cursor
Add this MCP Server to Cursor by clicking the button below:
Alternatively, you can add the following entry to your .cursor/mcp.json file:
{
"mcpServers": {
"mcp-pga-com": {
"url": "https://mcp.pga.com/mcp"
}
}
}
Tools
search_golf_coaches
Search for qualified PGA golf coaches listed on pga.com/coach in the specified location.
- Search results include the coach's profile information, offerings, and pricing.
- Results are ordered by proximity to the search location.
- Results are paginated, so use the pagination cursor provided at the end of the response to retrieve additional results.
Parameters:
searchLocation(required): The location to search from to retrieve localized results. Can be a city, state, zip code, or latitude and longitude coordinates.searchRadius(optional): The radius in miles to search from the search location (default: 25)paginationCursor(optional): The cursor for pagination to retrieve additional results
Response:
Returns a list of bookable coaches with detailed information including:
- Coach profile information (slug, name, title, member type, location, bio, photo, profile URL, booking URL)
- Next available booking time (with timezone)
- Available lesson offerings with category, pricing, duration, location, timezone, and prepayment requirements
- Associated facilities
- Pagination information for retrieving additional results
Example:
// search_golf_coaches(searchLocation="Boston, Massachusetts")
Here are 3 golf coaches near the location provided:
{
"coaches": [
{
"slug": "alexander_socinski",
"name": "Alexander Socinski",
"title": "Golf Professional",
"memberType": "Member",
"location": {
"city": "Boston",
"state": "MA"
},
"bio": "PGA Professional with 10+ years of experience...",
"photo": "https://example.com/photo.jpg",
"profileUrl": "https://www.pga.com/coach/alexander_socinski",
"bookingUrl": "https://my.pga.com/coach/alexander_socinski/schedule",
"nextAvailability": {
"dateTime": "2025-01-15T10:00:00-05:00",
"timezone": "America/New_York"
},
"offerings": [
{
"id": "bba9e0e9-e4d7-4efa-bdee-9c30afb20118",
"title": "Individual Golf Lesson",
"category": "PRIVATE",
"location": "Lynx Fitness Club",
"timezone": "America/New_York",
"price": 85.00,
"duration": 60,
"requiresPrepayment": false
}
],
"facilities": [
{
"id": "ac4943db-c1e4-4f9a-a715-832ba4e8abce",
"name": "Lynx Fitness Club"
}
]
}
// ... additional coaches
],
"count": 3,
"hasNextPage": true,
"endCursor": "abc123"
}
get_golf_coach_availability
Retrieve offerings and availability for a specific golf coach.
Parameters:
slug(required): The unique identifier for the coach (obtained fromsearch_golf_coaches)
Response:
Returns the coach's profile and their available offerings, each with a list of bookable time slots:
- Coach profile information (slug, name, title, photo)
- Offerings with pricing, duration, location, timezone, prepayment requirements, and available times
Example:
// get_golf_coach_availability(slug="alexander_socinski")
Here are the offerings and availability for Alexander Socinski:
{
"coach": {
"slug": "alexander_socinski",
"name": "Alexander Socinski",
"title": "Golf Professional",
"photo": "https://example.com/photo.jpg",
"offerings": [
{
"id": "bba9e0e9-e4d7-4efa-bdee-9c30afb20118",
"title": "Individual Golf Lesson",
"location": "Lynx Fitness Club",
"timezone": "America/New_York",
"price": 85.00,
"duration": 60,
"requiresPrepayment": false,
"availableTimes": [
"2025-01-15T10:00:00-05:00",
"2025-01-15T11:00:00-05:00",
"2025-01-16T09:00:00-05:00"
]
}
]
}
}
book_golf_lesson
Request to book a golf lesson for a specific coach's offering. A continuation URL will be returned that the user can visit 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.
Parameters:
offeringId(required): The ID of the offering to book (obtained fromsearch_golf_coachesorget_golf_coach_availability)startDateTime(required): The start date and time of the lesson in ISO 8601 formatstudent(required): The student booking the lesson. Must be one of:- Adult student:
type:"adult"firstName(required): The student's first namelastName(required): The student's last nameemail(required): The student's email addressphone(required): The student's phone number
- Junior student:
type:"junior"firstName(required): The student's first namelastName(required): The student's last nameguardianFirstName(required): The guardian's first nameguardianLastName(required): The guardian's last nameemail(required): The student's email addressphone(required): The student's phone number
- Adult student:
Response:
Returns one of the following:
- Confirmation details and a continuation URL if the lesson was booked successfully
- A continuation URL if the lesson requires additional steps (e.g., payment) to complete booking
- An error message if the booking failed
Example:
// book_golf_lesson(offeringId="lesson_123", startDateTime="2025-01-15T10:00:00-05:00", student={type: "adult", firstName: "John", lastName: "Doe", email: "john@example.com", phone: "555-123-4567"})
Your lesson has been booked successfully!
{
"lesson": {
"confirmationCode": "ABC123XYZ"
},
"continuationUrl": "https://my.pga.com/booking/confirm/ABC123XYZ",
"message": "Your lesson has been booked successfully!"
}