골프를 위한 오픈 데이터 레이어를 제공하며, AI agent가 미국 내 골프 코스 검색, 샷 기록, 토너먼트 관리 및 플레이어 식별 정보를 처리할 수 있도록 지원합니다.
다른 이름 opengolfapi/mcp-server, @opengolfapi/mcp-server
- 스타
- 4
- Tools
- 56
- 다운로드, 30일
- —
- 최신 버전
- 3.5.1
- 마지막 커밋
- 2026년 8월 18일
- 라이선스
- MIT
OpenGolfAPI MCP란?
OpenGolfAPI은(는) MCP server입니다. 골프를 위한 오픈 데이터 레이어를 제공하며, AI agent가 미국 내 골프 코스 검색, 샷 기록, 토너먼트 관리 및 플레이어 식별 정보를 처리할 수 있도록 지원합니다. 56개 도구를 제공합니다. 예: search_courses, get_course, get_tees.
프로젝트 README에서 생성된 요약
OpenGolfAPI MCP server 정보
골프 애플리케이션을 개발하는 개발자는 이 MCP server를 사용하여 16,000개 이상의 미국 골프 코스 정보를 포함한 방대한 오픈 데이터 레이어에 접근할 수 있습니다. AI agent는 인증 없이도 위치 기반 코스 검색, 상세 스코어카드 조회, 실시간 날씨 확인, 주변 편의시설 찾기 등 읽기 전용 작업을 수행할 수 있습니다. 이를 통해 티샷 조언을 제공하거나 코스 난이도를 비교하는 도구를 쉽게 구축할 수 있습니다.
개발자가 무료 API key를 제공하면 agent가 커뮤니티에 데이터를 다시 기여할 수 있도록 설정할 수 있습니다. 여기에는 OpenShot 표준을 통한 샷 기록, Moments 프로토콜을 통한 센서 신호 제출, OpenGolf ID를 이용한 플레이어 식별 정보 관리가 포함됩니다. 또한 이 server는 create_tournament_invite 및 join_tournament와 같은 도구를 통해 토너먼트 관리를 지원하므로, agent가 대회를 조직하고 순위를 추적할 수 있습니다. 읽기는 무료이며 기여를 통해 공유된 커뮤니티 자산을 구축하는 양방향 데이터 레이어 역할을 합니다.
활용 사례
- 1코스 검색 및 비교AI agent가 특정 도시 근처의 골프 코스를 찾고 가장 난이도가 높은 코스를 식별할 수 있습니다.
- 2운동 성능 기록개발자가 다양한 런치 모니터의 샷 데이터를 표준화된 형식으로 수집하는 데 이 server를 사용할 수 있습니다.
- 3골프 토너먼트 조직agent가 다른 사용자가 링크나 QR 코드로 참여할 수 있는 토너먼트 초대장을 생성하여 플레이어 그룹을 관리할 수 있습니다.
- 4플레이어 식별 정보 관리이 server를 통해 사용자의 핸디캡과 이력을 여러 애플리케이션에서 유지할 수 있는 이동 가능한 플레이어 식별 정보를 관리할 수 있습니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
OpenGolfAPI MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 OpenGolfAPI MCP 설치
$ claude mcp add --env 'OPENGOLFAPI_KEY=<YOUR_OPENGOLFAPI_KEY>' mcp-server -- npx -y @opengolfapi/mcp-serverCursor에 OpenGolfAPI MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@opengolfapi/mcp-server"
],
"env": {
"OPENGOLFAPI_KEY": "<YOUR_OPENGOLFAPI_KEY>"
}
}
}
}VS Code에 OpenGolfAPI MCP 설치
.vscode/mcp.json
{
"servers": {
"mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@opengolfapi/mcp-server"
],
"env": {
"OPENGOLFAPI_KEY": "<YOUR_OPENGOLFAPI_KEY>"
}
}
}
}VS Code CLI에 OpenGolfAPI MCP 설치
$ code --add-mcp '{"name":"mcp-server","type":"stdio","command":"npx","args":["-y","@opengolfapi/mcp-server"],"env":{"OPENGOLFAPI_KEY":"<YOUR_OPENGOLFAPI_KEY>"}}'Claude Desktop에 OpenGolfAPI MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@opengolfapi/mcp-server"
],
"env": {
"OPENGOLFAPI_KEY": "<YOUR_OPENGOLFAPI_KEY>"
}
}
}
}Codex에 OpenGolfAPI MCP 설치
$ codex mcp add mcp-server --env 'OPENGOLFAPI_KEY=<YOUR_OPENGOLFAPI_KEY>' -- npx -y @opengolfapi/mcp-serverCodex config.toml에 OpenGolfAPI MCP 설치
~/.codex/config.toml
[mcp_servers.mcp-server] command = "npx" args = ["-y", "@opengolfapi/mcp-server"] [mcp_servers.mcp-server.env] OPENGOLFAPI_KEY = "<YOUR_OPENGOLFAPI_KEY>"
Gemini CLI에 OpenGolfAPI MCP 설치
$ gemini mcp add -s user -e 'OPENGOLFAPI_KEY=<YOUR_OPENGOLFAPI_KEY>' mcp-server npx -- -y @opengolfapi/mcp-serverGemini settings.json에 OpenGolfAPI MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": [
"-y",
"@opengolfapi/mcp-server"
],
"env": {
"OPENGOLFAPI_KEY": "<YOUR_OPENGOLFAPI_KEY>"
}
}
}
}OpenGolfAPI MCP 도구 56
README에서 감지됨search_coursesget_courseget_teesget_weatherget_climateget_nearbylog_shotsubmit_momentget_my_shotsget_my_momentspropose_correctionrespond_to_review
| search_courses | — | |
| get_course | — | |
| get_tees | — | |
| get_weather | — | |
| get_climate | — | |
| get_nearby | — | |
| log_shot | — | |
| submit_moment | — | |
| get_my_shots | — | |
| get_my_moments | — | |
| propose_correction | — | |
| respond_to_review | — |
도구 56개 모두 보기도구 수 줄이기
get_correctionhow_to_buildget_passportrecord_referralget_referralsaboutrequest_sign_in_codecomplete_sign_increate_dev_keysign_in_with_opengolfregister_webhookcreate_tournament_invitejoin_tournamentlist_game_formatsscore_roundplays_likeget_conditionslink_dev_keylist_dev_keysget_profileupdate_profileget_awardsset_beaconfind_beaconsrecord_consentcreate_competitionlist_competitionsget_competitionrecord_attemptfinalize_competitionbroadcast_feedget_handicapget_showcaseverify_recordlist_webhooksremove_webhooklist_orgsmint_assetfile_claimlist_claimspost_betaget_betaget_my_chainverify_chain
| get_correction | — | |
| how_to_build | — | |
| get_passport | — | |
| record_referral | — | |
| get_referrals | — | |
| about | — | |
| request_sign_in_code | — | |
| complete_sign_in | — | |
| create_dev_key | — | |
| sign_in_with_opengolf | — | |
| register_webhook | — | |
| create_tournament_invite | — | |
| join_tournament | — | |
| list_game_formats | — | |
| score_round | — | |
| plays_like | — | |
| get_conditions | — | |
| link_dev_key | — | |
| list_dev_keys | — | |
| get_profile | — | |
| update_profile | — | |
| get_awards | — | |
| set_beacon | — | |
| find_beacons | — | |
| record_consent | — | |
| create_competition | — | |
| list_competitions | — | |
| get_competition | — | |
| record_attempt | — | |
| finalize_competition | — | |
| broadcast_feed | — | |
| get_handicap | — | |
| get_showcase | — | |
| verify_record | — | |
| list_webhooks | — | |
| remove_webhook | — | |
| list_orgs | — | |
| mint_asset | — | |
| file_claim | — | |
| list_claims | — | |
| post_beta | — | |
| get_beta | — | |
| get_my_chain | — | |
| verify_chain | — |
구성
OPENGOLFAPI_KEY비밀Free key (courses.opengolfapi.org/api-keys). Optional — only for contributing/identity.
| 이름 | 설명 | 유형 |
|---|---|---|
| OPENGOLFAPI_KEY | Free key (courses.opengolfapi.org/api-keys). Optional — only for contributing/identity. | 비밀 |
자동 검사
2026년 11월 13일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능opengolfapi/mcp-server is public and reachablegithub.com/opengolfapi/mcp-server ↗통과
- 패키지가 이 저장소를 소스로 명시@opengolfapi/mcp-server names opengolfapi/mcp-server as sourcenpmjs.com/package/@opengolfapi/mcp-server ↗통과
- 빌드 출처(Sigstore 증명)No build attestation published for this release검사되지 않음
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-08-18github.com/opengolfapi/mcp-server ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from @opengolfapi/mcp-server통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음118 resolved dependencies checked; no critical advisoryosv.dev ↗통과
- 모델에 대한 숨겨진 지침 없음56 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기@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:
| Standard | What it is | You use it to… |
|---|---|---|
| OpenShot | A CC0 shape for a launch-monitor shot — one schema every device maps to (Trackman, GSPro, Garmin, …). | Ingest shots from any monitor/sim → log_shot. |
| Moments | The 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. |
| OpenJoin | Signed, 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 ID | A 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)
{
"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 wholeenvblock — 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 inpayload. 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
- Full AI-coder guide: https://api.opengolfapi.org/llms-full.txt
- Machine spec (OpenAPI 3.1): https://api.opengolfapi.org/openapi.json
- OpenShot field catalog: https://api.opengolfapi.org/api/v1/openshot/fields
- Moments field catalog: https://api.opengolfapi.org/api/v1/moments/fields
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
OpenGolfAPI MCP 질문
OpenGolfAPI MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add --env 'OPENGOLFAPI_KEY=<YOUR_OPENGOLFAPI_KEY>' mcp-server -- npx -y @opengolfapi/mcp-server를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
OpenGolfAPI MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
OpenGolfAPI MCP는 어떤 도구를 제공하나요?
56개 도구를 제공합니다. 예: search_courses, get_course, get_tees, get_weather, get_climate.
골프 코스를 검색하려면 API key가 필요한가요?
아니요, 코스 검색 및 비교와 같은 읽기 전용 도구는 무료이며 key 없이도 작동합니다.
OPENGOLFAPI_KEY로 무엇을 할 수 있나요?
API key를 사용하면 샷이나 모먼트(moments)와 같은 데이터를 기여하고, 플레이어 식별 정보를 관리하며, 토너먼트를 운영할 수 있습니다.
Claude Desktop용 서버를 어떻게 설치하나요?
설정 블록에 제공된 npx 명령어를 사용하여 claude_desktop_config.json 파일에 추가하면 됩니다.