GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Beschreibung vom Entwickler (englisches Original)
Unreal Engine MCP server: C++ PDB symbols, Blueprint and .uasset analysis, build-error fixes
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Der Entwickler hat in der Registry keine Installationsangaben gemacht. Sieh dir unten die README des Entwicklers an.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 8. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto Next-Stage-Inc bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.13.7) kam vor 42 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code.
In derselben Kategorie: GitHub, Desktop Commander, Cloudflare MCP
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
NarshaMCP is an Unreal Engine MCP server. It is distributed on Fab as NarshaADK.
It parses C++ source, PDB symbols and binary .uasset files and serves the result over MCP. It is tested with Claude Code and Codex. Most reads work from disk with the Unreal Editor closed; edits need the Editor.
Get it on Fab · Latest release · Documentation
UE 5.7 UE 5.8 Early Access
Early Access. Tool names, parameters and output shapes may change between releases.
The Fab product is named NarshaADK. The installed plugin folder, code module and runtime executable are named NarshaMCP.
The runtime is a prebuilt Windows 64-bit executable inside the plugin, and it runs on your machine. There is no hosted MCP endpoint. Python and Node.js are not required.
YourProject/Plugins/.{
"mcpServers": { "narshamcp": { "command": " /Plugins/NarshaMCP/Source/ThirdParty/bin/narshamcp.exe", "args": ["connect", "--project-path", " "], "env": { "RUST_LOG": "error" } } } }
Fab installs the plugin under the engine's Plugins folder ( /Engine/Plugins/Marketplace/NarshaMCP or /Engine/Plugins/Fab/NarshaMCP, where is your engine install folder), not in the project. For a Fab install, replace /Plugins/NarshaMCP in the command with that plugin folder. Clients that launch the server as a direct process, such as Cursor, use --stdio in place of connect.
The full steps are in Requirements, Install and Connect your MCP client.
Most tools take an operation argument. The table lists common read operations. ue_tool_docs returns every operation and its parameters, and your client lists the tools under tools/list.
| Tool | Returns | Read operations | Editor closed | Maturity |
|---|---|---|---|---|
ue_analyze_symbols | Symbols, callers, callees and class hierarchy from the project's PDBs; C++/Blueprint cross-references matched against the Blueprint packages | search_symbols, find_callers, find_callees, trace_hierarchy, find_cpp_to_bp, find_bp_to_cpp, impact_analysis | yes | Production |
ue_manage_blueprint | Events, nodes, variables and defaults, parent class and AnimGraph of a Blueprint asset | get_event_graph, get_raw_nodes, search_variables, get_variable_default, get_blueprint_metadata, list_blueprints, get_animgraph | yes; edits need the Editor | Beta |
ue_fix_errors | Build-log errors matched to a fix: the missing #include, the missing Build.cs module | scan_build_log, preflight, preview | yes; build_and_fix runs a build, get_compiler_results needs the Editor | Beta |
ue_manage_ai | StateTree and Behavior Tree states, tasks, transitions and bindings | get_summary, get_structure, find_transitions, get_bindings | yes; edits need the Editor | Production |
ue_manage_material | Material node topology, graph summary and instance hierarchy | get_graph_summary, get_nodes, get_hierarchy, search_materials | yes; name-based edges need the Editor | Experimental |
ue_manage_niagara | Niagara systems, emitters, renderers and parameters | get_emitter_details, get_structure, get_parameters, search_systems | yes | Experimental |
ue_manage_pcg | PCG graph nodes and flow | get_structure, trace_flow, find_nodes, search_graphs | yes | Experimental |
ue_search_assets | Asset search and DataTable rows; a cold load of the reference index may persist a cache in the project | search, get_table, find_dependencies, find_references, find_impact | yes | Beta |
ue_analyze_config | Config values across engine and project layers; console-variable declarations | search_config, explain_config, explore_cvar | yes | Beta |
ue_trace_execution | An execution path across input, abilities, Blueprint and C++ | trace_execution_flow, trace_from_input, trace_ability_flow, trace_gameplay_tag | yes | Beta |
ue_generate_code | C++ class scaffolds with Unreal macros and module setup | generate_class | yes; returns the file content for you to save | Beta |
ue_grep, ue_glob, ue_read | Text and name search across source, assets and config | a query, pattern or identifier; no operation | yes | Experimental |
ue_check_health reports the runtime version and whether the indexes are ready.
Each example shows the request, the MCP tool call and the JSON response. Captured from NarshaMCP v0.13.7 on Epic's Lyra Starter Game (UE 5.8.1) with the Editor closed. Values are as returned; removed keys and array elements are marked in the block.
Request. Which Blueprints call StartRangedWeaponTargeting, which C++ does GA_Weapon_Fire call, and what derives from ALyraCharacter?
Before. grep -rn StartRangedWeaponTargeting finds the C++ declaration and definition. The Blueprint call sites are inside binary .uasset packages.
Call. Editor closed.
{"name": "ue_analyze_symbols", "arguments": {"operation": "find_cpp_to_bp", "function_name": "ULyraGameplayAbility_RangedWeapon::StartRangedWeaponTargeting", "limit": 5}}
Output. As returned; cuts are marked.
{
"function_name": "ULyraGameplayAbility_RangedWeapon::StartRangedWeaponTargeting", "total_callers": 2, "truncated": false, "blueprint_callers": [ { "blueprint_name": "GA_Weapon_Fire", "blueprint_path": "/Game/Weapons/GA_Weapon_Fire", "owning_function": "K2_ActivateAbility", "node_name": "K2Node_CallFunction_31", "match_tier": "qualified", "confidence": 0.75 }, { "blueprint_name": "GA_WeaponNetShooter", "blueprint_path": "/ShooterCore/Weapons/NetShooter_PROTO/GA_WeaponNetShooter", "owning_function": "K2_ActivateAbility", "node_name": "K2Node_CallFunction_31", "match_tier": "qualified", "confidence": 0.75 } ] // [truncated] blueprint_callers[] fields omitted: call_type, is_pure; keys omitted: operation, skip_dedup, success }
Call. Editor closed.
{"name": "ue_analyze_symbols", "arguments": {"operation": "find_bp_to_cpp", "blueprint_name": "GA_Weapon_Fire", "limit": 2, "offset": 18}}
Output. As returned; cuts are marked.
{
"blueprint_name": "GA_Weapon_Fire", "total_calls": 33, "offset": 18, "truncated": true, "cpp_calls": [ { "full_name": "LyraGameplayAbility_RangedWeapon::StartRangedWeaponTargeting", "owning_function": "K2_ActivateAbility", "node_name": "K2Node_CallFunction_31", "is_pure": false }, { "full_name": "KismetSystemLibrary::SetTimerDelegate", "owning_function": "K2_ActivateAbility", "node_name": "K2Node_CallFunction_4", "is_pure": false } ] // [truncated] cpp_calls[] fields omitted: function_name, owner_class; keys omitted: operation, returned, success, total_count }
Call. Editor closed.
{"name": "ue_analyze_symbols", "arguments": {"operation": "trace_hierarchy", "class_name": "ALyraCharacter", "direction": "down"}}
Output. As returned; cuts are marked.
{
"class_name": "ALyraCharacter", "cpp_descendants_count": 1, "bp_descendants_count": 10, "descendants": [ {"depth": 1, "name": "ALyraCharacterWithAbilities", "relation": "child", "source": "pdb"}, {"depth": 1, "name": "Character_Default", "relation": "child_blueprint", "source": "blueprint"}, {"depth": 2, "name": "B_Hero_Default", "relation": "child_blueprint", "source": "blueprint"}, {"depth": 2, "name": "B_ShootingTarget", "relation": "child_blueprint", "source": "blueprint"} ], "interface_parents": ["IAbilitySystemInterface", "IGameplayCueInterface", "IGameplayTagAssetInterface", "ILyraTeamAgentInterface"] // [truncated] descendants: 4 of 11 elements; descendants[] fields omitted: parent; keys omitted: 13 of 18 }
Result. owning_function is the Blueprint event that contains the call, and match_tier with confidence records how the symbol was matched to the node. descendants[].source is pdb for a C++ subclass and blueprint for a Blueprint one.
Request. What events does GA_Weapon_Fire handle, what is its fire delay, and how is a node wired?
Before. Content/Weapons/GA_Weapon_Fire.uasset is binary, and grep -rn FireDelayTimeSecs over the source finds nothing: the variable exists only in the asset.
Call. Editor closed.
{"name": "ue_manage_blueprint", "arguments": {"operation": "get_event_graph", "blueprint_name": "GA_Weapon_Fire"}}
Output. As returned; cuts are marked.
{
"blueprint_name": "GA_Weapon_Fire", "count": 5, "events": [ {"node_title": "FireComplete", "node_class": "K2Node_CustomEvent"}, {"node_title": "FailureMontage Delay Complete", "node_class": "K2Node_CustomEvent"} ] // [truncated] events: 2 of 5 elements; events[] fields omitted: node_id, owning_function; keys omitted: operation, success }
Call. Editor closed.
{"name": "ue_manage_blueprint", "arguments": {"operation": "search_variables", "blueprint_name": "GA_Weapon_Fire", "pattern": "*Fire*"}}
Output. As returned; cuts are marked.
{
"parent_class": "LyraGameplayAbility_RangedWeapon", "total_count": 2, "results": [ { "name": "CharacterFireMontage", "default_value": "AM_MM_Rifle_Fire", "default_value_type": "Object", "edit_condition": "EditDefaultsOnly" }, { "name": "FireDelayTimeSecs", "default_value": "0.1", "default_value_type": "Double", "edit_condition": "EditDefaultsOnly" } ] // [truncated] results[] fields omitted: 9 of 13; keys omitted: 14 of 17 }
Call. Editor closed.
{"name": "ue_manage_blueprint", "arguments": {"operation": "get_raw_nodes", "blueprint_name": "GA_Weapon_Fire", "page": 1, "page_size": 1}}
Output. As returned; cuts are marked.
{
"total_nodes": 98, "has_more": true, "nodes": [ { "id": "K2Node_AsyncAction_ListenForGameplayMessages_0", "node_class": "K2Node_AsyncAction_ListenForGameplayMessages", "owning_function": "K2_OnAbilityAdded", "pins": [ { "name": "execute", "category": "exec", "direction": "input", "linked_to": [ {"node_id": "K2Node_Event_1", "pin_name": "then", "export_index": 70} ] }, {"name": "then", "category": "exec", "direction": "output", "linked_to": []} ] } ] // [truncated] nodes[].pins: 2 of 12 elements; nodes[].pins[].linked_to[] fields omitted: owning_function; nodes[].pins[] fields omitted: container_type, default_value, pin_id, sub_category; nodes[] fields omitted: 5 of 9; keys omitted: 10 of 13 }
Result. parent_class, events[].node_title and results[].default_value are read from the .uasset. pins[].linked_to names t
Nur der Anfang wird gezeigt; den Rest findest du im Repo