MCP-Server

Stymie Golf

io.github.ThatDudeFreak/stymie-golf
Commerce & Retail Karten & Standort Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Provides golf-course discovery, location-based course searches, scorecards, architect information, equipment searches, verified equipment deals, and golf-trip shortlists.

build_golf_trip
Build Golf Trip
AFTER find_nearby_courses, pass its center latitude/longitude, access and holes preferences, and number_of_courses to make a 1-4 course shortlist. You can also start directly with a plain-language location (place, station, address, or US ZIP). Optional tee yardage and slope ranges rank matching tees by fit plus straight-line distance; without tee preferences, courses are nearest-first and missing scorecards are retained. Returns ranked course picks with canonical Stymie URLs, reusable slugs, selection reasons, distance, access, holes, and published tee data when available. Public access excludes unknown/private courses; private picks require the golfer to confirm access. No booking, tee-time availability, transit routing, or drive times are provided. Use returned URLs as citations without inventing slugs.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'holes': {'anyOf': [{'enum': ['9', '18', '27', '36'], 'type': 'string'}, {'type': 'number', 'const': 9}, {'type': 'number', 'const': 18}, {'type': 'number', 'const': 27}, {'type': 'number', 'const': 36}]}, 'state': {'type': 'string', 'maxLength': 3, 'minLength': 2}, 'access': {'enum': ['all', 'public', 'private', 'semi_private', 'municipal', 'resort'], 'type': 'string', 'default': 'public'}, 'country': {'enum': ['US', 'CA', 'GB', 'IE', 'AU', 'NZ'], 'type': 'string', 'description': 'Country code to disambiguate a place; GB means UK'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'location': {'type': 'string', 'maxLength': 200, 'description': 'Place name, station, address, or US ZIP; omit when reusing the nearby result coordinates'}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}, 'slope_max': {'type': 'integer', 'maximum': 155, 'minimum': 55}, 'slope_min': {'type': 'integer', 'maximum': 155, 'minimum': 55}, 'tee_yards_max': {'type': 'integer', 'maximum': 8500, 'minimum': 500}, 'tee_yards_min': {'type': 'integer', 'maximum': 8500, 'minimum': 500}, 'distance_miles': {'anyOf': [{'enum': ['5', '10', '20', '25', '50'], 'type': 'string'}, {'type': 'number', 'const': 5}, {'type': 'number', 'const': 10}, {'type': 'number', 'const': 20}, {'type': 'number', 'const': 25}, {'type': 'number', 'const': 50}], 'default': '25', 'description': 'Search radius in miles: one of 5, 10, 20, 25, 50'}, 'number_of_courses': {'type': 'integer', 'default': 2, 'maximum': 4, 'minimum': 1}}}
find_nearby_courses
Find Nearby Courses
START HERE to plan golf near a place, transit station, address, or US ZIP: pass the place text as location, plus access (public/private/all) and holes (9/18) if known. Coordinates are optional; no slug knowledge is needed. Resolves the location and returns its labeled center and a nearest-first ranked shortlist with canonical Stymie URLs, reusable slugs, straight-line miles, access, holes, and scorecard availability. If the place is ambiguous, ask the golfer to choose a candidate. NEXT call build_golf_trip with the returned latitude/longitude and the same preferences for 1-4 course picks. Use search_courses only for a specific course name. Copy returned URLs verbatim; distances are not drive/transit times.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'holes': {'anyOf': [{'enum': ['9', '18', '27', '36'], 'type': 'string'}, {'type': 'number', 'const': 9}, {'type': 'number', 'const': 18}, {'type': 'number', 'const': 27}, {'type': 'number', 'const': 36}], 'description': 'Total course holes; omit if flexible'}, 'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1}, 'state': {'type': 'string', 'maxLength': 3, 'minLength': 2, 'description': 'State/province code, e.g. IL, ON, or NSW, to disambiguate a place'}, 'access': {'enum': ['all', 'public', 'private', 'semi_private', 'municipal', 'resort'], 'type': 'string', 'default': 'all'}, 'country': {'enum': ['US', 'CA', 'GB', 'IE', 'AU', 'NZ'], 'type': 'string', 'description': 'Country code to disambiguate a place; GB means UK'}, 'latitude': {'type': 'number', 'maximum': 90, 'minimum': -90}, 'location': {'type': 'string', 'maxLength': 200, 'description': 'Place name, transit station, address, or US ZIP; extract the place from the golferâ\x80\x99s sentence'}, 'longitude': {'type': 'number', 'maximum': 180, 'minimum': -180}, 'distance_miles': {'anyOf': [{'enum': ['5', '10', '20', '25', '50'], 'type': 'string'}, {'type': 'number', 'const': 5}, {'type': 'number', 'const': 10}, {'type': 'number', 'const': 20}, {'type': 'number', 'const': 25}, {'type': 'number', 'const': 50}], 'default': '25', 'description': 'Search radius in miles: one of 5, 10, 20, 25, 50'}}}
get_architect
Get Architect
Get details about a golf course architect: bio, Wikipedia image, birth/death years, nationality, and all courses they designed grouped by state. Provide either the architect name or URL slug.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'name': {'type': 'string', 'description': 'Architect name, e.g. "Robert Trent Jones Sr."'}, 'slug': {'type': 'string', 'description': 'Architect slug, e.g. "robert-trent-jones-sr"'}}}
get_course
Get Course
Get full details for a specific golf course by a returned Stymie URL or slug. Returns name, location, type, holes, architect, year built, amenities, contact info, slope stats, and nearby courses. Covers the US, Canada, UK, Ireland, Australia and New Zealand.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Paste the canonical Stymie course URL or reusable slug returned by search_courses, find_nearby_courses, or build_golf_trip'}}}
get_data_coverage
Get Data Coverage
Return a live count of Stymie course, scorecard, logo, architect, equipment, and current-deal coverage. Use this instead of quoting hardcoded catalog sizes.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
get_deals
Get Deals
Get currently verified sale offers for golf equipment. Only in-stock offers checked within the last 48 hours with a current price below list price are returned. Links may be affiliate links, at no extra cost to the buyer.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'category': {'enum': ['ball', 'driver', 'putter', 'rangefinder', 'launch_monitor'], 'type': 'string'}}}
get_leaderboard
Get Leaderboard
Get the top golf courses in a state by category: hardest (highest slope), easiest (lowest slope, public only), or longest (most yardage). Great for answering "hardest course in NJ" type questions.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['state'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 25, 'minimum': 1, 'description': 'Number of results'}, 'state': {'type': 'string', 'maxLength': 2, 'minLength': 2, 'description': '2-letter state code, e.g. "NJ"'}, 'category': {'enum': ['hardest', 'easiest', 'longest'], 'type': 'string', 'default': 'hardest', 'description': 'Ranking category'}}}
get_scorecard
Get Scorecard
Get the full scorecard for a golf course: all tee sets with hole-by-hole par, yardage, stroke index, and front/back nine ratings. Available for thousands of courses with scorecard data.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Paste the canonical Stymie course URL or reusable slug returned by search_courses, find_nearby_courses, or build_golf_trip'}}}
search_courses
Search Courses
Search for a named course or filter the directory by city/state, access, and holes. For a trip near a place, station, address, or ZIP, call find_nearby_courses FIRST; do not put the place name in query (query searches course names). You may also pass location here for a proximity search. Returns canonical Stymie URLs, reusable slugs, access, holes, scorecard availability, and straight-line miles when a location is supplied. Copy returned URLs; never construct county slugs. Next: get_course with a returned URL, or build_golf_trip with the resolved center and preferences.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'zip': {'type': 'string', 'pattern': '^\\d{5}$', 'description': 'US ZIP; use location for other places'}, 'city': {'type': 'string', 'description': 'City name'}, 'page': {'type': 'integer', 'default': 1, 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number'}, 'type': {'enum': ['public', 'private', 'semi_private', 'municipal', 'resort'], 'type': 'string', 'description': 'Course type filter'}, 'holes': {'anyOf': [{'enum': ['9', '18', '27', '36'], 'type': 'string'}, {'type': 'number', 'const': 9}, {'type': 'number', 'const': 18}, {'type': 'number', 'const': 27}, {'type': 'number', 'const': 36}], 'description': 'Number of holes'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1, 'description': 'Results per page (max 50)'}, 'query': {'type': 'string', 'description': 'Course name search (partial match)'}, 'state': {'type': 'string', 'maxLength': 3, 'minLength': 2, 'description': 'State/province code, e.g. IL, ON, NSW'}, 'country': {'enum': ['US', 'CA', 'GB', 'IE', 'AU', 'NZ'], 'type': 'string'}, 'location': {'type': 'string', 'maxLength': 200, 'description': 'Plain-language place, station, address, or US ZIP; find_nearby_courses is the recommended first step for trips'}, 'distance_miles': {'type': 'number', 'default': 50, 'maximum': 50, 'minimum': 1}}}
search_equipment
Search Equipment
Search current golf balls, drivers, putters, rangefinders, and launch monitors. Returns official Stymie detail URLs, images, MSRP, and stated best-for guidance when published.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 30, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Brand and/or model name'}, 'category': {'enum': ['ball', 'driver', 'putter', 'rangefinder', 'launch_monitor'], 'type': 'string'}}}
search_stymie
Search Stymie
Search Stymie across golf courses, current equipment, architects, and major site tools. Use this first when the user does not specify which Stymie collection they need.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 8, 'maximum': 20, 'minimum': 1}, 'query': {'type': 'string', 'maxLength': 80, 'minLength': 2, 'description': 'A course, equipment model, brand, architect, destination, or golf topic'}, 'state': {'type': 'string', 'maxLength': 3, 'minLength': 2, 'description': 'Optional 2-letter state filter for course results'}}}
search_tee_times
Search Tee Times
Search for available tee times at a golf course. Note: live tee-time inventory is not available on Stymie. Returns the Stymie course page (official website and phone for booking) and the tee-time alert early-access list.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['slug'], 'properties': {'date': {'type': 'string', 'description': 'Desired date (YYYY-MM-DD)'}, 'slug': {'type': 'string', 'description': 'Course full_slug'}, 'players': {'type': 'integer', 'maximum': 4, 'minimum': 1, 'description': 'Number of players'}}}
Entfernt
get_reviews
23. September 2026 02:49
Geändert
build_golf_trip
23. September 2026 02:49
Geändert
find_nearby_courses
23. September 2026 02:49
Geändert
search_stymie
23. September 2026 02:49
Geändert
get_scorecard
23. September 2026 02:49
Geändert
get_course
23. September 2026 02:49
Geändert
search_courses
23. September 2026 02:49
Geändert
build_golf_trip
21. September 2026 02:56
Geändert
find_nearby_courses
21. September 2026 02:56
Geändert
search_tee_times
21. September 2026 02:56
Geändert
get_reviews
21. September 2026 02:56
Hinzugefügt
get_data_coverage
17. September 2026 12:52
Hinzugefügt
get_deals
17. September 2026 12:52
Hinzugefügt
build_golf_trip
17. September 2026 12:52
Hinzugefügt
find_nearby_courses
17. September 2026 12:52
Hinzugefügt
search_equipment
17. September 2026 12:52
Hinzugefügt
search_stymie
17. September 2026 12:52
Hinzugefügt
search_tee_times
17. September 2026 12:52
Hinzugefügt
get_leaderboard
17. September 2026 12:52
Hinzugefügt
get_architect
17. September 2026 12:52
Hinzugefügt
get_reviews
17. September 2026 12:52
Hinzugefügt
get_scorecard
17. September 2026 12:52
Hinzugefügt
get_course
17. September 2026 12:52
Hinzugefügt
search_courses
17. September 2026 12:52