Opengolfapi

io.github.opengolfapi由 GitHub 帳號 opengolfapi 發布v3.5.1更新於 Oct 25, 2026

Golf for AI agents — every US course free, plus open contribution, identity & tournaments.

概覽

AI 產生的概覽

在本機執行的 MCP 伺服器,讓 AI 助理免費查詢美國高爾夫球場資料,並可選擇以金鑰記錄擊球、身分、計分與賽事。

可以做什麼
搜尋與讀取球場:依名稱、州或位置尋找美國球場,取得計分卡、發球台、周邊地點和球場詳情,不需金鑰。查看條件:即時天氣、月度氣候常年值與 plays-like 有效距離計算。計分與比賽:依多種賽制計分、建立比賽、記錄成績並結算排名。以金鑰貢獻資料:記錄發射監測器擊球、提交感測器事件、提出球場資訊更正、發布在地球洞知識。身分與社交:以 OpenGolf ID 登入、管理個人資料、推薦、線上狀態信標與 webhook。驗證紀錄:對照雜湊鏈透明日誌核驗獎盃與鏈匯出。
適用情境
適合在建立或提示高爾夫相關應用或助理時使用,需要球場查詢、計分卡、天氣、計分或賽事處理。唯讀工具本身即可使用;金鑰用於解鎖資料貢獻與身分功能。
執行需求
透過 stdio 在本機執行,通常以 npx 啟動,因此需要 Node.js。唯讀工具不需金鑰。可選的環境變數 OPENGOLFAPI_KEY(免費)用於啟用貢獻、身分與賽事工具。需要能連線至 OpenGolfAPI 服務的網路。
安裝前請注意
設定金鑰後,助理可向共享公開標準寫入資料:擊球、感測器事件、球場更正、比賽成績、個人資料、信標、webhook、聲明與鑄造資產。登入工具會寄送六位數驗證碼電子郵件,並回傳可代表該球員操作的存取權杖。開發者金鑰只顯示一次。球場資料為 ODbL,展示或再散布時須標示來源。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Opengolfapi,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

@opengolfapi/mcp-server

Golf, for AI agents — the open data layer for golf. Give your assistant every US golf course (16,845), free, and let it contribute back, sign players in, and run tournaments. Build a whole golf app from a prompt.

OpenGolfAPI is a community-owned commons. One free key, and your agent can read the world's golf data and write to four open standards.


The standards (the whole story)

OpenGolfAPI is built on open, composable protocols — implement one or all:

