Unreal Engine API Documentation について
unreal-api-mcp は、AI エージェントに Unreal Engine C++ API のドキュメントを提供する MCP サーバーです。エンジンのランタイム、エディター、組み込みプラグインを対象とし、プロジェクトの UE バージョンに対応するデータベースを提供します。誤った関数シグネチャ、誤った #include パス、非推奨 API の使用を減らすことを目的としています。Unreal Engine のインストールは不要です。
主な機能
- 01UE リリースごとの API データベース
- 02パラメータを含む正確な関数シグネチャの取得
- 03型に対応する #include パスの解決
- 04置き換え候補を含む非推奨 API の警告
- 05Blueprint グラフの内部クラスの検索
- 06`.uproject` からのバージョン自動検出
活用シーン
- 01エージェントが UE C++ コードを書く前の関数シグネチャの確認
- 02型の #include パスの調査
- 03プロジェクトで使用している API の非推奨状況の確認
MCP 対応
本プロジェクトは MCP サーバーであり、search_unreal_api、get_function_signature、get_include_path、get_class_reference、get_deprecation_warnings の 5 つのツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx unreal-api-mcpUNREAL_VERSIONUnreal Engine version to serve, e.g. 5.7 or 5.8 (default: auto-detect or 5.8)UNREAL_PROJECT_PATHPath to Unreal project for auto-detecting version from .uproject EngineAssociation fieldローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| query | string | はい | |
| n_results | integer | いいえ | |
| member_type | string | いいえ |
詳細
unreal-api-mcp
AI エージェントに正確な Unreal Engine C++ API ドキュメントを提供する MCP サーバーです。トークン、コンテキスト、時間を節約し、誤ったシグネチャ、間違った #include パス、非推奨 API の使用を防ぎます。
Claude Code、Cursor、Windsurf、または MCP 対応のあらゆる AI ツールで動作します。Unreal Engine のインストールは必要ありません。対応バージョンを確認してください。新しいバージョンは毎週自動的に検出され、ビルドされます。
クイックスタート
MCP 設定(.mcp.json、mcp.json、またはツールの MCP 設定)に追加し、UNREAL_VERSION をプロジェクトに合わせて設定します:
{
"mcpServers": {
"unreal-api": {
"command": "uvx",
"args": ["unreal-api-mcp"],
"env": {
"UNREAL_VERSION": "5.5"
}
}
}
}
プロジェクトの UE バージョンに合わせて設定してください。利用可能なデータベースの一覧は、対応バージョンを参照してください。
初回起動時に、サーバーは適切なデータベースを ~/.unreal-api-mcp/ にダウンロードします。パッチバージョン(例:"5.7.3")に対応するデータベースがない場合は、メジャー.マイナーバージョンのデータベース(例:"5.7")を使用します。
仕組み
- バージョン検出。 サーバーは、提供する UE バージョンを判定します:
| 優先度 | ソース | 例 |
|---|---|---|
| 1 | UNREAL_VERSION 環境変数 | "5.5"、"5.7"、"5.7.3" |
| 2 | UNREAL_PROJECT_PATH | .uproject の EngineAssociation フィールドを読み取ります(例:5.5.1 または 5.7) |
プロジェクトに合わせて、いずれかを設定してください。どちらも設定されていない場合、サーバーは UE 5.7 をデフォルトで使用します。
-
データベースのダウンロード。 対応するバージョンのデータベースがローカルにキャッシュされていない場合、GitHub から(一度だけ)ダウンロードします。パッチバージョンの場合、必要に応じてメジャー.マイナーバージョンのデータベースを使用します。また、起動時に更新も確認します。
-
提供。 すべてのツール呼び出しは、バージョンに対応した SQLite データベースを検索します。正確な検索は 1 ミリ秒未満、検索クエリは 5 ミリ秒未満で完了します。
各バージョンには、そのリリースに対応した正確なシグネチャ、非推奨の警告、メンバー一覧を含む専用のデータベースがあります。
ツール
| ツール | 用途 | 例 |
|---|---|---|
search_unreal_api | キーワードで API を検索 | 「キャラクターの移動」、「アクターをスポーン」、「K2Node」 |
get_function_signature | パラメーターと戻り値の型を含む正確なシグネチャ | AActor::GetActorLocation |
get_include_path | 型に対応する #include を解決 | 「ACharacter」 -> #include "GameFramework/Character.h" |
get_class_reference | クラスの完全なリファレンスカード | 「APlayerController」、「UK2Node_SpawnActorFromClass」、「UEdGraphSchema_K2」 |
get_deprecation_warnings | API が古くなっているか確認 | 「K2_AttachRootComponentTo」 -> 代わりに AttachToComponent() を使用 |
対応範囲
Engine Runtime、Editor、Developer の全モジュールに加え、組み込みプラグイン(Enhanced Input、Gameplay Abilities、Common UI、Niagara、Chaos など数百件)に対応しています。
Blueprint グラフの内部も含まれます。158 個の UK2Node サブクラス、UEdGraphSchema_K2、BlueprintGraph、KismetCompiler、GraphEditor モジュール(1,120 件以上)が対象です。カスタム K2 ノードやエディターツールを作成する場合も、インデックス化されています。
対応バージョンとデータベースの全一覧は、db-v1 リリースページをご覧ください。新しいバージョンは毎週月曜日に検出され、CI によって自動的にビルドされます。
レコードの内訳(UE 5.7):
| 種類 | 件数 | ソース |
|---|---|---|
| クラス(UCLASS) | 10,075 | AActor、ACharacter、UGameplayStatics、... |
| 構造体(USTRUCT) | 9,014 | FHitResult、FVector、FTransform、... |
| 列挙型(UENUM) | 3,475 | EMovementMode、ECollisionChannel、... |
| 関数(UFUNCTION) | 23,414 | パラメーター、戻り値の型、指定子を含むシグネチャ |
| プロパティ(UPROPERTY) | 66,340 | 型、指定子、ドキュメントコメント |
| デリゲート | 2,406 | 動的マルチキャスト、デリゲート宣言 |
サードパーティ製プラグインやマーケットプレイスのアセットは対象外です。それらについては、プロジェクトのソースを参照してください。
ベンチマーク
約束ではなく、実測値です。2つのテストベッドで14の調査質問に3つのエージェント設定が回答し、すべての回答を事前に検証した正解データ(API の事実はドキュメントデータベース、ソースコードの事実は UE 5.8 エンジンツリーと照合)に基づいて評価しました。完全なハーネスは docs/benchmark/ にあり、1つのコマンドで再実行できます。
| 設定 | 正解 | 一部正解 | 不正解 |
|---|---|---|---|
| MCP + 対象を絞った Read | 14/14 | 0 | 0 |
| 熟練(Grep+Read) | 11/14 | 2 | 1 |
| 初歩(全件 Read) | 12/14 | 1 | 1 |
差が現れるのは、予想とは異なる部分です。ドキュメントが充実した include やシグネチャ、そして1万4000行のエンジンファイル内で grep できる実装上の事実については、3つの設定すべてが同点です。最新のモデルは UE のドキュメント化された API を把握しており、ローカルのソースコードも適切に検索できます。差が開くのは、最近の非推奨化についてです。UKismetSystemLibrary::IsSplitScreen が 5.8 でもまだ有効かと尋ねたところ、MCP を使わないエージェントはどちらも誤答しました。一方は回答を控え、もう一方は問題ないと断言しました。実際には HasMultipleLocalPlayers に置き換えられ、非推奨になっています。また、どちらも AActor::NetUpdateFrequency への直接アクセスが非推奨になった 5.5 時代の変更について、誤った説明をしました。MCP エージェントは、非推奨フラグと置き換え先のヒントがデータベースにあるため、非推奨に関する3つの質問すべてに正しく答えました。
なぜ生の出力ではなく正確性を重視するのでしょうか。エージェント型ツールは、今ではコードをうまく検索できます。Claude Code には最初から Grep ツールが搭載されているため、エージェントはファイル内に実在するものなら何でも見つけられます。問題は、ファイル内にない情報、つまり正確なシグネチャ、#include のパス、特に新しい非推奨化です。これらはモデルの記憶にも確実に含まれているとは限らず、間違えるとビルドが失敗したり、非推奨の呼び出しが気づかれないまま使われたりします。
方法
- 2つのテストベッド:純粋な Unreal API の検索8件(正確なシグネチャ、
#includeのパス、非推奨化)と、UE 5.8 エンジンのソースコードにあるCharacterMovementComponent.cpp(約1万4000行)から回答する質問6件 - 3つの設定で、同じモデル(Sonnet)とターン数の上限を使用:MCP ツール + Grep/Read、Grep/Read のみ、Read のみ
- API のテストはエンジンソースがない状態で実行します。これは、自分のプロジェクトで UE C++ を書く際の現実的な状況であり、そのため MCP を使わない設定ではモデルの記憶を頼りに回答します。ソースコードのテストでは、すべての設定に同じファイルを grep させます
- すべての実行前に正解データを検証し、別のモデルセッションを使って正解データに基づき回答を評価しました
- 自分で実行するには:
python docs/benchmark/run.py --cwd <dir> --questions <file>(2026年7月時点の結果です。エージェントの挙動は変わるため、引用する前に再実行してください)。自分の UE プロジェクトを指定すると、プロジェクトを調査するシナリオを再現できます
クエリのレイテンシ
UE 5.7 データベース(114,724件のレコード)で、クエリごとに50回測定:
| クエリ | 中央値 | p95 |
|---|---|---|
完全修飾名(FQN)による検索(get_function_signature) | <1ms | <1ms |
| FTS 検索:特定の関数名 | <1ms | <1ms |
| FTS 検索:キーワード(「spawn actor」) | 1ms | 1ms |
| include パスの解決 | 2ms | 2ms |
| クラス参照(メンバー一覧全体) | 22ms | 23ms |
| 非推奨化の確認 | 24ms | 25ms |
CLAUDE.md のスニペット
プロジェクトの CLAUDE.md(または同等の指示ファイル)に、これを追加してください。この手順は重要です。 追加しないと、AI はツールを使える状態でも、いつ使えばよいか分かりません。
## Unreal Engine API Lookup (unreal-api MCP)
Use the `unreal-api` MCP tools to verify UE C++ API usage instead of guessing. **Do not hallucinate signatures or #include paths.**
| When | Tool | Example |
|------|------|---------|
| Unsure about a function's parameters or return type | `get_function_signature` | `get_function_signature("AActor::GetActorLocation")` |
| Need the `#include` for a type | `get_include_path` | `get_include_path("ACharacter")` |
| Want to see all members on a class | `get_class_reference` | `get_class_reference("UCharacterMovementComponent")` |
| Searching for an API by keyword | `search_unreal_api` | `search_unreal_api("spawn actor")` |
| Checking if an API is deprecated | `get_deprecation_warnings` | `get_deprecation_warnings("K2_AttachRootComponentTo")` |
| Writing custom K2 nodes or editor tools | `get_class_reference` | `get_class_reference("UK2Node_SpawnActorFromClass")`, `get_class_reference("UEdGraphSchema_K2")` |
**Rules:**
- Before writing a UE API call you haven't used in this conversation, verify the signature with `get_function_signature`
- Before adding a `#include`, verify with `get_include_path` if unsure
- Covers: all Engine Runtime/Editor modules, built-in plugins (Enhanced Input, GAS, CommonUI, Niagara, etc.), Blueprint graph internals (UK2Node subclasses, EdGraphSchema, BlueprintGraph, KismetCompiler)
- Does NOT cover: third-party plugins or marketplace assets
セットアップの詳細
.uproject からバージョンを自動検出する
UNREAL_VERSION を設定する代わりに、Unreal プロジェクトを指定できます。サーバーは .uproject ファイルから EngineAssociation フィールドを読み取ります。
{
"mcpServers": {
"unreal-api": {
"command": "uvx",
"args": ["unreal-api-mcp"],
"env": {
"UNREAL_PROJECT_PATH": "F:/Unreal Projects/MyProject"
}
}
}
}
別のインストール方法
pip install を使用する場合:
pip install unreal-api-mcp
{
"mcpServers": {
"unreal-api": {
"command": "unreal-api-mcp",
"args": [],
"env": {
"UNREAL_VERSION": "5.5"
}
}
}
}
環境変数
| 変数 | 用途 | 例 |
|---|---|---|
UNREAL_VERSION | 提供する UE のバージョン | 5.5、5.7、5.7.3 |
UNREAL_PROJECT_PATH | .uproject からバージョンを自動検出 | F:/Unreal Projects/MyProject |
UNREAL_INSTALL_PATH | UE のインストールパスを上書き(ingest のみ) | H:/UE_5.6 |
データベースをローカルで構築する
ダウンロードする代わりに、独自の Unreal Engine インストールからデータベースを構築する場合:
# Build for a specific version
python -m unreal_api_mcp.ingest --unreal-version 5.6 --unreal-install "H:/UE_5.6"
python -m unreal_api_mcp.ingest --unreal-version 5.5 --unreal-install "H:/UE_5.5"
データベースは、デフォルトで ~/.unreal-api-mcp/unreal_docs_{version}.db に書き込まれます。
プロジェクト構成
unreal-api-mcp/
├── src/unreal_api_mcp/
│ ├── server.py # MCP server (5 tools)
│ ├── db.py # SQLite + FTS5 database layer
│ ├── version.py # Version detection + DB download
│ ├── header_parser.py # Parse Unreal C++ headers (UCLASS, UFUNCTION, etc.)
│ ├── unreal_paths.py # Locate UE installs + discover modules
│ └── ingest.py # CLI ingestion pipeline
└── pyproject.toml
データベースは ~/.unreal-api-mcp/ に保存されます(初回実行時にダウンロードされます)。
トラブルシューティング
| 問題 | 対処方法 |
|---|---|
| "Could not download UE X database" | インターネット接続を確認してください。またはローカルで構築してください:python -m unreal_api_mcp.ingest --unreal-version 5.6 --unreal-install H:/UE_5.6 |
| 提供される API のバージョンが違う | UNREAL_VERSION を明示的に設定してください。stderr を確認してください:unreal-api-mcp: serving UE <version> |
| サーバーが起動しない | python --version を確認してください(3.10 以降が必要です)。パスを確認してください:which unreal-api-mcp または where unreal-api-mcp |
ModuleNotFoundError: No module named 'mcp.server.fastmcp' | バージョン 0.3.0 以前では mcp 2.x がインストールされていました。MCP クライアントを再起動するか、uvx unreal-api-mcp@latest を実行してください。pip を使う場合は、pip install -U unreal-api-mcp を実行してください。 |
| サードパーティ製プラグインから結果が返されない | Marketplace/サードパーティ製プラグインはインデックス化されていません。対象となるのは組み込みの Engine API と Plugin API のみです。 |
関連項目
unity-api-mcp:Unity(C#)向けの同様のツールです。Unity 2022、2023、Unity 6 に対応しています。
お問い合わせ
お使いのエンジンやフレームワーク用のカスタム MCP サーバーが必要ですか?AI を活用したゲーム開発で、トークンの無駄を減らし、ハルシネーションを防ぐ MCP ツールを開発しています。チームの技術スタック向けに同様のものをご希望の場合は、お問い合わせください。
ライセンス
個人的または非営利の目的であれば、自由に使用、フォーク、改変、共有できます。 商用利用には許可が必要です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。