Unreal MCPがSentryに対応しました

Article by: (読了時間:7分)

 

 

ゲームのリリース作業の中で、クラッシュレポートの設定が一番楽しい作業だということはまずありません。DSNを貼り付け、Project Settingsでいくつかのチェックボックスを切り替え、シンボルアップロードを有効にし、ビルドをパッケージ化して、わざとクラッシュさせ、イベントがSentryに届いているか確認する…。難しくはありませんし(重要な作業でもあります)、それでも、できれば誰かに任せたいと思うような作業です。

Unreal Engine 5.8では、その「誰か」をコーディングエージェントにできます。これまでエージェントにできたのはC++の読み書きだけで、エディタはエージェントにとってブラックボックスのままでした。

Unreal MCP は、エディタ内でファーストパーティのMCPサーバーを動かし、エージェントがエディタを直接操作できるようにする、新しい実験的なエンジン機能です。Epicは標準で、アクターのスポーン、マテリアルの作成、自動テストの実行など、数百ものツールを提供しています。

Sentryにとって重要なのは、このツール一覧が固定ではないという点です。プラグインはC++またはPythonで独自のツールをエディタに登録でき、エージェントからはEpicのツールと同じように見えます。Unrealプラグインが利用しているのはまさにこの仕組みです。Claude Code、Cursor、Codexなど、どのエージェントを使っていても、Sentryのセットアップ、プロジェクトのインストルメント、キャプチャしたクラッシュのデバッグ支援に必要なものがすべて揃いました。

 

Sentryプラグインでできること

MCPを有効にした状態でエディタを起動すると、Sentryプラグインは、実行中のエディタ内からSDKを確認・変更できる小さなツールセットと、その使い方をエージェントに伝える複数のエージェントスキルを登録します。

ツールが「手」なら、スキルは「手順書」です。Claude CodeやCursor向けのSentry agent pluginを使ったことがあれば、見覚えがあるはずです。同じワークフローをUnreal向けに調整したものだからです。

  • Get Started — SentryアカウントからDSNを取得して適用し、テストイベントが届くことを確認します。
  • Fix Stack Traces — デバッグシンボルの自動アップロードを有効にし、必要な認証情報の設定を手伝います。
  • Instrument — クラッシュのキャプチャに加えて、トレーシング、構造化ログ、メトリクス、セッションリプレイ、ユーザーフィードバックを設定します。
  • Debug Issue — Sentryのイシューのコンテキストをすべて取得し、プロジェクトのソースと照らし合わせて根本原因を特定し、修正のリリースまでを支援します。

 

各スキルには、セットアップのときに隣に座っていたら伝えるようなアドバイスが組み込まれています。

Get Started は、エディタのDSNがプロジェクトのDSNより優先されることを把握しているので、何かを変更する前にDSNの出どころを確認します。

Fix Stack Traces は、シンボルアップロードがパッケージビルドでしか実行されないことを把握しているので、フルビルドを待ってから問題に気づく、ということがないよう、先に認証情報を検証します。

さらに、どのスキルも同じ基本ルールに従います。プロジェクトを変更する前に確認を取り、認証トークンなどのシークレットを読み取ったり表示したりすることは一切ありません。設定はその場で適用されるため、エディタを再起動する必要もありません。

 

セットアップ手順

必要なのはUnreal Engine 5.8とSentryプラグイン1.24.0以降だけです。それ以外はすべて同梱されています。

1. Edit > Plugins で Unreal MCP と All Toolsets を有効にし、エディタを再起動します。Unreal MCPはサーバーを起動するためのもので、All Toolsetsを有効にしないと、サーバーから使えるツールがひとつもない状態になります。

2. コンソールコマンドを実行して、エージェント用の設定ファイルを生成します。

プロジェクトのルートに `.mcp.json` が書き出され、そのフォルダからClaude Codeを起動すると読み込まれます。(Cursor、VS Code、Codex、Geminiには、それぞれ専用の設定ファイルが生成されます。)

3. サーバーを起動するには、コンソールで ModelContextProtocol.StartServer を実行するか、Editor Preferences > Plugins > Model Context Protocol で Auto Start Server をオンにします。後者なら、次回以降は気にする必要がありません。

エディタを開いた状態でプロジェクトディレクトリからエージェントを起動すると、Sentryのツールを含むエディタのツールが読み込まれます。

 

Sentry MCPで一連の流れを完結させる

エディタのツールから見えるのは、プロジェクト側の状況だけです。DSNを設定することはできても、どのDSNを使えばよいかはわかりません。テストイベントを送ることはできても、それが届いたかどうかはわかりません。

そこで役立つのがSentry MCPサーバーです。接続すると、エージェントは組織とプロジェクトの一覧を取得し、適切なDSNを取得し(まだプロジェクトがなければ作成し)、テストイベントが届いたらIDで検索できるようになります。Issueのデバッグでは、スタックトレースやブレッドクラム、Seerによる根本原因分析を、ユーザーに貼り付けてもらうことなくエージェント自身が取得できます。

接続方法は2つあります。

  • エージェントに直接接続する — Sentry MCPのドキュメントの手順に従います。エージェントがすでにSentryと連携しているなら、これが最も簡単です。
  • エディタ経由で接続する — MCPClientToolset プラグインを有効にし、Editor Preferences > Plugins > MCP Toolset Servers に https://mcp.sentry.dev/mcp を追加します。エディタが自身のツールとあわせてSentryのツールもプロキシするので、Unreal MCPに接続したエージェントであれば、追加の設定なしでSentryのツールを使えます。

 

