mcpField
G
Golf Course Data by Stracka

Golf Course Data by Stracka

リモート
golfintelligence.comゲーム・エンタメ26 日前に更新
リポジトリ公式サイト

Golf Course Data by Stracka について

Golf Course Data by Strackaは、StrackaGolfの毎日更新される独自コースデータを開発者やゴルフアプリ向けに提供します。MCP経由で無料検索のほか、クレジット制のスコアカード、GPS、詳細情報、グリーン傾斜データを取得できます。

主な機能

  1. 01コースグループの無料検索
  2. 02スコアカードの取得
  3. 03GPS形状と座標の取得
  4. 04コース詳細データの参照
  5. 05グリーン傾斜画像の取得

活用シーン

  1. 01コースグループの検索と照合
  2. 02アプリへのスコアカードデータの読み込み
  3. 03コース地図の座標と形状の取得
  4. 04グリーン傾斜画像の確認

MCP 対応

ホステッド Streamable HTTP MCP サーバーとローカル stdio サーバーを提供します。有料ツールの呼び出しには `confirm_spend=true` による明示的な確認が必要です。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.golfintelligence.com/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
mcpbgolf.mcpb

ツール

詳細

Stracka のゴルフコースデータ

Stracka のゴルフコースデータです。StrackaGolf 独自のコースデータのみを 提供し、毎日更新されます。検索は無料です。API 経由でスコアカード、GPS、3D グリーンを利用できます。

Golf Intelligence は、StrackaGolf 独自のコースデータを提供し、毎日更新しています。 詳しくは golfintelligence.com をご覧ください。

このリポジトリは、ハンドル名 golf のインストール可能な Cursor / Grok Bot プラグインです。Cursor マーケットプレイスアプリケーションのソースは、次のパブリック GitHub URL です。

https://github.com/golf-data/golf

マーケットプレイスのレビュアーは、その URL を cursor.com/marketplace/publish に送信できます。 カタログのタイトルは Golf Course Data by Stracka です。

同梱の mcp.json は、Streamable HTTP 経由でホストされた MCP https://mcp.golfintelligence.com/mcp に接続します。そのため、プラグインのインストールにローカルの Node ビルドは必要ありません。コンソールの認証情報は、.cursor-plugin/plugin.json で宣言されたプラグイン変数から入力される X-GI-Client-ID および X-GI-Active-Token ヘッダーとして送信されます。

以前のリリースでは、プラグイン相対パスの dist/index.js に対して node を起動していました。 Cursor は Agent Plugins の ${PLUGIN_ROOT} 変数を展開しないため、そのプレースホルダーが文字列のまま Node に渡され、コネクターが Cannot find module '.../${PLUGIN_ROOT}/dist/index.js' で失敗していました。ホストされたコネクターにより、この障害は完全に解消されます。

mcp.stdio.json には、オフラインおよび開発で使用するローカル stdio サーバーが残されています。 これは自動検出されません。golf エントリーを .cursor/mcp.json にコピーするか(チェックアウトでは ${workspaceFolder} を使用)、mcpServers からそのファイルを指定してください。ローカルの stdio 設定では、必ず ${CURSOR_PLUGIN_ROOT} を使用し、${PLUGIN_ROOT} は使用しないでください。コミット済みの dist/index.js バンドルは、リポジトリと MCPB パッケージに含まれているため、先にビルドを実行しなくても stdio パスを使用できます。

公式 MCP Registry 名は io.github.golf-data/golf です。Registry では golf のみの名前は受け付けられません。Cursor、Agent Plugins、Claude Code のプラグインハンドルは引き続き golf です。

API アクセスの取得

パスワードなしで console.golfintelligence.com にサインインできます。ログインページでメールアドレスを入力して確認コードをリクエストし、コードが届いたら入力してください。API Account を作成し、プラグインで必須の次の 2 つの変数を設定します。

  • GI_CLIENT_ID:ご自身の Client ID
  • GI_ACTIVE_TOKEN:ご自身の Active Token

Active Token は有効期間の短いベアラートークンと交換されます。これはベアラートークンではありません。GI_ACTIVE_TOKEN にベアラートークンを貼り付けないでください。

ご自身のコンソールアカウントの認証情報を使用してください。このプロジェクトではデモトークンを提供していません。

