Gameye について
Gameye のオーケストレーション API を操作する MCP サーバーです。マルチプレイヤーゲームのセッションを起動・確認でき、起動数の制限や API トークン保護にも対応しています。
主な機能
- 01ゲームセッションの起動と停止
- 02セッション、ポート、プレイヤーの確認
- 03イメージタグとホスティング地域の確認
- 04ログとコンテナアーティファクトの取得
- 05アプリケーションとトークンの作成・編集
- 06ドライランと起動数の制限
活用シーン
- 01マルチプレイヤーマッチ用サーバーの起動
- 02セッション状態とプレイヤー情報の確認
- 03ログやアーティファクトによる調査
- 04デプロイ用アプリケーションイメージの準備
MCP 対応
セッション管理、アプリケーション操作、ログやアーティファクトの取得など、Gameye API の操作を MCP クライアント向けのツールとして公開します。stdio で通信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y gameye-mcpGAMEYE_API_TOKENシークレットGameye API token. Use the least-privileged scopes you need.GAMEYE_ENVAPI host: sandbox (self-serve, default) or production (enterprise).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
15掲載時のツール一覧 · 3 日前に更新
このツールにパラメーターはありません。
詳細
Gameye MCP サーバー
Gameye のゲームサーバーオーケストレーション API 用の Model Context Protocol サーバーです。AI エージェント(Claude Code、Claude Desktop、Cursor、または任意の MCP クライアント)から、ゲームサーバーのセッションを起動して確認したり、イメージタグやリージョンを確認したり、ログやアーティファクトを取得したりできます。自然な言葉で指示でき、エディターを離れる必要はありません。
ステータス:ベータ(
0.x)。リリース間でツール、入力、出力が変わることがあり、バグが含まれる場合もあります。サーバーは起動時とgameye_contextで、接続するすべてのクライアントにその旨を伝えます。npm ではgameye-mcpとして、コンテナイメージではghcr.io/gameye/gameye-mcpとして、また MCP Registry ではio.github.Gameye/gameye-mcpとして公開されています。各リリースの変更点については変更履歴をご覧ください。
クイックスタート
GAMEYE_API_TOKEN=<your-token> npx -y gameye-mcp
Node.js 22 以降が必要です。サーバーは stdio 経由で MCP と通信します。通常は MCP クライアントがサーバーを起動するため(インストールを参照)、手動で実行する必要はほとんどありません。
環境
Gameye には、一般公開されている API ホストが 2 つあります。サーバーはデフォルトで sandbox を使用します。
GAMEYE_ENV | ホスト | 対象 |
|---|---|---|
sandbox(デフォルト) | https://api.sandbox-gameye.gameye.net | セルフサービスの顧客向けです。テスト専用ではなく、ライブマッチを実行する常時利用可能な環境です。 |
production | https://api.production-gameye.gameye.net | エンタープライズ顧客向けです。 |
環境はサーバープロセスの設定です。どのツールも環境を引数に取らないため、エージェントが会話の途中で production に切り替えることはできません。両方が必要な場合は、それぞれ独自のトークンを使う名前付きサーバーエントリ(たとえば gameye-sandbox と gameye-production)を 2 つ設定してください。
環境変数
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
GAMEYE_API_TOKEN | はい | — | Gameye API トークンです。必要最小限の権限スコープを使用してください(下記を参照)。 |
GAMEYE_ENV | いいえ | sandbox | sandbox または production。API ホストを選択します。 |
GAMEYE_API_URL | いいえ | — | テスト専用のホスト上書き設定です。https である必要があります。既知の 2 つのホストのいずれかと一致する場合は、GAMEYE_ENV と一致しないとサーバーの起動が拒否されます。それ以外の URL は、すべてのツールの結果で custom と表示されます。 |
GAMEYE_ENABLE_SKILLS_UPDATE | いいえ | — | 1 に設定すると、gameye_update_skills が apply: true でスキルのアップデーターを実行できるようになります。この設定がない場合、ツールはコマンドの確認と一覧表示のみを行います。 |
GAMEYE_MAX_SESSIONS | いいえ | 5 | このサーバーが起動するセッションのうち、同時に実行できる最大数です。上限を超える起動は拒否されます。 |
GAMEYE_MAX_TTL | いいえ | 4h | 起動時に指定できる ttl の最大値です。最低でも 30m である必要があります。これより長い TTL、または 0 は拒否されます。 |
GAMEYE_MAX_LAUNCHES | いいえ | 20 | サーバーの 1 回の起動あたりの起動回数です。サーバーを再起動するとリセットされます。 |
GAMEYE_STOP_OWN_ONLY | いいえ | — | 1 に設定すると、gameye_stop_session はこのサーバーが起動したセッションのみを停止します。 |
GAMEYE_TIMEOUT_MS | いいえ | 30000 | リクエストごとのタイムアウト(ミリ秒)です。正の整数を指定してください。ログのスナップショットでは最低 60 秒、アーティファクトのダウンロードでは最低 120 秒が設定されます。タイムアウトしたリクエストは、ツールエラー Request to <host> timed out after <n>s として返されます。 |
インストール
Claude Code
claude mcp add gameye --env GAMEYE_API_TOKEN=<your-token> -- npx -y gameye-mcp
production で使用する場合は、--env GAMEYE_ENV=production を追加し、production 用のトークンを使用してください。
その他の MCP クライアント
ほとんどのクライアント(Claude Desktop、Cursor、Windsurf など)は、mcpServers ブロックに対応しています。
{
"mcpServers": {
"gameye": {
"command": "npx",
"args": ["-y", "gameye-mcp"],
"env": {
"GAMEYE_API_TOKEN": "<your-token>",
"GAMEYE_ENV": "sandbox"
}
}
}
}
設定を変更した後は、クライアントを再起動してください。
npx -y gameye-mcp は最新リリースを実行します。バージョンを固定するには、バージョンを指定してください:npx -y [email protected](または "args": ["-y", "[email protected]"])。
Windows
このサーバーは、Node.js 22 以降を搭載した Windows で動作します。Windows 11 で Claude Code 経由および通常の stdio 経由でテスト済みです。Windows で問題が発生した場合は、issue を作成してください。
-
多くの Windows MCP クライアントは、
.cmdスクリプトであるnpxを直接起動できません。代わりにcmd /c経由で起動してください。"command": "cmd", "args": ["/c", "npx", "-y", "gameye-mcp"]Claude Code の場合:
claude mcp add gameye --env GAMEYE_API_TOKEN=<your-token> -- cmd /c npx -y gameye-mcp。Claude Code 2.1.296 以降では、通常のnpxも起動できます。 -
PowerShell で手動実行する場合は、
npxではなくnpx.cmdと入力してください。新規の Windows インストールでは、「このシステムではスクリプトの実行が無効になっているため」、npxの PowerShell スクリプトがブロックされます。 -
初回起動時はパッケージをダウンロードするため、10~40 秒かかることがあります。2 回目以降の起動は約 1 秒です。
-
gameye_update_skillsは Windows では古いスキルを報告しますが、更新は実行しません。実行するコマンドを表示します。 -
gameye_create_tokenは macOS と Linux では所有者のみがアクセスできる権限でトークンファイルを書き込みます。Windows ではその権限は適用されず、ファイルには配置先フォルダーのアクセス規則が適用されます。ユーザープロファイル内に書き込んでください。
Docker
マシンに Node.js がない場合は、公開済みのイメージを実行してください。amd64 と arm64 で動作します。
{
"mcpServers": {
"gameye": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "GAMEYE_API_TOKEN", "-e", "GAMEYE_ENV", "ghcr.io/gameye/gameye-mcp"],
"env": {
"GAMEYE_API_TOKEN": "<your-token>",
"GAMEYE_ENV": "sandbox"
}
}
}
}
Claude Code の場合:claude mcp add gameye --env GAMEYE_API_TOKEN=<your-token> -- docker run -i --rm -e GAMEYE_API_TOKEN ghcr.io/gameye/gameye-mcp。
- 各変数は値を指定せずに
-e NAMEで渡してください。これにより Docker はクライアントの環境から値をコピーするため、トークンがコマンドラインに表示されません。 -iはそのままにし、-tは追加しないでください。ターミナルを使用すると、stdout 上の JSON-RPC メッセージが破損します。- 1 つのバージョンを使い続けるには、
ghcr.io/gameye/gameye-mcp:0.4.0のようなバージョンタグを使用してください。 - サーバーが書き込むファイルはコンテナー内に残り、
--rmによって削除されます。gameye_get_artifactsはダウンロードしたファイルを一時ディレクトリに保存します。保持するには、ディレクトリをマウントして一時ディレクトリをそこに設定してください:-v /absolute/dir:/out -e TMPDIR=/out。ツールが報告するパスはコンテナーパスです。ホスト上のファイルは/absolute/dirにあります。gameye_create_tokenは指定したoutputPathに書き込みます。同じ方法でディレクトリをマウントし、/out配下のoutputPathを渡してください。- サーバーは uid 1000 で実行されるため、Linux ではマウントしたディレクトリをそのユーザーが書き込み可能である必要があります。
トークンのスコープ
サーバーには、必要なスコープだけを持つトークンを付与してください。
| レシピ | スコープ | エージェントが実行できること |
|---|---|---|
| オブザーバー | session:read logs:read artifact:read regions:read region:read application:read | セッション、ログ、アーティファクト、リージョン、アプリケーションを確認できます。変更はできません。 |
| オペレーター | オブザーバー + session:start session:stop session:write | セッションの起動と停止、セッション状態の更新もできます。 |
| デプロイヤー | オペレーター + application:write | アプリケーションの作成と編集もできるため、エージェントはデプロイを最初から最後まで設定できます。 |
| トークン管理者 | デプロイヤー + token:write | API トークンの作成もできます。 |
Gameye API トークンをゲームサーバーの環境変数に絶対に渡さないでください。 ゲームサーバーにそのトークンは不要であり、コンテナー内のすべてのものから読み取られる可能性があります。
利用可能なツール
すべてのツールの結果には、使用した環境とホストが含まれます。例:[sandbox · api.sandbox-gameye.gameye.net]
| ツール | 種類 | 説明 |
|---|---|---|
gameye_context | 読み取り | このサーバーの対象となる環境、ホスト、サーバーバージョン、およびガードレールのデフォルト設定(セッションの TTL、launched-by ラベル、トークンの有効期限)を表示します |
gameye_launch_session | 書き込み、dryRun | コンテナ化されたゲームサーバーを起動します(有料)。デフォルトの TTL とエージェントラベルが適用されます。ガードレールを参照してください |
gameye_list_sessions | 読み取り | 実行中のセッションを一覧表示します(フィルタリング可能。all=true ですべてのステータスを対象にします) |
gameye_describe_session | 読み取り | セッションの詳細、ポート、プレイヤーを取得します |
gameye_stop_session | 破壊的、dryRun | 正確な ID を指定してセッションを 1 つ停止します |
gameye_player_join | 書き込み | 1 人以上のプレイヤーを参加済みとして登録します |
gameye_player_leave | 書き込み | 1 人以上のプレイヤーをセッションから削除します |
gameye_get_locations | 読み取り | 現在イメージをホストできるロケーションを一覧表示します |
gameye_list_regions | 読み取り | 組織で利用可能なリージョンを一覧表示します |
gameye_check_tag | 読み取り | イメージタグがリージョンで利用可能かどうかを確認します |
gameye_list_applications | 読み取り | レジストリ、リソース、リージョン、ポートを含むアプリケーションの一覧を表示します |
gameye_list_registry_tags | 読み取り | アプリケーションの上流レジストリにあるタグを一覧表示します(ページ分割) |
gameye_enable_tag | 書き込み、dryRun | アプリケーションのイメージタグを有効にし、Gameye が事前ロードできるようにします |
gameye_get_logs | 読み取り | セッションログを取得します |
gameye_get_artifacts | 読み取り | セッションコンテナからファイルまたはディレクトリを tar アーカイブとしてダウンロードします |
gameye_create_application | 書き込み、dryRun | アプリケーションを作成します |
gameye_edit_application | 破壊的、dryRun | アプリケーションを変更します。省略したフィールドは変更されません |
gameye_create_token | 書き込み、dryRun | API トークンを作成し、ファイルに書き込みます |
gameye_update_skills | 読み取り、または apply を指定して書き込み | インストール済みの Gameye スキルと最新パックを比較し、apply: true を指定して更新します。スキルを最新の状態に保つを参照してください |
すべてのツールには MCP アノテーションが付いています。読み取りツールは readOnlyHint を設定し、gameye_stop_session と gameye_edit_application は destructiveHint を設定します。また、Gameye API を呼び出すすべてのツールは openWorldHint を設定します。
ツールセットは、Gameye クライアント API のすべての操作に対応しています。tests/parity.test.ts では、これを spec/ に同梱された仕様と照合して確認します。
ガードレール
セルフサービスの顧客向けにサンドボックスでも実際のマッチが実行されるため、これらはサンドボックスと本番環境で同じように動作します。
- ドライラン。
gameye_launch_session、gameye_stop_session、gameye_enable_tag、アプリケーションツールおよびトークンツールは、dryRun: trueを受け付けます。ツールは API トークンをマスキングしたうえで、正確なリクエスト(メソッド、ホスト、パス、本文)を返し、何も送信しません。 - セッションの制限。
ttlを指定せずに起動すると、30mの TTL が設定され、結果にはデフォルト値が適用されたことが示されます。すべての起動リクエストにはラベルlaunched-by: gameye-mcpが送信されます。呼び出し元が渡したlaunched-byの値は置き換えられるため、エージェントが起動したセッションはgameye_list_sessionsとfilter: { "launched-by": "gameye-mcp" }で検索できます。イメージとリージョンがウォームプールから提供される場合、Gameye API はリクエストのラベル(および env と args)を無視するため、ウォームプールのセッションにはこのラベルが付きません。 - ゲームサーバーにトークンを含めない。 env の値または名前、arg、ラベルのキーまたは値にこのサーバーの Gameye API トークンが含まれている場合、何も送信せずに起動を拒否します。結果に env の値が表示されることはありません。
- 結果にトークンを含めない。 エラーメッセージ、ログ出力、ラベルなどにトークンが含まれる場合に備え、エラーを含むすべてのツール結果で、このサーバーの API トークンを
***に置き換えます。 - 明示的な停止。
gameye_stop_sessionは、正確な ID を指定してセッションを1つだけ停止します。一括停止はできず、空の ID、ワイルドカード、リスト形式の ID は拒否されます。GAMEYE_STOP_OWN_ONLY=1の場合、このサーバーが起動していないセッションも拒否されます。 - セッション数の制限。 Gameye API にはトークンごとの予算がないため、サーバーは起動リクエストの送信前に制限を適用します。デフォルトでは、エージェントが同時に実行できる自身の起動済みセッションは最大5つ(
GAMEYE_MAX_SESSIONS)、各セッションの TTL は最大4h(GAMEYE_MAX_TTL)、サーバーの実行ごとの起動回数は最大20回(GAMEYE_MAX_LAUNCHES)です。これにより、1回の実行で最大4時間のセッションを20個、合計80セッション時間、同時に最大5個までに制限されます。起動の前に、サーバーはlaunched-by: gameye-mcpのセッションを一覧表示して、自身が起動したセッションのうち終了したものを確認します。一覧の取得に失敗した場合、起動は拒否されます。ウォームプールのセッションにはラベルが付かないため、TTL が終了するまでカウントされます。タイムアウトした起動や 5xx エラーが返された起動も、セッションが開始されている可能性があるためカウントされます。制限は1つのサーバープロセスに適用されます。組織内のほかのエージェントやツールが起動したセッションはカウントされず、再起動するとカウントはゼロに戻るため、Gameye でも組織のクォータを設定してください。gameye_contextで適用中の制限を確認できます。
スキルを最新の状態に保つ
Gameye スキルは、Gameye API の変更に合わせて更新されます。gameye_update_skillsは、GitHub のgameyeスキル(mainのskills/gameye/SKILL.mdにあるPack version:)から最新のパックバージョンを読み取り、インストール済みのバージョンと比較します。
- skills CLI、ユーザー全体:
gameye/gameye-skillsをソースとする、~/.agents/.skill-lock.jsonに記録されたスキルです。 - skills CLI、このプロジェクト: 同じスキルが、サーバーの作業ディレクトリにある
skills-lock.jsonに記録されています。 - Claude Code プラグイン:
~/.claude/plugins/installed_plugins.jsonにあるgameye@gameyeです。
applyを指定しない場合は、報告のみを行います。apply: trueを指定し、かつサーバーがGAMEYE_ENABLE_SKILLS_UPDATE=1で起動されている場合に限り、各古いインストールの専用アップデーターを実行します。具体的には、npx -y [email protected] update <the Gameye skills> -g -y(または-p -y)、あるいはclaude plugin marketplace update gameyeに続けてclaude plugin update gameye@gameyeを実行します。それ以外の場合は、実行するコマンドを一覧表示します。アップデーターには、パス、ホーム、テンポラリ、ロケール、プロキシ、CA 設定、npm および Claude の設定だけを含む最小限の環境が渡されます。GAMEYE_*変数や、トークン、シークレット、パスワード、キーのような名前のものは渡されません。ロックファイルのソースがgameye/gameye-skillsであるスキルだけを更新し、スキルのテキスト自体をダウンロードしたり参照したりすることはありません。各コマンドは stdin を閉じた状態で実行され、制限時間は90秒です。Windows ではコマンドを実行せずに表示します。実行中のエージェントセッションでは読み込み済みのスキルが引き続き使われ、更新は次のセッションから適用されます。gameyeスキルは、エージェントに会話ごとに一度チェックを実行し、適用前に確認するよう指示します。
テレメトリ/アトリビューション
Gameye API へのすべてのリクエストには、User-Agent: gameye-mcp/<version>に加えて、接続後は MCP クライアントの名前が送信されます。例:gameye-mcp/0.1.0 (claude-code)。これにより、Gameye は MCP の利用状況を集計できます。送信されるのはこのサーバーのバージョンとクライアント名だけです。それ以外の情報、つまりトークン、環境変数の値、パス、その他のデータは送信されません。ほかのテレメトリはありません。
アプリケーションおよびトークンのツール
gameye_create_application、gameye_edit_application、gameye_create_tokenは常に登録されています。エージェントが実際にできることはトークンのスコープによって決まります。application:writeまたはtoken:writeが必要で、これらのスコープを持たないトークンを使うと、不足しているスコープを示す403エラーが返されます。エージェントによるアプリケーションの変更やトークンの発行を防ぐには、これらのスコープを持たないトークンを渡してください。
gameye_create_tokenは新しいトークンを返しません。指定されたoutputPathのファイルにトークンを書き込み、パス、スコープ、有効期限のみを返します。
outputPathは、誤ってトークンをコミットしないよう、すべての Git 作業ツリーの外にある絶対パスを指定してください。overwrite: trueを指定しない限り、既存のファイルへの書き込みは拒否されます。シンボリックリンクは常に拒否されます。- ファイルは
0600の権限で、シンボリックリンクをたどらずに排他的に作成されます。トークンを発行する前にファイルを確保するため、不正なパスによってトークンが作成されることはありません。 expires_afterの既定値は24hです。要求するスコープは、サーバートークン自身のスコープのサブセットである必要があります。- トークンの発行後にファイルへ書き込めない場合(たとえば、ディスク容量が不足している場合)、不完全なファイルは残されません。ツールはトークン名を示し、トークンは作成されたもののシークレットは失われたことを伝えるエラーを返すため、トークンを失効させることができます。
gameye_edit_applicationは、指定されたフィールドのみを送信します。regionsとportsを指定した場合、リスト全体が置き換えられます。
TLS ポート
tls: trueを指定したポートでは、ホスト上で Gameye が TLS を終端します。gameye_create_applicationで設定してください。gameye_edit_applicationではtlsは適用されず、edit を通じて送信されたportsはすべてtls=falseとして保存されます。そのため、TLS を使用するアプリケーションを編集する場合は、portsを省略してください。
エージェントスキル
セッションのライフサイクル、マッチメイキング、ウェブフックなど、Gameye との連携方法をエージェントに教えるには、姉妹プロジェクトのgameye-skillsをインストールしてください。スキルは、利用可能な場合はこれらの MCP ツールを使用し、利用できない場合は通常の HTTP にフォールバックします。
開発
CONTRIBUTING.mdをご覧ください。
npm ci
npm test
npx tsc --noEmit -p tsconfig.test.json
npm run build
spec/client.yamlは公開サンドボックスの/openapi.yamlのスナップショットで、spec/overrides.yamlには各操作に対応するMCPツール名が記載されています。これはgameye-skillsのspec/overrides.yamlにあるtools:マップを、scripts/reduce-overrides.mjsで絞り込んだものです(gameye-skillsでは、サーバーが仕様と異なる箇所を記録した完全なファイルを保持しています)。npm run sync-spec [path-or-url-to-overrides.yaml]を実行すると、両方を更新できます。どちらかのスナップショットに差分がある場合、npm run check-specは終了コード1を返します。
Gameyeについて
Gameyeは、マルチプレイヤーゲームサーバー向けのマネージドホスティングプラットフォームです。コンテナイメージを用意すると、Gameyeは1つのAPIを通じて、各マッチ専用のサーバーを起動します。
- セッションAPIのドキュメント:gameye.com/docs/api-v2
- Gameyeのドキュメント:gameye.com/docs
- 無料でお試しください:trial.gameye.com
セキュリティ
脆弱性は非公開でご報告ください。SECURITY.mdをご覧ください。
ライセンス
MIT © Gameye B.V.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。