このステップは省略しても構いません。スキルは動作しますが、DSNは自分で貼り付け、テストイベントもSentry上で手動で確認することになります。

 

実際に試してみる

テスト環境の外でどこまで通用するかを確かめるため、Sentry Towerのデモゲームで試してみました。Claude CodeをUnrealエディタとSentry MCPの両方に接続し、Sentryの設定が一切ないプロジェクトからスタートしました。

まず、「Unrealエディタの Sentry スキルを使って、このプロジェクトにSentryをセットアップして」 と指示しました。エージェントはSDKの状態を確認し、Sentry MCP経由でプロジェクトの一覧を取得して、どれを使うか尋ねたうえで、プロジェクトの設定ファイルを一度も手で編集することなくDSNを適用しました。続いてテストイベントを送信し、そのイベントIDを使ってSentry上で確認しました。

ここまでの作業が終わったところで、エージェントから、「デバッグシンボルをアップロードするまでは、パッケージビルドのクラッシュが16進アドレスのまま表示される」という重要な注意点がひとつ示されました。

そこで次はシンボルアップロードです。2つの設定を変更して、シンボルアップロードとソースバンドルを有効にしました。次にエージェントは、組織とプロジェクトを記載した sentry.properties ファイルを作成し、gitignoreの対象になっていることを確認したうえで、認証トークンの貼り付けをこちらに任せました。手動での作業はこれだけです。トークンを入力すると、エージェントはプラグインに同梱されているSentry CLIで認証情報を検証しました。

そして最後に、パッケージビルドとクラッシュによる本番のテストです。エージェントはゲームをパッケージ化しながらデバッグシンボルをアップロードし、クラッシュするまで実行してから、Sentryで該当のイベントを開きました。スタックトレースは、ソースの該当行とその前後のコードまで完全に読める状態でした。

Shoot 内のnull書き込みは単純なC++のバグに見え、すぐに思いつく修正はnullチェックの追加でした。しかしここでは、エージェントに本当の根本原因を探すよう依頼しました。

クラッシュイベントのブレッドクラムには、プレイヤーが 「Wrath」 アップグレードを選択し、その直後に発射物のスポーンに失敗した様子が記録されていました。エージェントはその痕跡をたどってエディタ内を調べ、レベルアップ画面のWrathボタンに空の発射物クラスが設定されていることを突き止めました。対応する発射物のBlueprintはすでにプロジェクト内にあり、単に接続されていなかっただけでした。

エージェントは、ボタンが正しいBlueprintを参照するよう修正することに加え、安全策として Shoot にnullチェックを追加することを提案しました。

2回の質問と1回のトークン貼り付けだけで、Sentryの設定がまったくないプロジェクトから、根本原因まで特定できる読みやすいクラッシュレポートにたどり着きました。それ以外はすべて、エージェントがエディタのSentryツールとSentry MCPを通じて処理しています。

 

現時点での課題

Unreal MCPはまだ実験段階で、いくつかの点にそれが表れています。

  • エージェントがツールを見つけられないことがある — Unreal MCPはデフォルトでツール検索モードで動作します。すべてのツールを最初に一覧で渡すのではなく、残りのツールを見つけるためのメタツールをいくつかエージェントに渡す仕組みです。これにより、数百ものエディタツールがあってもコンテキストを小さく保てますが、エージェントがツールの探索を飛ばして、いきなりプロジェクトファイルを手で編集し始めることがあります。そうなった場合は、「UnrealエディタのMCPツールとSentryスキルを使ってSentryをセットアップして」と促してください。たいていは一文で十分です。
  • エディタを再起動すると接続が切れる — セッションの途中でエディタが再起動すると、MCPサーバーも一緒に停止し、サーバーが再び起動するまでエージェントはツールを使えなくなります。
  • クライアント側のプラグインが役立つ — EpicはUnreal Engine skills plugin for Claude Codeを提供しています。このプラグインは、unreal-mcp スキルとUnrealプロジェクト内であることをClaudeに伝え、まずエディタのツールを使うよう促すセッションフックを追加します。テストでは、追加のプロンプトが必要になる場面が目に見えて減りました。

 

 

ぜひお試しください

すでにUE 5.8を使っている場合は、数分で始められます。SDKを更新する > Unrealプラグインを有効にする > Sentry MCPを接続する > そして、エージェントにセットアップを依頼するだけです。インテグレーションの流れの全体は、Unreal MCPのドキュメントで解説しています。

これは最初のバージョンで、UnrealのAIツールセットの成熟に合わせて、Unreal MCPとSentryのスキルはどちらも進化を続けていきます。ぜひエージェントに何ができるかを確かめてみてください。うまくいかない点があれば、GitHubまたはDiscordでお知らせください。

 

 

Original Page: Unreal MCP now speaks Sentry

 




IchizokuはSentryと提携し、日本でSentry製品の導入支援、テクニカルサポート、ベストプラクティスの共有を行なっています。Ichizokuが提供するSentryの日本語サイトについてはこちらをご覧ください。またご導入についての相談は「お問い合わせ」からお気軽にお問い合わせください。

 

シェアする

Recent Posts

;