プランは月額制で、コンソールからセルフサービスでアップグレードまたはダウングレードできます。

  • Tester: 月額 $49、月 100 クレジット。
  • Starter: 月額 $399、月 10,000 クレジット。

請求、クレジット、プラン、ログイン、認証情報については、 [email protected] までメールでお問い合わせください。コースデータの更新については、 [email protected] までメールでお問い合わせください。

ツールとクレジット

必ず最初に検索してください。search_course_groups は無料です。有料の呼び出しを行う前に、ユーザーは提示された費用を明示的に承認する必要があります。confirm_spend=true が指定されていない場合、サーバーは有料ツールの呼び出しを拒否します。

ツール返される内容クレジット
search_course_groupsコースグループの検索結果0
get_course_group_scorecardスコアカードデータ1
get_course_group_gps地図化されたコースの形状と座標2
get_course_group_detail詳細なコースグループデータ3
get_green_slope_imageグリーンの傾斜画像(縦長または正方形)1

認証

ローカルの stdio サーバーと従来のユーザーごとの HTTP 認証情報ヘッダーは、設定済みの認証情報を次のエンドポイントと交換します。

POST https://api.golfintelligence.com/auth/authenticateToken
grant_type=client_credentials
code=<GI_ACTIVE_TOKEN>
client_id=<GI_CLIENT_ID>

返された access_token を Authorization: Bearer <access_token> として送信し、メモリ内のみにキャッシュして、HTTP 401 の後に一度だけ更新します。認証情報がログに記録されることはありません。

ホスト型 MCP では、ChatGPT 向けの S256 PKCE を使った OAuth 2.1 認可コードフローも実装されています。専用の認可ページで、各ユーザーが自身のコンソール Client ID と Active Token を入力すると、Golf Intelligence による検証を経て、そのアカウントが暗号化されたアクセス トークンとリフレッシュ トークンに紐付けられます。ディスカバリー URL、OpenAI ポータルの設定、レビュアー向け手順、デプロイ用シークレットについては、docs/OPENAI-CHATGPT-OAUTH.md を参照してください。

ストリーマブル HTTP

ホスト型 MCP は、公式の MCP Streamable HTTP トランスポートを次の URL で利用できます。

https://mcp.golfintelligence.com/mcp

本番環境の HTTP エントリーポイントでは、このトランスポートを /mcp で、ヘルスチェックを /health で提供します。OpenAI Apps のドメイン検証用に、OPENAI_APPS_CHALLENGE_TOKEN(または OPENAI_APPS_CHALLENGE)が設定されている場合は、GET /.well-known/openai-apps-challenge も text/plain で提供します。設定されていない場合、このパスは 404 を返します。次のコマンドで HTTP サーバーをローカル起動します。

npm run build
PORT=3000 npm run start:http

0.0.0.0:$PORT にバインドします。既存の node dist/index.js stdio エントリーポイントと、すべてのプラグインパッケージに変更はありません。

HTTP サービスは、次のいずれかの形式で Golf Intelligence の ID 情報を受け付けます。

  1. ユーザーが自身の GI アカウントでサインインした後、このサービスが発行する OAuth ベアラートークン。
  2. 既存のプラグインのインストール環境から、すべての MCP リクエストにまとめて指定される従来の X-GI-Client-ID と X-GI-Active-Token ヘッダー。

サーバー全体で共有する GI_CLIENT_ID/GI_ACTIVE_TOKEN のフォールバックは意図的に用意していません。HTTP エントリーポイントはこれらの環境変数を無視するため、匿名の呼び出し元がデプロイ用アカウントを引き継いだり、そのクレジットを使用したりすることはできません。OAuth がない場合や無効な場合は、OAuth 保護リソースチャレンジを含む HTTP 401 を返します。Active Token は交換用の認証情報であり、Authorization: Bearer の値として送信してはいけません。

各ツールは、次の MCP アノテーションを明示的に宣言します。

  • readOnlyHint: true — 各ツールはコースデータを取得するだけです。
  • openWorldHint: false — 公開システムや外部システムに書き込むツールはありません。
  • destructiveHint: false — 何かを削除、上書き、公開、送信するツールはありません。
  • 無料検索では idempotentHint: true。
  • 有料ツールでは idempotentHint: false。有料ツールを繰り返し呼び出すたびに、再度クレジットが消費される可能性があるためです。