StandardWhat it isYou use it to…
OpenShotA CC0 shape for a launch-monitor shot — one schema every device maps to (Trackman, GSPro, Garmin, …).Ingest shots from any monitor/sim → log_shot.
MomentsThe universal event ingest — any sensor signal (GPS breadcrumb, swing, putt, club, score, pin, condition, presence) as one flexible event.Send whatever signal you have → submit_moment.
OpenJoinSigned, scoped, expiring join tokens. One QR/link → everyone who redeems lands in the same round/tournament = the group, linked.Onboard a foursome or a whole tournament in one tap → create_tournament_invite / join_tournament.
OpenGolf IDA portable golf identity — "Sign in with OpenGolf." One pseudonymous player_id across every app; handicap + history follow the player everywhere (engines fold by player_id, so a claimed identity's cross-app record just exists).Give a player one identity the whole ecosystem shares → sign_in_with_opengolf.

The big idea: every shot, moment, and round contributed makes the shared commons better for everyone — a true two-way data layer. Read is free; contributing is how you earn your place in the standard.


What your agent gets

  • Read (free, no key): search & compare courses · full scorecards (par / handicap / yardages) · hazards · live weather & climate · nearby places · tee advice.
  • Contribute (free key): log_shot, submit_moment → write to the open standards · get_my_shots → read your own data back.
  • Identity & tournaments (free key): sign_in_with_opengolf (portable ID) · create_tournament_invite + join_tournament (run an event — handicaps optional, gross or net).

A great golf app is an afternoon, not a year.

Install (MCP client config)

json
{  "mcpServers": {    "opengolfapi": {      "command": "npx",      "args": ["-y", "@opengolfapi/mcp-server"],      "env": {        "OPENGOLFAPI_KEY": "<free, optional — enables contributing, identity & tournaments>"      }    }  }}

Get a free OPENGOLFAPI_KEY at https://courses.opengolfapi.org/api-keys. Read tools work with no key.

Claude Desktop: the config file is claude_desktop_config.json (Settings → Developer → Edit Config). Claude Code: claude mcp add opengolfapi -- npx -y @opengolfapi/mcp-server. Going keyless? Delete the whole env block — every read tool works without it (do NOT paste the placeholder as a key).

First prompt to try: "Find golf courses near Chicago and show me the hardest one."

Which score tool when: casual one-shot scoring → score_round · leagues/tournaments (scores arrive over time, standings matter) → create_competition → record_attempt → finalize_competition · streaming devices/live apps → submit_moment. Canonical domain model: https://api.opengolfapi.org/api/v1/model

Tools

56 tools:

  • search_courses — Search US golf courses by name, US state, or location (lat/lng + radius). Returns matching courses with location, type, par. Free, ODbL data.
  • get_course — Full detail for one course by id: scorecard (par + handicap per hole), tees, location, contact, nearby. Free.
  • get_tees — All tee sets for a course with ratings, slopes, and yardages. Free.
  • get_weather — Live weather forecast for a course location (Weather.gov). Free.
  • get_climate — Monthly climate normals + best months to play for a course. Free.
  • get_nearby — Nearby hotels, restaurants, and other courses for a course. Free.
  • log_shot — Contribute a golf shot to the open OpenShot standard (any launch monitor). Requires a key. Units: speed mph, angles deg, spin rpm, distance yds.
  • submit_moment — Contribute an Open Connect event from any sensor/wearable/phone. The whole sensor spectrum rides through here — type-specific data goes in payload. Requires a key.
  • get_my_shots — Read back your own contributed shots by player or session. Requires a key.
  • get_my_moments — Read back your own contributed moments (breadcrumbs, swings, putts, conditions…) by player, session, or type. Requires a key.
  • propose_correction — Propose a fix to a course FACT field (phone, website, address, architect, year_built, course_name, city, postal_code, course_type). Our AI reviews it (approve/reject/needs_info). Requires a key. Geometry is not correctable here.
  • respond_to_review — Respond to a correction that came back as needs_info — add a source or explanation and re-open it for review. Requires a key.
  • get_correction — Check the status/verdict of a correction you proposed (approved | rejected | needs_info | applied). Requires a key.
  • how_to_build — The safe playbook for building on OpenGolfAPI and contributing data the right way. Call this once before contributing.
  • get_passport — FREE (public, no key). Any golfer's shareable record — display name, OpenGolf Member #, courses played, rounds, trophies, referrals. Show a player's golf resume in your app.
  • record_referral — Record that one user referred another (a REFERRED_BY edge) — build YOUR app's invite loop on the shared graph, namespaced to your app. Needs a key.
  • get_referrals — How many golfers a user has referred (+ the list) — the viral-loop metric for your app. Needs a key.
  • about — What OpenGolfAPI is and how to use this MCP server.
  • request_sign_in_code — Start "Sign in with OpenGolf" for a person: emails them a 6-digit code. No API key needed. They read you the code, then call complete_sign_in.
  • complete_sign_in — Finish sign-in: exchange the 6-digit code for their OpenGolf ID + access token (use as X-OpenGolf-Token to act as them). Pass ref= when another player's invite brought them — it credits the referral.
  • create_dev_key — Mint a developer API key bound to an OpenGolf ID (sign in first via request_sign_in_code → complete_sign_in). Returns the key ONCE. First-party rail: no OpenGolf ID, no key.
  • sign_in_with_opengolf — Derive a user's OpenGolf ID deterministically from their email (sub = ogid_ + sha256(lower(trim(email)))[:16]) — one line, no redirect. For a VERIFIED session token use request_sign_in_code → complete_sign_in.
  • register_webhook — Register an https URL for your domain events (HMAC-signed deliveries, owner-scoped). Requires your key (Authorization: Bearer ogapi_…).
  • create_tournament_invite — Create a shareable invite (QR/link); everyone who redeems it joins the SAME event/session. max_uses caps size (foursome=4). Requires key.
  • join_tournament — Redeem an invite token — the player joins the group/event. Requires key.
  • list_game_formats — Every OpenMatch scoring format. GROSS scoring is free & keyless.
  • score_round — Score a round in any format — GROSS, FREE, no key. players:[{player_id,holes:{"1":4}}] or entries:[{player_id,hole,value}]; holes:[{hole,par,stroke_index?}].
  • plays_like — Effective distance — THE canonical "plays like" number (wind/elevation/temp/altitude), factors itemized. FREE, no key. Pair with get_conditions for live wind.
  • get_conditions — LIVE weather at a course (temp/wind/precip, forecast-model, 15-min cache). FREE. Feeds plays_like.
  • link_dev_key — Confirm your OpenGolf ID on an EXISTING key. Sign in first; pass that access_token + the key.
  • list_dev_keys — List the keys owned by your OpenGolf ID (prefixes only). Needs access_token from complete_sign_in.
  • get_profile — A player's public OpenGolf ID card — name, avatar, links, prefs. Free.
  • update_profile — Edit a player's self-asserted profile fields (derived facts can't be set). Requires key (claimed players need their grant).
  • get_awards — A player's OpenAwards — derived trophies + course passport. Requires key.
  • set_beacon — Broadcast a consented, EXPIRING presence/availability beacon (present|available|open). Requires key.
  • find_beacons — Discover ACTIVE public beacons (find-my-group / matchmaking). Requires key.
  • record_consent — Record a player's consent grant (auditable, revocable). Requires key.
  • create_competition — Create a Competition (any OpenMatch format). Requires key.
  • list_competitions — List Competitions (free). Filter org/course/status.
  • get_competition — A Competition + live gross standings (free).
  • record_attempt — Record an Attempt (score or side-game value). Idempotent. Requires key.
  • finalize_competition — Finalize — run the kernel, store the gross Result. Requires key.
  • broadcast_feed — OpenBroadcast P1 — ONE typed feed for a session: broadcast-worthy items (score/side_game/money/award/condition) in ascending (recorded_at, seq) order, each with template narration (headline<=60/ticker<=80). Money appears only via settled records. Replaces stitching moments+results+live_state. Requires key + session access (participant or compute).
  • get_handicap — OpenIndex (beta) — a player's estimated handicap computed from real, notarized rounds (every score stamped when it happened; verifiable by anyone). Not official — provable. Reading your OWN is free with your key; player_id must be the ogid_… form.
  • get_showcase — A player's public showcase — the collectibles/records on their OpenGolf ID (og.* namespaces + course.*). Free, keyless: pass their ogid_. Tombstoned (revoked/expired) records hidden. The provable trophy wall.
  • verify_record — Verify a record/collectible against the OpenGolf Chain (a signed, hash-linked, Bitcoin-anchored transparency log). Returns the hash + whether it matches + the CLIENT-RECOMPUTE recipe (sha256 of the canonical record) + the anchor. Then you can go further, all keyless: pull a merkle inclusion proof (GET /chain/anchors/:id/inclusion?hash=), verify the checkpoint's RS256 signature against /.well-known/jwks.json, and resolve the Bitcoin (OpenTimestamps) anchor. Free. Trust no one — recompute the hash, check inclusion, resolve Bitcoin yourself.
  • list_webhooks — List your active webhook subscriptions. Requires key.
  • remove_webhook — Deactivate one of your webhook subscriptions by id (audit row kept). Requires key.
  • list_orgs — Public directory of verified orgs (free).
  • mint_asset — Mint an Asset (trophy/badge/stamp/coupon/membership) into the owner's trophy case + chain. Requires key.
  • file_claim — File a Claim in the trust ledger (ownership/attestation/identity/record/correction). Requires key.
  • list_claims — List Claims (free). Filter claimant/subject/status.
  • post_beta — Drop local course knowledge ("beta") on a hole — the AI-caddie's fuel. Requires key.
  • get_beta — Read local course knowledge for a course/hole (free).
  • get_my_chain — Export YOUR tamper-evident OpenGolf Chain + checkpoints. Requires key (own-read free).
  • verify_chain — Verify a Chain export OR walk the public transparency log (GET /chain/log?subject=), public + keyless — recompute the hash-links, verify each RS256 checkpoint signature against the JWKS, and resolve the Bitcoin anchors; reports tampering and where. The whole history (registry, per-course, master) is independently auditable — trust no one.

The bigger ecosystem — two front doors

Agents come through this MCP; sensors/devices come through OpenGolf Connect (one open connector streaming shots from any launch monitor — R10, MLM2PRO, Uneekor, SkyTrak, Foresight — into POST /v1/shots). Both write to the same open commons. → https://opengolfapi.org/connect

Learn more

MIT licensed. Course data ODbL. Shots CC0.

Attribution (required if you display or redistribute the data): Course data © OpenStreetMap contributors (ODbL 1.0) via OpenGolfAPI · Weather data by Open-Meteo.com (CC BY 4.0) · Descriptions from Wikipedia (CC BY-SA 4.0) · Contact + social from Foursquare / Overture (Apache 2.0). Full list: https://opengolfapi.org/attribution

來源:README.md,提交 328eb7c

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v3.5.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分