Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
CADDIEMCP_HOMENoBase directory for per-user databases and token stores. Defaults to ~/.caddiemcp.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
garmin_statusA

Check connector health: Garmin auth state, last sync, cached data coverage (rounds, shots, GPS %, club %). Call this first in a session.

sync_garmin_dataA

Pull golf data from Garmin Connect into the local cache, plus daily health (sleep, HRV, Body Battery, stress, readiness) for round dates.

Incremental and CHUNKED: each call syncs up to max_rounds new rounds (default 25, newest first, ~2-4 minutes) and reports rounds_remaining. To load a full multi-year history, simply keep calling this tool until rounds_remaining is 0 — tell the user the total and give a brief progress update between batches. Nothing is lost between calls; every batch is permanent. full=True refetches already-cached rounds (least-recently-synced first; pass max_rounds to bound it, otherwise it runs unbounded). include_health=False skips the health pass. (Very large backfills can also run outside chat: caddie-mcp sync in a terminal does it in one go.)

list_roundsA

List golf rounds, newest first, as compact summaries (date, course, score, putts, fairways, GIR, ratings). Dates are YYYY-MM-DD; course is a case-insensitive substring match. Use get_round for hole-by-hole detail.

get_roundA

Get one round in depth: header, hole-by-hole scorecard, and optionally every shot. round_id comes from list_rounds. Prefer get_shots (with filters or geojson) when the goal is shot analysis or mapping.

get_shotsA

Get shot-level data (GPS, club, lie, distance, miss offsets dx/dy). Filter by round_id, holes, club name substring, or shot_type (drive|approach|chip|putt|penalty). format="geojson" returns a FeatureCollection (shot LineStrings + pin Points) ready for Mapbox or Leaflet — ideal for shot maps and dashboards.

get_club_statsA

Per-club performance over the last N rounds: measured avg/min/max/ stddev carry distance (excludes putts and penalties), sample size, usage share, lateral miss bias from Garmin's dx offsets, plus Garmin's own average and 'advice' distances for comparison.

get_strokes_gainedA

Strokes Gained (Broadie method) per round: total plus off-tee / approach / short-game / putting. baseline: "auto" grades each round against the player's own handicap level; or force one of scratch, 5hcp, 10hcp, 15hcp, 20hcp, bogey (scratch = the number seen on TV). estimated_share > 0 means some shots lacked GPS and used inferred lies/distances — hedge conclusions accordingly.

get_performance_statsA

PGA-style performance stats over the last N rounds: driving distance/ accuracy + miss direction, GIR and proximity by distance bucket, scrambling and sand saves, putting (make % by feet, 3-putt avoidance), scoring (par 3/4/5 averages, bounce-back, distribution). Optionally pass benchmark_handicap to compare every metric against that handicap level.

get_handicapA

WHS-style Handicap Index: best-N-of-20 differentials, which rounds count, and the index trend over time. Needs rounds with tee rating and slope (Garmin records these when a tee box is selected on the watch).

get_course_intelA

Personal course intelligence for one course (name substring match): per-hole scoring average vs par, hardest and easiest holes, most common tee club per hole, and round history there. Use for strategy questions like 'how should I play X next time?'.

get_health_contextA

Health context for a round or date (YYYY-MM-DD): sleep score and duration the night before, HRV status, Body Battery range, training readiness, average stress, resting HR, steps. With round_id, also returns the round summary so performance and recovery sit side by side. NULL fields mean the watch/feature didn't record — say so, don't guess.

correlate_health_performanceA

Does recovery (or weather) affect your golf? Joins each round to its health/conditions data and computes a Pearson correlation. Daily metrics (sleep_score, hrv, readiness...) come from the night/day around the round; round-window metrics (bb_at_tee, avg_hr_during_round, avg_stress_during_ round, temp_c, wind_speed_mph) are measured DURING the round itself. Returns the paired table, r, and an honest interpretation — small samples are flagged loudly. Remember lower is better for score/putts: a NEGATIVE r between sleep_score and score_to_par means better sleep, better golf.

query_golf_dataA

Run a read-only SQL SELECT over the golf database (DuckDB dialect). Tables: rounds, holes, shots, clubs, daily_health. Read the schema://data-dictionary resource for columns, units, and enums. Single statement, SELECT/WITH only, capped at 200 rows — aggregate server-side instead of selecting raw rows when possible.

Prompts

Interactive templates invoked by user choice

NameDescription
post_round_reportFull analysis of one round: scorecard, SG, standouts, what to practice.
practice_planSG-weighted practice plan from recent weaknesses.
course_strategyPersonal game plan for a course from past rounds there.
health_check_inRecovery vs golf performance review.
season_reviewLong-horizon trends: scoring, SG, handicap, memorable rounds.

Resources

Contextual data attached and managed by the client

NameDescription
data_dictionaryTables, columns, units, and enums of the golf database.
getting_startedRecommended tool flow for a new session.
metric_definitionsHow every metric is computed: SG math, stat derivations, benchmarks.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mbrionesalvarez/caddie-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server