mcpField
U
Unreal Engine API Documentation

Unreal Engine API Documentation

ローカル
github.com/Codeturion開発ツール972 日前に更新

Unreal Engine API Documentation について

unreal-api-mcp は、AI エージェントに Unreal Engine C++ API のドキュメントを提供する MCP サーバーです。エンジンのランタイム、エディター、組み込みプラグインを対象とし、プロジェクトの UE バージョンに対応するデータベースを提供します。誤った関数シグネチャ、誤った #include パス、非推奨 API の使用を減らすことを目的としています。Unreal Engine のインストールは不要です。

主な機能

  1. 01UE リリースごとの API データベース
  2. 02パラメータを含む正確な関数シグネチャの取得
  3. 03型に対応する #include パスの解決
  4. 04置き換え候補を含む非推奨 API の警告
  5. 05Blueprint グラフの内部クラスの検索
  6. 06`.uproject` からのバージョン自動検出

活用シーン

  1. 01エージェントが UE C++ コードを書く前の関数シグネチャの確認
  2. 02型の #include パスの調査
  3. 03プロジェクトで使用している API の非推奨状況の確認

MCP 対応

本プロジェクトは MCP サーバーであり、search_unreal_api、get_function_signature、get_include_path、get_class_reference、get_deprecation_warnings の 5 つのツールを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"codeturion-unreal-api": {
"command": "uvx",
"args": [
"unreal-api-mcp"
],
"env": {
"UNREAL_VERSION": "<UNREAL_VERSION>",
"UNREAL_PROJECT_PATH": "<UNREAL_PROJECT_PATH>"
}
}
}
}
起動コマンドuvx unreal-api-mcp
設定が必要な環境変数
UNREAL_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiunreal-api-mcp0.3.1

ツール

5

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
querystringはい
n_resultsintegerいいえ
member_typestringいいえ

詳細

unreal-api-mcp

PyPI Version PyPI Downloads MCP Registry GitHub Stars GitHub Last Commit Detect New UE Release License: MIT Python 3.10+

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")を使用します。

仕組み

  1. バージョン検出。 サーバーは、提供する UE バージョンを判定します:
優先度ソース例
1UNREAL_VERSION 環境変数"5.5"、"5.7"、"5.7.3"
2UNREAL_PROJECT_PATH.uproject の EngineAssociation フィールドを読み取ります(例:5.5.1 または 5.7)

プロジェクトに合わせて、いずれかを設定してください。どちらも設定されていない場合、サーバーは UE 5.7 をデフォルトで使用します。

  1. データベースのダウンロード。 対応するバージョンのデータベースがローカルにキャッシュされていない場合、GitHub から(一度だけ)ダウンロードします。パッチバージョンの場合、必要に応じてメジャー.マイナーバージョンのデータベースを使用します。また、起動時に更新も確認します。

  2. 提供。 すべてのツール呼び出しは、バージョンに対応した 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_warningsAPI が古くなっているか確認「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,075AActor、ACharacter、UGameplayStatics、...
構造体(USTRUCT)9,014FHitResult、FVector、FTransform、...
列挙型(UENUM)3,475EMovementMode、ECollisionChannel、...
関数(UFUNCTION)23,414パラメーター、戻り値の型、指定子を含むシグネチャ
プロパティ(UPROPERTY)66,340型、指定子、ドキュメントコメント
デリゲート2,406動的マルチキャスト、デリゲート宣言

サードパーティ製プラグインやマーケットプレイスのアセットは対象外です。それらについては、プロジェクトのソースを参照してください。

ベンチマーク

約束ではなく、実測値です。2つのテストベッドで14の調査質問に3つのエージェント設定が回答し、すべての回答を事前に検証した正解データ(API の事実はドキュメントデータベース、ソースコードの事実は UE 5.8 エンジンツリーと照合)に基づいて評価しました。完全なハーネスは docs/benchmark/ にあり、1つのコマンドで再実行できます。

検証済みの正解データに照らして評価した、エージェント設定ごとの回答品質
設定正解一部正解不正解
MCP + 対象を絞った Read14/1400
熟練(Grep+Read)11/1421
初歩(全件 Read)12/1411

差が現れるのは、予想とは異なる部分です。ドキュメントが充実した 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」)1ms1ms
include パスの解決2ms2ms
クラス参照(メンバー一覧全体)22ms23ms
非推奨化の確認24ms25ms

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_PATHUE のインストールパスを上書き(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 ツールを開発しています。チームの技術スタック向けに同様のものをご希望の場合は、お問い合わせください。

[email protected]

ライセンス

MIT

個人的または非営利の目的であれば、自由に使用、フォーク、改変、共有できます。 商用利用には許可が必要です。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。