{
  "markdown": "# Golf Intelligence, by Stracka\n\n> Golf Intelligence, by Stracka. The highest-quality golf course dataset for\n> developers building a golf app. 20 years of proprietary mapping (laser,\n> drone, airplane, satellite), updated daily. Search is free. Scorecards, GPS,\n> and 3D greens via API. Not a scrape.\n\nGolf Intelligence is a proprietary dataset built through course-by-course\nmapping, not a clone of a GitHub golf course API. Ten people map every day, and\nthe data has been continuously updated since 2007. Learn more at\n[golfintelligence.com](https://golfintelligence.com/).\n\nThis repository is the installable Cursor / Grok Bot plugin with handle\n`golf`. The Cursor marketplace application source is the public GitHub URL:\n\n**https://github.com/golf-data/golf**\n\nMarketplace reviewers can submit that URL at\n[cursor.com/marketplace/publish](https://cursor.com/marketplace/publish). The\ncatalog title is **Golf Intelligence, by Stracka**.\n\nThe official MCP Registry name is **`io.github.golf-data/golf`**. The registry\ndoes not accept a bare `golf` name. Cursor, Agent Plugins, and Claude Code\nplugin handles remain `golf`.\n\n## Get API access\n\nCreate an API Account at\n[console.golfintelligence.com](https://console.golfintelligence.com/), then\nconfigure the plugin's two required variables:\n\n- `GI_CLIENT_ID`: your Client ID\n- `GI_ACTIVE_TOKEN`: your Active Token\n\nThe Active Token is exchanged for a short-lived bearer token. It is **not** a\nbearer token; do not paste a bearer token into `GI_ACTIVE_TOKEN`.\n\nPlans:\n\n- **Personal:** $49 for 50 test credits for your own-game Cursor, Grok, or\n  Claude app. [Buy Personal](https://buy.stripe.com/cNieVecRR4Re6dAakbdnW0e).\n- **Starter:** $399/month for 10,000 credits when shipping an app to other\n  users. Email [data@golfintelligence.com](mailto:data@golfintelligence.com);\n  Starter does not have a checkout link.\n\nQuestions about data, plans, or integration:\n[data@golfintelligence.com](mailto:data@golfintelligence.com).\n\n## Tools and credits\n\nAlways search first. `search_course_groups` is free. Before every paid call,\nthe user must explicitly confirm the stated cost; the server refuses paid tools\nunless `confirm_spend=true`.\n\n| Tool | What it returns | Credits |\n| --- | --- | ---: |\n| `search_course_groups` | Course-group search results | 0 |\n| `get_course_group_scorecard` | Scorecard data | 1 |\n| `get_course_group_gps` | Mapped course geometry and coordinates | 2 |\n| `get_course_group_detail` | Detailed course-group data | 3 |\n| `get_green_slope_image` | Portrait or square green slope image | 1 |\n\n## Authentication\n\nThe server exchanges the configured credentials with:\n\n```text\nPOST https://api.golfintelligence.com/auth/authenticateToken\ngrant_type=client_credentials\ncode=<GI_ACTIVE_TOKEN>\nclient_id=<GI_CLIENT_ID>\n```\n\nIt sends the returned `access_token` as `Authorization: Bearer <access_token>`,\ncaches it only in memory, and refreshes once after an HTTP 401. Credentials are\nnever logged.\n\n## Streamable HTTP\n\nThe production HTTP entrypoint serves the official MCP Streamable HTTP\ntransport at `/mcp` and a health check at `/health`. The intended custom-domain\nURL shape is:\n\n```text\nhttps://mcp.golfintelligence.com/mcp\n```\n\nThis repository does not claim that URL is live; DNS and deployment must be\ncompleted before it is submitted for review. Start the HTTP server locally\nwith:\n\n```bash\nnpm run build\nPORT=3000 npm run start:http\n```\n\nIt binds to `0.0.0.0:$PORT`. The existing `node dist/index.js` stdio entrypoint\nand all plugin packages remain unchanged.\n\nThe HTTP service resolves Golf Intelligence credentials in this order:\n\n1. `X-GI-Client-ID` and `X-GI-Active-Token` HTTP headers supplied together on\n   every MCP request.\n2. Server-side `GI_CLIENT_ID` and `GI_ACTIVE_TOKEN` environment variables.\n\nCodex supports static `http_headers` and environment-backed `env_http_headers`\nfor Streamable HTTP MCP servers. For OpenAI review, either configure a\ndedicated review API account as deployment environment variables or provide\nthe two custom headers if the review configuration supports them. The Active\nToken remains an exchange credential and must not be sent as an\n`Authorization: Bearer` value. A production deployment should use a dedicated\naccount with an appropriate credit limit because environment-based credentials\nmake the lookup tools available to every caller of the public endpoint.\n\nEvery tool explicitly advertises these MCP annotations:\n\n- `readOnlyHint: true` — each tool only retrieves course data.\n- `openWorldHint: false` — no tool writes to public or external systems.\n- `destructiveHint: false` — no tool deletes, overwrites, publishes, or sends\n  anything.\n- `idempotentHint: true` — repeating a lookup has no additional side effect.\n\nThese sentences can also be used as the annotation justifications in the\nOpenAI submission form. Paid lookups still require `confirm_spend=true` at the\nsame credit costs documented above.\n\n### Container deployment\n\n`Dockerfile` builds both transports without embedding credentials.\n`fly.toml` configures a small Fly.io service and checks `/health`. Before the\nfirst deploy, confirm that the globally unique Fly app name is available (or\nchange `app`), then set runtime secrets and deploy:\n\n```bash\nfly secrets set GI_CLIENT_ID=... GI_ACTIVE_TOKEN=...\nfly deploy\n```\n\nSet the custom domain only after the deployed `*.fly.dev` endpoint passes an\nMCP Inspector check. No deployment is performed by this repository.\n\n## Repository layout\n\n- `.cursor-plugin/plugin.json` — Cursor marketplace manifest and required variables\n- `plugin.json` — Agent Plugins open-standard manifest (handle `golf`)\n- `.claude-plugin/plugin.json` — Claude Code / Cowork plugin manifest (handle `golf`)\n- `server.json` — official MCP Registry metadata (`io.github.golf-data/golf`)\n- `manifest.json` — MCPB bundle manifest for the stdio Node server\n- `.github/workflows/publish-mcp.yml` — publishes `io.github.golf-data/golf` to the official MCP Registry via GitHub OIDC\n- `mcp.json` — bundled `golf` MCP server configuration\n- `skills/golf/SKILL.md` — workflow and spend-confirmation guidance\n- `src/` — TypeScript MCP server and API client\n- `dist/index.js` — committed stdio ESM bundle used by installers\n- `dist/http.js` — committed Streamable HTTP ESM bundle used by the container\n- `Dockerfile` and `fly.toml` — production HTTP container and Fly.io service\n\nFor development with Node.js 18 or newer:\n\n```bash\nnpm install\nnpm test\nnpm run build\nnpm run pack:mcpb\n```\n\n`pack:mcpb` uses the official `@anthropic-ai/mcpb pack` CLI to produce `golf.mcpb` and writes its SHA-256 into `server.json`. GitHub Releases host that asset at `https://github.com/golf-data/golf/releases/download/v1.0.0/golf.mcpb`.\n\nThe plugin code is available under the MIT License. Golf Intelligence API data\nremains subject to the terms at\n[golfintelligence.com](https://golfintelligence.com/).\n",
  "bytes": 6892,
  "sha": "ebf6112e9ef58a8a23b72e42d2d90c8e6c5010d16c22d1945ed463948caadfad",
  "repo_slug": "golf-data/golf",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_golf_data_golf_2c0ce2b2/readme"
}