Edgegap について
Edgegap MCP Server は、マルチプレイヤーゲームサーバーをデプロイするコーディングエージェント向けです。Edgegap と接続し、コンテナの準備、デプロイ、ログ確認を支援します。専用サーバーとホストクライアント型ゲームのリレーに対応します。
主な機能
- 01Dockerfile の確認と生成
- 02Edgegap のプライベートレジストリへのイメージ送信
- 03バージョン作成と専用サーバーのデプロイ
- 04マッチメーカー設定の生成
- 05リレーセッションの作成
- 06デプロイ状態とコンテナログの確認
活用シーン
- 01ヘッドレスゲームサーバーをプレイヤーの近くに配置
- 02ゲームビルド用のコンテナファイルを準備
- 03ダッシュボード登録用のマッチメイキング設定を作成
- 04デプロイ失敗やサーバー問題を調査
MCP 対応
MCP サーバーは Edgegap API のツールをコーディングエージェントに提供し、コンテナ準備、ゲームサーバーのデプロイ、状態確認を可能にします。マッチメーカー設定は生成できますが、作成や実行は行いません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.edgegap.dev/mcpclaude mcp add --transport http dev-edgegap https://mcp.edgegap.dev/mcp{"mcpServers":{"dev-edgegap":{"type":"http","url":"https://mcp.edgegap.dev/mcp"}}}Cursor で開く{"servers":{"dev-edgegap":{"type":"http","url":"https://mcp.edgegap.dev/mcp"}}}VS Code で開く{"mcpServers":{"dev-edgegap":{"type":"http","url":"https://mcp.edgegap.dev/mcp"}}}{"mcpServers":{"dev-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 を作成する(または既存のものをチェックする)際に、Edgegap の要件に照らして確認し、その後、プライベート Edgegap コンテナレジストリにイメージをプッシュします。
- 専用サーバーをデプロイする - アプリケーションとバージョンを作成し、プレイヤーの近くにデプロイして、接続アドレスを取得します。
- マッチメイキングを設定する - デプロイ済みバージョンを指定するマッチメーカー設定を生成します。ダッシュボードにアップロードすればすぐに使えます。
- ホスト・クライアント型のゲームを実行する - プレイヤーの 1 人がホストとなるゲームの場合、リレーセッションを作成します。まずは専用サーバーとリレーのどちらを選ぶかをご覧ください。
- CI/CD パイプラインを構築する - ビルドシステムからデプロイをテストし、リソースを削除します。
- ゲームサーバーの問題をトラブルシューティングする - アプリのバージョンやデプロイ状況を確認し、コンテナログを読み取るか、失敗したデプロイを再現します。
警告
MCP の対象外/非対応:マッチメーカーの作成または実行(MCP は設定を生成しますが、ダッシュボードへのアップロードはお客様が行います)、サーバーブラウザー、ロビー、マネージドクラスター、プライベートフリート、請求。
メモ
サポートが必要な場合は、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 ● | コンテナイメージをデプロイ可能なバージョンとして登録します。ブラウザー(WebGL)クライアントが wss:// を使うために必要な、WS および HTTP ポートでの TLS Upgrade に対応しています。 |
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つのデプロイを停止します。一括停止には対応していません。 |
マッチメイキング
| ツール | 機能 |
|---|---|
edgegap_build_matchmaker_config | マッチメーカーの設定(チーム、チームサイズ、任意のレイテンシルールと拡張)を生成し、デプロイするバージョンが存在することを確認します。ブラウザー(WebGL)クライアントを使用する場合は、allowed_cors_origins を設定してください。生成された設定をダッシュボードにアップロードしてマッチメーカーを作成します。マッチメーカーは各試合の専用サーバーを起動します。 |
設定の詳細はマッチメイキングをご覧ください。
リレー(ホスト・クライアント型ゲーム専用)
リレーはゲームサーバーではありません。プレイヤーの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 を確認して、問題があれば修正してください。」
- 「最新バージョン用に、2 対 2 のマッチのマッチメーカー設定を作成してください。」
- 「デプロイに失敗しました。ログを読んで原因を教えてください。」
- 「ゲームではホスト・クライアント方式のネットワークを使用しています。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 を指定して 1 つのデプロイを停止します。空の 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 は無効です。ツールにパラメーターが追加されることもありません。1 つのトークンからのイベントは、そのトークンのキー付き非可逆ハッシュに基づいてまとめられます。全リストは docs/analytics.md をご覧ください。オプトアウトするには、ヘッダー X-Edgegap-Telemetry: off(または DNT: 1)を送信するか、ローカルサーバーを使用してください。
🚨 トラブルシューティング
よくあるエラーコードを確認し、インテグレーションを利用できるようにする方法を学びましょう。
401 Unauthorized
MCP インテグレーションで Authorization ヘッダーが正しく設定されていない可能性が高いです。
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" or "not_configured"
エラーではありません。何もないリスト(アプリケーションがまだない、実行中のデプロイメントがない、イメージが一度もプッシュされていないなど)や、この組織で設定されていない機能(リレー、このトークンでは読み取れないレジストリなど)は、status と next_step を含む通常の結果として返されます。エージェントは再試行するのではなく、次のステップを実行してください。
No Token Yet
スキル(edgegap_list_skills、edgegap_get_skill)、edgegap_context、edgegap_generate_dockerfile、edgegap_validate_server_config はトークンなしで動作するため、エージェントはまずサーバービルドの準備を進められます。app.edgegap.com でアカウントを作成し、User Settings → Tokens でトークンを作成してください。check_token: true を指定した edgegap_context は、セッションのトークンが存在し、受け入れられているかどうかを示します。また、該当ページでトークンを特定できるよう、末尾 4 文字も表示します。
Server Starts Locally but Not on 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 つのサーバーを複数のクライアントで再利用できます。