Stymie Golf MCP
A public, read-only MCP server providing AI agents with structured access to golf course directories, scorecards, equipment data, verified deals, and trip planning tools across six countries. It enables agents to search for courses, retrieve detailed amenities and ratings, find nearby locations, and analyze equipment without requiring user authentication.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp-production-680d.up.railway.app/mcpWhat its tools do
12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for golf courses by name, city, or proximity to a ZIP code
- Retrieve hole-by-hole scorecards and course ratings
- Find verified in-stock equipment deals checked within 48 hours
- Plan a golf trip by ranking nearby courses based on access and hole count
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- stymie-golf 2.1.4
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 12 advertised
- Resources
- 4 advertised
- Resource templates
- 0 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Tools
12 advertised
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.
{
"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
}
}
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}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, public contact info, recorded closure status, and published tee ratings. A recorded open flag is not a live confirmation of seasonal opening or tee-time availability. Covers the US, Canada, UK, Ireland, Australia and New Zealand.
{
"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"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"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"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"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\""
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_leaderboard — Get Leaderboard
Rank courses in a state using published tee data: hardest uses highest slope, easiest uses lowest slope among public/municipal courses, and longest uses maximum yardage. Returns each course name, access type, measured value and canonical Stymie URL. Link each recommended course using its returned URL and identify the ranking metric. These are tee-data rankings, not quality ratings or current booking availability; disclose private access.
{
"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"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_tee_times — Get course booking information
Get booking information for a course already returned by search_courses or find_nearby_courses. Returns its Stymie course-page link, where the golfer can find the official website or phone, plus an optional early-access alerts page. This legacy search_tee_times tool does not search live inventory: status is always not_available. It cannot book, pay, enroll in alerts, or confirm availability.
{
"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": "Canonical Stymie course URL or full_slug returned by a course lookup"
},
"players": {
"type": "integer",
"maximum": 4,
"minimum": 1,
"description": "Number of players"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"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"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"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"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"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’s 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"
}
}
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"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
}
}
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_deals — Get Deals
Get golf-equipment sale offers that were marked in stock when checked within the last 48 hours, with a checked price below list price. Returns each product’s canonical Stymie detail URL, merchant offer URL, price, savings and checked_at time. Link every recommended product to its returned Stymie URL, and use the returned offer URL for the merchant. Prices and stock can change after checking; confirm at the merchant. Disclose that offer links may earn Stymie a commission at no extra cost to the buyer.
{
"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"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
4 advertised
stymie-course-cards — Stymie Golf course and trip cards
Read-only course shortlist with canonical Stymie links. No bookings or live tee times.
ui://stymie/course-cards-v3.htmlstymie-course-cards-legacy-1 — Stymie Golf course and trip cards
Read-only course shortlist with canonical Stymie links. No bookings or live tee times.
ui://stymie/course-cards-v1.htmlstymie-course-cards-legacy-2 — Stymie Golf course and trip cards
Read-only course shortlist with canonical Stymie links. No bookings or live tee times.
ui://stymie/course-cards-v2.htmlstymie-data-coverage — Stymie Golf data coverage
A live snapshot of structured course and equipment coverage.
stymie://data-coverage90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-06: 1 of 1 checks answered
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1128 ms
- 95th percentile latency
- 1128 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1128 ms · metadata changed · 12 tool(s), 4 resource(s), 0 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http stymie-golf-mcp https://mcp-production-680d.up.railway.app/mcpCodex
codex mcp add stymie-golf-mcp --url https://mcp-production-680d.up.railway.app/mcpCursor
{
"mcpServers": {
"stymie-golf-mcp": {
"url": "https://mcp-production-680d.up.railway.app/mcp"
}
}
}Cline
{
"mcpServers": {
"stymie-golf-mcp": {
"type": "streamableHttp",
"url": "https://mcp-production-680d.up.railway.app/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"stymie-golf-mcp": {
"type": "http",
"url": "https://mcp-production-680d.up.railway.app/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http stymie-golf-mcp https://mcp-production-680d.up.railway.app/mcpClaude Desktop
https://mcp-production-680d.up.railway.app/mcpWindsurf
{
"mcpServers": {
"stymie-golf-mcp": {
"serverUrl": "https://mcp-production-680d.up.railway.app/mcp"
}
}
}Let your agent find its tools
Find servers like Stymie Golf MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.