Edgegap について
Edgegap MCP Serverは、ゲーム開発向けコーディングエージェントからEdgegap上のマルチプレイヤーサーバーを管理できます。コンテナの準備からデプロイ、ログ確認まで扱い、ホストクライアント方式の中継セッションにも対応します。
主な機能
- 01ゲームサーバー用Dockerfileの生成・確認
- 02イメージのプライベートレジストリへのプッシュ
- 03バージョン作成と専用サーバーのデプロイ
- 04デプロイ状況、ログ、リソース使用量の確認
- 05ホストクライアントゲーム向け中継セッションの作成
活用シーン
- 01ヘッドレスゲームサーバービルドのデプロイ準備
- 02プレイヤー近くへのサーバーデプロイと接続テスト
- 03ログとリソース使用量による障害調査
- 04CI/CDでのデプロイテストと削除
MCP 対応
MCPサーバーとして、コーディングエージェントにEdgegapのオーケストレーション機能を提供します。コンテナイメージの準備、専用サーバーや中継のデプロイ、稼働状況の確認ができます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.edgegap.dev/mcpclaude mcp add --transport http edgegap https://mcp.edgegap.dev/mcp{"mcpServers":{"edgegap":{"type":"http","url":"https://mcp.edgegap.dev/mcp"}}}Cursor で開く{"servers":{"edgegap":{"type":"http","url":"https://mcp.edgegap.dev/mcp"}}}VS Code で開く{"mcpServers":{"edgegap":{"type":"http","url":"https://mcp.edgegap.dev/mcp"}}}{"mcpServers":{"edgegap":{"serverUrl":"https://mcp.edgegap.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.edgegap.dev/mcp認証が必要ツール
22このツールにパラメーターはありません。
詳細
Edgegap MCP サーバー
MCP サーバーを通じて、AI コーディングエージェントを Edgegap に接続できます。エージェントは、ヘッドレスサーバーのビルドからプレイヤーの接続までを一貫して対応できます。Dockerfile の作成や確認、プライベートな Edgegap レジストリへのイメージのプッシュ、プレイヤーの近くへの権威型専用サーバーのデプロイ、問題発生時のログの確認が可能です。
👉 対応機能
ヒント
Unity、Unreal Engine、または Godot をお使いですか? これらのエンジンには、Unity、Unreal Engine、Godot のガイドとプラグインが引き続き最も迅速な方法です。MCP サーバーはこれらと併用でき、あらゆるエンジンで単独でも使用できます。
次のような場合に、MCP サーバーをご利用ください。
- ゲームサーバーをコンテナ化する - エージェントがベストプラクティスに沿ってビルド用の Dockerfile を作成する(または既存の Dockerfile を確認する)、イメージをプライベートコンテナレジストリにプッシュする、未使用の古いイメージタグを削除してレジストリの容量を確保するといった作業を行います。
- 専用サーバーをデプロイする - アプリのバージョンを作成・更新し、利用可能なロケーションを確認し、プレイヤーの近くにデプロイして、クライアント接続のテスト用にポート付きのサーバー IP を取得します。
- CI/CD パイプラインを構築する - ビルドシステムからデプロイと削除をテストします。
- ゲームサーバーの問題をトラブルシューティングする - アプリのバージョンとデプロイ状況を確認し、コンテナのログと CPU/メモリ使用率を読み取るか、失敗したデプロイを再現します。
- クライアントホスト型ゲームやピアツーピアゲームを運用する - NAT パンチスルーを可能にし、接続のブロックを回避するリレーセッションを作成します。決定する前に、オーケストレーションモデルと専用サーバーとリレーのどちらを選ぶかをご確認ください。
警告
MCP の対象外/非対応:Linux サーバー実行ファイルのビルド、マッチメーカーの作成・起動・停止(生成された設定をダッシュボードにアップロードしてください)、サーバーブラウザー、ロビー、マネージドクラスター、プライベートフリート、請求。
メモ
サポートが必要な場合は、Discord からお問い合わせください。稼働中のゲームについては、チケットシステムをご利用ください。
⚖️ 専用サーバーとリレー、どちらを選ぶべきですか?
Edgegap では、マルチプレイヤーゲームを 2 つの方法でホストできます。専用サーバーを推奨しており、MCP サーバーも同様です。エージェントはデフォルトで専用サーバーを使用し、ホストクライアント構成を選択した場合にのみリレーを使用します。
| 専用サーバー(推奨) | リレー | |
|---|---|---|
| Edgegap が実行するもの | プレイヤーの近くにある、ヘッドレスサーバーのビルド | ゲームコードを実行しない、トラフィックの転送のみ |
| ゲームを実行するもの | サーバー | いずれかのプレイヤーのゲーム(ホスト) |
| 不正行為 | サーバーが権限を持つため、はるかに困難です | ホストはあらゆる変更が可能です |
| 公平性 | すべてのプレイヤーがサーバーに直接接続します | ホストの遅延はなく、ほかの全員は 2 つのホップを経由します |
| ホストが退出した場合 | マッチは続行されます | ゲームがホスト移行に対応していない限り、マッチは終了します |
| パフォーマンスを制限する要因 | 割り当てられたサーバーの CPU とメモリ | ホストの PC と自宅のインターネット回線のアップロード速度 |
| 必要なもの | コンテナイメージ内のサーバービルド | リッスンサーバー(ホストクライアント)として構築されたネットコード |
メモ
サーバーイメージがまだありませんか? それを理由にリレーを選ぶ必要はありません。エージェントは
edgegap_generate_dockerfileを使って、ビルド用の Dockerfile を作成できます。リレーについて詳しくは、分散リレーをご覧ください。
🚀 インストール
MCP サーバーのインストールはとても簡単です。
Edgegap API のシークレットトークンは、ダッシュボード - ユーザー設定 / トークンで生成(および表示)できます。
各 API リクエストの HTTP ヘッダーに、シークレットトークンを追加します(token という語を含めてください)。
Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62
注意
Edgegap API のエンドポイントをゲームクライアントに組み込まないでください。API トークンを使うと、アカウントに無制限にアクセスできてしまいます。安全なクライアント向け API エンドポイントと関数については、統合をご覧ください。
ヒント
シークレットトークンが侵害または漏洩した場合は、ダッシュボードから削除して再作成してください。
トークンは組織全体に適用され、1 つのアプリケーションに限定できません。無人で動作するエージェントにトークンを渡す前に、DESIGN.mdをお読みください。
人気のエージェント
このページ上部にある Cursor または VS Code のボタンを使って、お好みのエージェント対応 IDE に Edgegap MCP サーバーをインストールし、トークンを Authorization ヘッダーに追加してください。
Claude Code
claude mcp add --transport http edgegap https://mcp.edgegap.dev/mcp \
-H "Authorization: token xxxxxxxx-e458-4592-b607-c2c28afd8b62" --scope user
ChatGPT Codex
Codex は環境変数からトークンを読み込み、Authorization: Bearer <token> として送信します。ホスト型エンドポイントはこの形式を受け付けます。~/.codex/config.toml に次のように設定します。
[mcp_servers.edgegap]
url = "https://mcp.edgegap.dev/mcp"
bearer_token_env_var = "EDGEGAP_API_TOKEN"
次に、Codex の起動元の環境で EDGEGAP_API_TOKEN にトークンを設定します。
Claude Desktop と claude.ai
claude.ai と Claude Desktop のカスタムコネクターは Authorization ヘッダーを送信できないため、ホスト型エンドポイントにトークンが届きません。コネクターは接続済みと表示されますが、すべてのツール呼び出しが失敗します。代わりにローカルサーバーを使用してください。
Claude Desktop で 設定 → 開発者 → 設定を編集 を開き、claude_desktop_config.json にローカルサーバーを追加します。
{
"mcpServers": {
"edgegap": {
"command": "npx",
"args": ["-y", "@edgegap/mcp"]
}
}
}
トークンは記載せず、初回使用時に入力を求められるようにしてください。ブラウザー版の claude.ai ではローカルサーバーを実行できないため、ホスト型エンドポイントが OAuth に対応するまでは Edgegap MCP を使用できません。
Cursor
ページ上部の Cursor ボタンをクリックするとインストールできます。手動で設定する場合は、~/.cursor/mcp.json(またはプロジェクト内の .cursor/mcp.json)に次の内容を追加します。
{
"mcpServers": {
"edgegap": {
"url": "https://mcp.edgegap.dev/mcp",
"headers": { "Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
}
}
}
VS Code(Copilot エージェントモード)
ページ上部の VS Code ボタンをクリックするとインストールできます。手動で設定する場合は、.vscode/mcp.json に次の内容を追加します(VS Code では mcpServers ではなく servers を使用します)。
{
"servers": {
"edgegap": {
"type": "http",
"url": "https://mcp.edgegap.dev/mcp",
"headers": { "Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json で ローカルサーバー を実行します。これは、MCP サーバーをコマンドとして起動するすべてのクライアントで動作します。
{
"mcpServers": {
"edgegap": {
"command": "npx",
"args": ["-y", "@edgegap/mcp"],
"env": { "EDGEGAP_API_TOKEN": "xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
}
}
}
mcp.json
多くのエージェント対応 IDE では、JSON 設定を貼り付けて連携することもできます。
{
"mcpServers": {
"Edgegap": {
"type": "http",
"url": "https://mcp.edgegap.dev/mcp",
"headers": {
"Authorization": "token xxxxxxxx-e458-4592-b607-c2c28afd8b62"
}
}
}
}
カスタム連携
エージェントの仮想化環境に Edgegap リモート MCP サーバーをインストールします(プロジェクトには絶対にインストールしないでください)。
Node、mcp-remote npx パッケージを使用
{
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.edgegap.dev/mcp", "--transport", "http-only"]
}
Python、mcp-proxy uvx パッケージを使用
{
"command": "uvx",
"args": ["mcp-proxy", "--transport", "streamablehttp", "https://mcp.edgegap.dev/mcp"]
}
ワンクリックインストール(Claude Desktop)
edgegap-mcp.mcpb をダウンロードして開きます。Claude Desktop はローカルサーバーを拡張機能としてインストールし、API トークンを要求します。トークンはオペレーティングシステムのセキュアストレージに保存されます。拡張機能の設定には、読み取り専用モード、アプリケーションの許可リスト、最大実行時間の上限、デプロイメント上限(以下の変数)も保存されます。各 リリース には、そのリリースのコードからビルドされたバンドルが添付されています。MCPB バンドルをインストールする他のアプリでも、同じように動作します。
ローカルサーバー
API トークンを自分のマシンに保持するには、代わりにサーバーをローカルで実行します。トークンを指定せずにおくと、初回使用時にエージェントから入力を求められ、そのセッション中だけメモリに保持されます。
{
"mcpServers": {
"Edgegap": {
"command": "npx",
"args": ["-y", "@edgegap/mcp"],
"env": { "EDGEGAP_API_TOKEN": "xxxxxxxx-e458-4592-b607-c2c28afd8b62" }
}
}
}
Node 18 以降が必要です。本番環境では、最新バージョンを追従するのではなく、バージョンを固定してください(@edgegap/[email protected])。公式 MCP レジストリに dev.edgegap/mcp として登録されています。
ローカルサーバーでは、エージェントが実行できる操作を制限することもできます。これらの変数は、mcp.edgegap.dev のホスト型エンドポイントには影響しません。
| 変数 | デフォルト | 目的 |
|---|---|---|
EDGEGAP_API_TOKEN | (入力を求められます) | API トークンです。省略可能です。指定しない場合は、初回使用時に入力を求められます。token プレフィックスは自動的に追加されます。コマンドライン引数として渡さないでください。 |
EDGEGAP_READ_ONLY | 0 | 1 に設定すると、何かを変更するツール(ツールで ● の付いたもの)は登録されなくなり、エージェントがそれらを呼び出すよう誘導されることもありません。 |
EDGEGAP_APP_ALLOWLIST | (空) | カンマ区切りのアプリケーション名です。エージェントが作成およびデプロイできるアプリケーションを制限します。読み取り(アプリケーションやバージョンの一覧表示)は制限されず、実行中のデプロイメントへの操作も制限されません。DESIGN.md を参照してください。 |
EDGEGAP_MAX_DURATION_MINUTES | 60 | エージェントがバージョンに設定できる max_duration の上限です。 |
EDGEGAP_MAX_AGENT_DEPLOYMENTS | 5 | edgegap-mcp タグが付いたデプロイメントがこの数だけ実行中の場合、edgegap_deploy は処理を拒否します。0 にすると上限が無効になります。 |
EDGEGAP_TIMEOUT_MS | 30000 | リクエストごとの HTTP タイムアウトです。 |
EDGEGAP_SKILLS_CHECK | on | off に設定すると、スキルツールは GitHub から最新のスキルバージョンを読み込みません。 |
📚 スキル
このサーバーには Edgegap エージェントスキル が含まれています。これは、テンプレート(Dockerfile、マッチメーカーの設定、Unity C# および Unreal C++ 用の差し込みコード)や既知の落とし穴を含む、マルチプレイヤーゲームをオンラインで稼働させるための、テスト済みの手順を段階ごとにまとめたワークフローです。Edgegap MCP に接続されたエージェントは、別途インストールしたりトークンを用意したりすることなくこれらを利用でき、ゲームプロジェクトで作業を始める前に、該当するスキルを読み込むよう指示されます。
| スキル | 対象 |
|---|---|
edgegap | Unity または Unreal Engine 以外のエンジンや、プラットフォームに関する質問は、まずここから始めてください。他のスキルへの案内も行います。 |
edgegap-unity | Unity のエンドツーエンド対応:サーバービルド、マッチメーカー、クライアント、エンドツーエンドテスト。 |
edgegap-ngo | Netcode for GameObjects を使用する Unity のエンドツーエンド対応:サーバーの起動と自動停止、マッチ検索パネル、Boss Room アダプター、マッチメーカー。 |
edgegap-fishnet | FishNet を使用する Unity のエンドツーエンド対応:ヘッドレスサーバー、Bayou/WebGL、マッチメーカー、エンドツーエンドテスト。 |
edgegap-purrnet | PurrNet を使用する Unity のエンドツーエンド対応:専用サーバー、接続パネル、マッチメーカー、エンドツーエンドテスト。 |
edgegap-fusion | Photon Fusion 2 を使用する Unity のエンドツーエンド対応:IL2CPP Linux サーバー、0.0.0.0 にバインドされたサーバー、Edgegap デプロイ、BR200 キット。 |
edgegap-fusion-simplefps | Edgegap 専用サーバー上での Photon の Simple FPS サンプル。 |
edgegap-godot | Godot 専用サーバーを使用する Godot 4:ヘッドレスエクスポート、ENet または WebSocket、マッチメーカー。 |
edgegap-colyseus | Edgegap 上の Colyseus サーバー:直接接続またはマッチメーカー経由。 |
edgegap-nakama | バックエンドとして Nakama を使用し、マッチ用の Edgegap サーバーを起動します。 |
edgegap-playfab | Edgegap サーバーを使用する PlayFab Matchmaking。 |
edgegap-threejs | Three.js や、独自の Node.js サーバーを使用するその他のブラウザーゲーム。 |
edgegap-matchmaking | あらゆるエンジンを対象としたマッチメイキング設計:管理主体、プロファイル、パーティー、リージョン選択、バックフィル、サードパーティ製マッチメーカー。 |
edgegap-manus | Manus で構築されたブラウザーゲーム:バックエンドでのマッチメイキング、Steam サインイン、署名済み参加トークン、Node WebSocket サーバー。 |
edgegap-unreal | Unreal Engine のエンドツーエンド対応:ソースエンジン、Linux サーバー、マッチメーカー、エンドツーエンドテスト。 |
edgegap-eos-voice | EOS Voice を使用する、Edgegap 上の Unreal ゲームのボイスチャット:サーバー側のルームトークン、マッチルーム、チームルーム。 |
edgegap-server-design | 権威型サーバーの設計とデプロイのライフサイクル。 |
edgegap-containerize | コンテナーの仕様、Dockerfile、レジストリ、アプリバージョン。 |
edgegap-local-testing | まずローカルマシンで同等性テストを実施し、その後スモークテスト用に一度デプロイします。 |
edgegap-troubleshoot | プルエラー、クラッシュループ、メモリ不足、クライアントが接続できない問題。 |
edgegap-deployments-api | サーバーをデプロイするバックエンドコード:ウェブフック、クリーンアップ、Nakama、PlayFab、UGS、EOS。 |
edgegap-launch | リリースチェックリスト、段階的リリース、キャッシュ、コスト管理。 |
すべての MCP クライアントからアクセスできるよう、次の 3 つの方法で提供されています。
- ツール:
edgegap_list_skillsとedgegap_get_skill。後者はスキルのSKILL.mdを読み込みます。また、fileを指定すると、参照ドキュメントまたはテンプレートのいずれかを読み込みます。 - プロンプト:
deploy-game-server(「ゲームサーバーを Edgegap にデプロイする」)から始めてください。エンジンとネットコードを特定し、該当するスキルを読み込んで、クリーンアップまで含む標準手順を案内します。各スキルに対応するプロンプトも用意されており、スキル名がそのまま名前になっています。Claude Code ではスラッシュコマンドとして表示されます(例:/mcp__edgegap__deploy-game-server)。 - リソース: 各スキルの
SKILL.mdはedgegap-skill://<skill>/SKILL.mdに一覧表示されます。それ以外のファイルはすべて、edgegap-skill://{skill}/{+path}テンプレートを通じて読み込みます(例:edgegap-skill://edgegap-unity/references/deploy.md)。
各リリースには、scripts/skills-pin.txt で指定されたコミット時点のスキルが同梱されています。edgegap_context で、読み込まれているパックを確認できます。edgegap_list_skills は GitHub から最新パックのバージョンも取得します(バージョン番号は 1 つで、1 時間キャッシュされます。EDGEGAP_SKILLS_CHECK=off を設定すると無効になります)。新しいバージョンが公開されている場合はその旨を通知し、edgegap_get_skill もスキルのヘッダーの下に同じ通知を追加します。
インストール済みスキルを最新の状態に保つ。 スキルをエージェントにもインストールしている場合(Claude Code プラグイン edgegap@edgegap、npx skills add edgegap/llm-agent-skills、または ~/.claude/skills にコピーしたフォルダー)、edgegap_update_skills が各スキルを GitHub 上の最新バージョンと比較します。ローカルサーバーでは、インストール先を自動で検出します。apply: true を指定すると、npx skills update(Edgegap のスキルのみ)または claude plugin update を実行し、このリリースに含まれるファイルを使って手動でコピーしたスキルを書き換えます。追加したファイルは保持し、シンボリックリンクと Git チェックアウトには手を加えません。スキルのテキストをダウンロードすることはありません。ホスト型サーバーはディスクを参照できません。読み込んだバージョンを installed_versions に渡すと、古いスキルと更新方法を知らせます。
🧰 ツール
エージェントはリクエストに応じて適切なツールを選びます。ツール名を指定する必要はありませんが、利用可能なツールを知っておくと依頼しやすくなります。● が付いたツールはアカウントに変更を加えるもので、dry_run を受け付けます。また、EDGEGAP_READ_ONLY=1 のときは非表示になります。
| ツール | 機能 |
|---|---|
edgegap_context | このサーバーが接続する API、そのバージョン、ローカルかホスト型か、適用されるガードレールを表示します。API 呼び出しは行わず、トークンも表示しません。 |
初めてデプロイする前に
| ツール | 機能 |
|---|---|
edgegap_generate_dockerfile | サーバーのビルド用に Dockerfile を作成します。ビルドフォルダー、サーバーバイナリまたは起動スクリプト、ポート、起動引数を指定すると、適切なヘッドレスフラグ(Unity の -batchmode -nographics、Godot の --headless)、Unreal 用の非 root ユーザー、ポートの一致を設定します。前提として仮定した項目はすべて一覧表示するため、エージェントに確認できます。Unity、Unreal Engine、Godot、およびその他のあらゆるエンジンに対応しています。 |
edgegap_validate_server_config | ビルド前に、既存の Dockerfile、ポート、リソース、イメージタグを確認します。ARM または Windows のイメージ(Edgegap は linux/amd64 を実行)、root で実行される Unreal サーバー、Unity の -batchmode -nographics の不足、localhost にバインドされたサーバー、ネットコードのトランスポートと一致しないポート、latest タグを検出します。 |
edgegap_get_registry_credentials ● | プライベート Edgegap コンテナーレジストリへのプッシュ用認証情報と、正確な docker login、ビルド、プッシュのコマンドを返します。Edgegap が認証情報を提供するのは、Unity/Unreal プラグインのクイックスタートトークンを使う場合のみです。通常の API トークンの場合は、ダッシュボードの Container Registry ページからログイン情報を取得するようエージェントに伝えます。 |
edgegap_list_registry_tags | イメージを登録する前に、プッシュが完了したことを確認します。イメージ名のみを指定します(例:my-game-server)。プロジェクトはトークンから取得します。 |
edgegap_delete_registry_tag ● | 古いビルドを整理するため、指定したタグと、そのタグが指すイメージを削除します。1 回の呼び出しにつき、完全一致するタグを 1 つ指定します。latest、ワイルドカード、タグのリストは受け付けません。 |
専用サーバー(推奨)
| ツール | 機能 |
|---|---|
edgegap_list_apps | アプリケーションを一覧表示します。 |
edgegap_create_app ● | アプリケーションを作成します。 |
edgegap_update_app ● | 新しいデプロイ向けにアプリケーションを有効または無効にします。 |
edgegap_list_app_versions | イメージ、リソース、ポート(TLS Upgrade 対応)、レジストリへのログインが設定されているかどうかとともに、バージョンを一覧表示します。 |
edgegap_get_app_version | イメージ、リソース、ポート、最大実行時間、イメージのキャッシュ、再起動ポリシー、環境変数名(値は表示しません)など、1つのバージョンの全情報を読み取ります。 |
edgegap_create_app_version ● | コンテナイメージをデプロイ可能なバージョンとして登録します。WS ポートと HTTP ポートで TLS Upgrade に対応しています。これは、ブラウザー(WebGL)クライアントが wss:// を使用するために必要です。 |
edgegap_update_app_version ● | 既存のバージョンを変更します。新しいイメージタグ、有効/無効、最大実行時間、レジストリログイン、イメージのキャッシュ(force_cache)、シャットダウン猶予期間、ポート、環境変数を変更できます。渡したフィールドのみが変更されますが、ports と env はリスト全体が置き換わります。実行中のデプロイには、以前の設定が適用されます。 |
edgegap_list_locations | Edgegap がデプロイする都市を一覧表示します。バージョンを指定した場合は、現時点でキャパシティのある都市のみを一覧表示します。 |
edgegap_list_ping_beacons | ゲームクライアントが各リージョンとのレイテンシー測定に使用する ping ビーコンを一覧表示します。 |
edgegap_deploy ● | プレイヤーの近くに権威型専用サーバーをデプロイします。常に edgegap-mcp タグが付与され、Edgegap がサーバーを停止する予定も報告します。 |
edgegap_wait_for_deployment | サーバーの準備が整うまで待機し、接続アドレスを返します。 |
edgegap_get_deployment | デプロイのステータスを読み取ります。 |
edgegap_list_deployments | アプリケーション、バージョン、ステータス、タグなどで絞り込み、経過時間順に並べ替えて、実行中のデプロイを一覧表示します。停止し忘れたサーバーを見つけられます。only_agent_deployments: true を指定すると、エージェントが開始したすべてのデプロイを一覧表示します。デプロイの絞り込みを参照してください。 |
edgegap_get_deployment_logs | デプロイの実行中に、コンテナログとクラッシュの詳細を読み取ります。停止後のログは、Endpoint Storage が設定されている場合にのみ保持されます。 |
edgegap_get_deployment_metrics | CPU、CPU スロットリング、メモリ、ネットワークの使用量(最新、平均、ピーク)を要約します。バージョンのサイズ調整やクラッシュの確認に利用できます。 |
edgegap_stop_deployment ● | 正確なリクエスト ID を指定して、1つのデプロイを停止します。一括停止はできません。 |
リレー(ホスト・クライアント型ゲーム専用)
リレーはゲームサーバーではありません。1人のプレイヤーのゲームがマッチをホストしている間、トラフィックを転送します。専用サーバーとリレーのどちらを選ぶかを参照してください。
| ツール | 機能 |
|---|---|
edgegap_create_relay_session ● | プレイヤー向けのリレーセッションを作成し、リレーアドレスと各プレイヤーの認証トークンを返します。 |
edgegap_get_relay_session | リレーセッションを読み取ります。 |
edgegap_list_relay_sessions | 実行したままのセッションを見つけられるよう、開いているリレーセッションを一覧表示します。認証トークンは表示されません。 |
edgegap_authorize_relay_user ● | 後から参加するプレイヤーを追加します。 |
edgegap_revoke_relay_user ● | リレーセッションからプレイヤーを1人削除します。 |
edgegap_delete_relay_session ● | リレーセッションを終了します。 |
警告
デプロイとリレーセッションは、実行中に料金が発生します。テスト用デプロイを停止し、テスト用リレーセッションを削除するよう、作業が終わったらエージェントに依頼してください。
プロンプトの例
- 「Unity サーバービルド用の Dockerfile を作成し、プッシュして、近くにサーバーをデプロイしてください。」
- 「Edgegap 用の Dockerfile を確認して、問題があれば修正してください。」
- 「デプロイに失敗しました。ログを読んで原因を教えてください。」
- 「前回のマッチで CPU とメモリをどれくらい使いましたか?それに合わせてバージョンのサイズを調整してください。」
- 「ゲームでホスト・クライアント型のネットワークを使用しています。2人のプレイヤー向けに Edgegap リレーを設定してください。」
🛡️ ガードレール
API トークンを使うと組織内であらゆる操作ができるため、サーバーはエージェントがトークンを使って行う操作に独自の制限を設けています。この制限は、ローカルサーバーとホスト型エンドポイントの両方で適用されます。
| ガードレール | 内容 |
|---|---|
| ドライラン | 変更を伴うすべてのツールで dry_run: true を指定できます。トークン、レジストリトークン、環境変数の値をマスキングしたうえで、正確なメソッド、ホスト、パス、本文を返し、何も送信しません。ローカルチェックは引き続き実行されます。 |
| コンテナにトークンを含めない | API トークンが環境変数の名前または値、タグ、Webhook URL のいずれかに含まれている場合、デプロイまたはバージョンの作成は拒否され、何も送信されません。環境変数の値がそのまま返されることはありません。 |
| エージェントタグ | エージェントが独自のタグを渡した場合でも、すべてのデプロイに edgegap-mcp タグが付きます。only_agent_deployments: true を指定した edgegap_list_deployments ですべて検索できます。 |
| 自動停止 | すべてのデプロイで、Edgegap が停止する時刻が通知されます。これはバージョンの max_duration で決まり、エージェントが作成したバージョンでは EDGEGAP_MAX_DURATION_MINUTES(デフォルトは 60)を上限とします。Edgegap にはデプロイごとの時間制限がないため、別の場所で作成されたバージョンは独自の制限(デフォルトは 1440 分)まで実行できます。1 時間を超える場合や、制限がない場合は、結果に警告が表示されます。 |
| 変動するイメージタグの禁止 | edgegap_create_app_version は、latest(大文字・小文字を問いません)、空のタグ、または Docker が拒否するタグを拒否し、何も送信しません。Edgegap はタグごとにイメージをキャッシュするため、再プッシュされたタグでは古いビルドがデプロイされる可能性があります。latest を指定した既存バージョンのデプロイも拒否され、latest 用のレジストリプッシュコマンドの要求も拒否されます。 |
| イメージ参照のチェック | レジストリホスト、タグ、ダイジェストも含む docker_image(例:registry.edgegap.com/proj/server:v2)は拒否され、エラーには正しい docker_repository/docker_image/docker_tag の分割方法が示されます。edgegap_validate_server_config も同じ内容を検出します。 |
| デプロイ数の上限 | edgegap-mcp タグの付いたデプロイがすでに EDGEGAP_MAX_AGENT_DEPLOYMENTS(デフォルトは 5)個実行中の場合、edgegap_deploy は拒否されるため、ループするエージェントが課金対象のサーバーを次々に作成することはありません。拒否メッセージには、デプロイの一覧表示と停止の方法が記載されます。 |
| 非表示のシークレット環境変数 | 名前がシークレットらしい環境変数(TOKEN、SECRET、PASSWORD、API_KEY、CREDENTIAL、AUTH など)は is_hidden を付けて送信されるため、ダッシュボードに値が平文で表示されません。 |
| 厳密な停止 | edgegap_stop_deployment は、正確なリクエスト ID を指定して単一のデプロイを停止します。空の ID、ワイルドカード、リストは拒否されます。一括停止はできません。 |
| すべての結果にホストを表示 | すべての結果は API ホスト(例:[api.edgegap.com])から始まります。EDGEGAP_BASE_URL が別のホストを指している場合は [custom · host] から始まります。api.edgegap.com を指定するベース URL は、https://api.edgegap.com と完全に一致している必要があり、一致しない場合、サーバーの起動は拒否されます。 |
| マスキング | エージェントに渡る前に、すべてのエラーからトークンが除去されます。 |
サーバーはすべての API 呼び出しで、User-Agent: edgegap-mcp/<version> (<MCP client name>) を付けて自身を識別します。
利用状況の分析。 ローカルサーバーとセルフホスト可能な Docker イメージは、API 呼び出し自体以外のデータを一切送信しません。ホスト型エンドポイント mcp.edgegap.dev は PostHog MCP Analytics(@posthog/mcp)を使用し、Edgegap の PostHog に利用状況イベントを送信します。送信される情報は、接続した MCP クライアント、使用されたツール・プロンプト・スキルのリソース、渡された引数の名前(値は含みません)、呼び出しの成否、エラーコード、失敗した段階と Edgegap API のステータス、所要時間、ドライランかどうか、呼び出しに関するいくつかの情報(デプロイメントの待機がどのように終了したか、検証結果、読み込まれたスキル)、到達したゴールデンパスのステップに加え、サーバーのバージョンと Cloudflare の国コードです。呼び出しが失敗した場合は、トークン、渡された引数の値、認証情報・IP アドレス・ID のような形式の情報を削除し、300 文字に切り詰めたエラーメッセージも送信します。デプロイメント ID はキー付きハッシュとしてのみ送信されます。送信されるのは、名前付きのメタデータプロパティのみです。トークン、ツール引数の値(IP アドレス、環境変数、アプリ名、イメージ名)や結果は決して送信されず、GeoIP も無効になっています。ツールにパラメーターが追加されることはありません。同じトークンからのイベントは、そのトークンのキー付き不可逆ハッシュでグループ化されます。全項目は docs/analytics.md をご覧ください。オプトアウトするには、ヘッダー X-Edgegap-Telemetry: off(または DNT: 1)を送信するか、ローカルサーバーを使用してください。
🚨 トラブルシューティング
よくあるエラーコードを確認し、インテグレーションの問題を解決しましょう。
401 Unauthorized
MCP インテグレーションで Authorization ヘッダーが正しく含まれていない可能性が高いです。
Tool Call Failed
クライアントに Edgegap トークンが設定されていません。これは Authorization ヘッダーを送信できない claude.ai と Claude Desktop のカスタムコネクターで発生します。代替方法については、Claude Desktop と claude.ai をご覧ください。
警告
これは既知の制限事項で、近日中に解決される予定です。続報をお待ちください。
403 Forbidden
MCP インテグレーションでテンプレートトークンまたは削除済みのトークンを使用している可能性があります。インテグレーションで使用しているトークン値が、ダッシュボードに表示されているトークンと完全に一致することを確認してください。
424 Image Could Not Be Pulled
Edgegap がコンテナイメージを取得できませんでした。リポジトリ、イメージ名、タグ、およびタグがプッシュ済みであることを確認してください(エージェントにレジストリーのタグ一覧を表示するよう依頼してください)。Edgegap レジストリー内のイメージでは、イメージ名にプロジェクト名を含める必要があります。例:my-project/my-game-server。
Registry Credentials Unavailable
Edgegap がレジストリー認証情報を提供するのは、Unity および Unreal プラグインが使用するクイックスタートトークンに限られます。そのため、通常の API トークンではエージェントが認証情報を取得できず、ユーザーに確認を求めます。ダッシュボード の Container Registry から Project、Username、Token をコピーするか、Edgegap が取得できる別のレジストリー(Docker Hub、GitHub、AWS ECR、GCP、GitLab)にプッシュしてください。外部レジストリーをご覧ください。
"status": "empty" または "not_configured"
エラーではありません。項目が空の一覧(アプリケーションがまだない、実行中のデプロイメントがない、イメージが一度もプッシュされていない)や、この組織で設定されていない機能(リレー、このトークンでは読み取れないレジストリー)は、status と next_step を含む通常の結果として返されます。エージェントは再試行せず、次のステップを実行してください。
トークンがまだない場合
スキル(edgegap_list_skills、edgegap_get_skill)、edgegap_context、edgegap_generate_dockerfile、edgegap_validate_server_config はトークンなしで使用できるため、エージェントは先にサーバービルドの準備を進められます。app.edgegap.com でアカウントを作成し、ユーザー設定 → トークン でトークンを作成してください。check_token: true を指定した edgegap_context は、セッションにトークンが存在し、受け入れられているかを示し、該当ページで見つけられるよう、末尾 4 文字も表示します。
ローカルでは起動するが、Edgegap では起動しない
エージェントにサーバー設定の検証を依頼するか、新しい Dockerfile の生成を依頼してください。最も一般的な原因は、docker build --platform linux/amd64 を指定せずに Apple Silicon 上でイメージをビルドしていること、サーバーがバージョンで公開されているポートとは異なるポートで待ち受けていること、または UDP トランスポートが TCP として設定されていることです。
その他の API エラー
個々の API エンドポイントで発生する可能性のあるエラーレスポンスについては、API リファレンスをご確認ください。
メモ
サポートが必要な場合は、Discord からお問い合わせください。ライブゲームのサポートについては、チケットシステムをご利用ください。
🛠️ セルフホスト
mcp.edgegap.dev のホスト型エンドポイントは、Cloudflare Worker として実行されています(worker/INSTALL.md を参照)。同じステートレス HTTP サーバーをご自身のインフラストラクチャで実行するには、Docker イメージを使用してください。
docker build -t edgegap-mcp .
docker run --rm -p 8080:8080 edgegap-mcp
クライアントは、ホスト型エンドポイントに接続するときと同じように、独自の Authorization ヘッダーを付けて http://<host>:8080/mcp に接続します。イメージには認証情報が含まれておらず、/health は認証情報なしで応答します。PORT、HOST、EDGEGAP_READ_ONLY、EDGEGAP_APP_ALLOWLIST、EDGEGAP_MAX_DURATION_MINUTES、EDGEGAP_MAX_AGENT_DEPLOYMENTS が適用されます。プライベートネットワークの外部に公開する前に、worker/DECISION.md をお読みください。
linux/amd64 および linux/arm64 向けのビルド済みイメージは、ghcr.io/edgegap/llm-mcp-server(既存のセットアップ向けには、旧名称の ghcr.io/edgegap/edgegap-mcp も)に公開されています。main へのプッシュごとに main および sha-<commit> のタグが付与され、v* タグにはバージョンが付与されます。
docker run --rm -p 8080:8080 ghcr.io/edgegap/llm-mcp-server:main
開発
変更が合格する必要のあるチェックについては CONTRIBUTING.md、各バージョンでの変更点については CHANGELOG.md、脆弱性の報告については SECURITY.md をご覧ください。
npm ci
npm run build
npm test # mock-API tests; none reach Edgegap
npm run typecheck:worker
バンドルされているスキルを llm-agent-skills の最新コミットに更新してから、通常どおりリリースするには、次の手順を実行してください。
npm run sync-skills -- --ref main
npm run check-skills # exit 1 if src/skills.generated.ts differs from the pin
| テスト | 対象 |
|---|---|
test/unit.test.mjs | タグ、イメージ、シークレット名、URL、および秘匿化ルールのユニットテスト |
test/package.mjs | パッケージング:bin が 1 つであること、ランタイム依存関係、ステップ間でのバージョンの一致 |
test/skills.mjs | MCP 経由のスキル:ツール、プロンプト、リソース、パスの安全性、バンドルがピン留めされたバージョンと一致すること |
test/smoke.mjs | ハンドシェイク、ツールの登録、読み取り専用モード |
test/guards.mjs | ローカル検証と許可リストの適用 |
test/elicit.mjs | トークンのプロンプト:承諾、拒否の確認、辞退、サポートなし |
test/newtools.mjs | ローカルのモック API に対するバリデーター、Dockerfile ジェネレーター、レジストリ、デプロイ、リレー、マッチメーカーの各ツール |
test/http.mjs | セルフホスト型 HTTP サーバー:トークンなしでの検出、リクエストごとのトークン、外部の認証情報 |
test/spec.mjs | サーバーが送信するすべてのエンドポイントとリクエスト本文のフィールドが spec/ に含まれていること(書き込みツールはドライランでチェック) |
test/snapshot.mjs | ツール名、説明、スキーマ、指示が test/tools.snapshot.json と一致すること。意図的に変更した後は npm run snapshot:update を実行 |
test/live-check.mjs | npm test には含まれません。非本番環境の組織のトークンを使って実際の API に対して実行 |
設計上の判断、セキュリティモデル、意図的に対象外としている内容については、DESIGN.md をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。