これらの文は、OpenAI の申請フォームでアノテーションの根拠としても使用できます。有料の検索には、上記と同じクレジット料金で、引き続き confirm_spend=true が必要です。

コンテナのデプロイ

Dockerfile は、認証情報を埋め込まずに両方のトランスポートをビルドします。fly.toml は小規模な Fly.io サービスを設定し、/health をチェックします。初回デプロイの前に、Fly アプリ名がグローバルで一意であり利用可能なことを確認するか、app を変更してください。次に、docs/OPENAI-CHATGPT-OAUTH.md に記載された OAuth シークレットを設定してデプロイします。最低限、次の設定が必要です。

fly volumes create oauth_state --region ord --size 1
fly secrets set OAUTH_ENCRYPTION_KEY="$(openssl rand -base64 32)"
fly secrets set OAUTH_ISSUER=https://mcp.golfintelligence.com
fly secrets set OPENAI_APPS_CHALLENGE_TOKEN=...
fly deploy

マウントされたボリュームには、GI 認証情報ではなく、OAuth のリプレイ/ローテーション状態が保存されます。このファイルベースの状態ストアには、Machine を 1 台だけ使用してください。

ホスト型 HTTP の呼び出し元に、共有 GI アカウントを設定しないでください。別のブートストラップまたは stdio のワークフロー用に GI_CLIENT_ID/GI_ACTIVE_TOKEN を設定していても、それらは HTTP リクエストの認証には使用されません。

OPENAI_APPS_CHALLENGE_TOKEN には、OpenAI Platform のドメイン検証に表示されるトークンを設定してください。このトークンをコミットしないでください。デプロイ後、GET https://mcp.golfintelligence.com/.well-known/openai-apps-challenge は、トークンを text/plain で返します。

ツール名と説明はデプロイ済みバンドルに含まれるため、再デプロイするまでは、ホスト型 MCP で以前の内容が提供され続けます。マーケットプレイスの掲載情報を更新する前に再デプロイし、Fly、マーケットプレイス、MCP Registry の全手順については docs/RELEASE.md に従ってください。

リポジトリの構成

  • .cursor-plugin/plugin.json — Cursor マーケットプレイスのマニフェストと必須変数
  • plugin.json — Agent Plugins のオープン標準マニフェスト(ハンドル golf)
  • .claude-plugin/plugin.json — Claude Code / Cowork プラグインのマニフェスト(ハンドル golf)
  • server.json — 公式 MCP Registry のメタデータ(io.github.golf-data/golf)
  • manifest.json — stdio Node サーバー用の MCPB バンドルマニフェスト
  • .github/workflows/publish-mcp.yml — GitHub OIDC 経由で io.github.golf-data/golf を公式 MCP Registry に公開します
  • mcp.json — ホストされた MCP エンドポイントを指定する、バンドル済みの golf コネクター
  • mcp.stdio.json — オフライン開発用の任意のローカル stdio 設定
  • skills/golf/SKILL.md — ワークフローと利用料の確認に関するガイダンス
  • docs/SMOKE-CHECKLIST.md — デプロイ後および公開後の検証手順
  • docs/RELEASE.md — Fly の再デプロイ、GitHub リリース、レジストリ公開の手順書
  • src/ — TypeScript 製の MCP サーバーと API クライアント
  • dist/index.js — インストーラーで使用する、コミット済みの stdio ESM バンドル
  • dist/http.js — コンテナーで使用する、コミット済みの Streamable HTTP ESM バンドル
  • Dockerfile と fly.toml — 本番用 HTTP コンテナーと Fly.io サービス

Node.js 18 以降を使用した開発の場合:

npm install
npm test
npm run build
npm run pack:mcpb

pack:mcpb は公式の @anthropic-ai/mcpb pack CLI を使用して golf.mcpb を生成し、その SHA-256 を server.json に書き込みます。GitHub Releases では、このアセットを https://github.com/golf-data/golf/releases/download/v1.0.2/golf.mcpb でホストします。

プラグインコードは MIT License の下で利用できます。Golf Intelligence API のデータには、golfintelligence.com に記載された利用規約が引き続き適用されます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。