リモートServerのAPI Key認証
MCP for Unity serverを共有remote serviceとして公開する場合、API keyで利用者を認証し、userごとにUnity sessionを分離できます。
前提条件
外部認証service
API keyの検証はMCP server自身ではなく、外部HTTP endpointへ委譲します。endpointは次を満たす必要があります。
POSTを受ける- body:
{"api_key":"<key>"} - keyの有効性と安定した
user_idをJSONで返す - MCP serverからnetwork到達できる
HTTP transport
API key認証は--transport httpでのみ利用できます。stdio modeには影響しません。
server設定
| Argument | Environment variable | 既定 | 内容 |
|---|---|---|---|
--http-remote-hosted | UNITY_MCP_HTTP_REMOTE_HOSTED | false | remote-hosted modeを有効化 |
--api-key-validation-url URL | UNITY_MCP_API_KEY_VALIDATION_URL | なし | key検証endpoint。remote-hostedでは必須 |
--api-key-login-url URL | UNITY_MCP_API_KEY_LOGIN_URL | なし | key発行・管理画面URL |
--api-key-cache-ttl SECONDS | UNITY_MCP_API_KEY_CACHE_TTL | 300 | 検証済みkeyのcache秒数 |
--api-key-service-token-header HEADER | UNITY_MCP_API_KEY_SERVICE_TOKEN_HEADER | なし | auth serviceへ送るservice-token header名 |
--api-key-service-token TOKEN | UNITY_MCP_API_KEY_SERVICE_TOKEN | なし | server-to-server認証token |
remote-hostedを有効にしてvalidation URLが無い場合、serverはstartup時にerrorで終了します。
起動例
python -m src.main \
--transport http \
--http-host 0.0.0.0 \
--http-port 8080 \
--http-remote-hosted \
--api-key-validation-url https://auth.example.com/api/validate-key \
--api-key-login-url https://app.example.com/api-keys \
--api-key-cache-ttl 120
environment variableでも設定できます。
export UNITY_MCP_TRANSPORT=http
export UNITY_MCP_HTTP_HOST=0.0.0.0
export UNITY_MCP_HTTP_PORT=8080
export UNITY_MCP_HTTP_REMOTE_HOSTED=true
export UNITY_MCP_API_KEY_VALIDATION_URL=https://auth.example.com/api/validate-key
export UNITY_MCP_API_KEY_LOGIN_URL=https://app.example.com/api-keys
python -m src.main
service token
auth service側もMCP serverを認証する場合はserver-to-server tokenを設定します。
--api-key-service-token-header X-Service-Token \
--api-key-service-token "your-server-secret"
validation endpointを外部から直接乱用されにくくするため、利用できる場合は設定を推奨します。
Unity plugin側
remote serverへ接続するuserはUnity Editorで次を設定します。
- MCP for Unity windowを開く
- connection modeにHTTP Remoteを選ぶ
- API Key fieldへkeyを入力する
- 必要なら Get API Key からlogin URLを開く
keyはEditorPrefsへmachine単位で保存され、source controlには入りません。
MCP client設定
API keyが設定されると、対応configuratorはX-API-Key headerを生成configへ追加します。
{
"mcpServers": {
"mcp-for-unity": {
"url": "http://remote-server:8080/mcp",
"headers": {
"X-API-Key": "<your-api-key>"
}
}
}
}
Claude Code例:
claude mcp add --transport http mcp-for-unity http://remote-server:8080/mcp \
--header "X-API-Key: <your-api-key>"
remote-hosted modeで変わる動作
MCP callは認証必須
/mcpへのtool / resource requestはX-API-Keyが必須です。missing / invalid keyはMCP errorになります。