ue5-audio-mcp

UE5 Audio MCP plugin TCP control. Use when sending commands to the Unreal Editor plugin, building MetaSounds graphs via TCP, scanning blueprints, editing Blueprint graphs, spawning audio actors, or debugging the plugin connection on port 9877.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "ue5-audio-mcp" with this command: npx skills add koshimazaki/ue-audio-skills/koshimazaki-ue-audio-skills-ue5-audio-mcp

UE Audio MCP Plugin — TCP Control (42 Commands)

Drive the C++ TCP server inside Unreal Editor. All commands use 4-byte big-endian length prefix + UTF-8 JSON on 127.0.0.1:9877.

Requires the UE Audio MCP Plugin installed in your UE5 project.

Connection

# Python SDK
from ue_audio_mcp.ue5_connection import get_ue5_connection
conn = get_ue5_connection()
resp = conn.send_command({"action": "ping"})

# Raw TCP
python3 -c "
import socket, struct, json
s = socket.socket(); s.settimeout(5); s.connect(('127.0.0.1', 9877))
p = json.dumps({'action':'ping'}).encode()
s.sendall(struct.pack('>I', len(p)) + p)
r = s.recv(4); l = struct.unpack('>I', r)[0]; print(json.loads(s.recv(l)))
"

All 42 Commands

System (1)

CommandParamsReturns
pingengine, version, project, features[]

MetaSounds Builder Lifecycle (3)

CommandParamsReturns
create_builderasset_type (Source/Patch/Preset), nameasset_type, name
add_interfaceinterface
build_to_assetname, path (/Game/...)name, path

Graph I/O (2)

CommandParamsReturns
add_graph_inputname, type, default?name, type
add_graph_outputname, typename, type

Node Operations (3)

CommandParamsReturns
add_nodeid, node_type, position? [x,y]id, node_type
set_defaultnode_id, input, valuenode_id, input
connectfrom_node, from_pin, to_node, to_pinall four

__graph__ = sentinel node ID for graph boundary connections.

Audition & Editor (3)

CommandParamsReturns
auditionname?
stop_audition
open_in_editor

Graph Variables (3, UE 5.7+)

CommandParamsReturns
add_graph_variablename, type, default?name, type
add_variable_get_nodeid, variable_name, delayed?id, variable_name
add_variable_set_nodeid, variable_nameid, variable_name

Presets (2)

CommandParamsReturns
convert_to_presetreferenced_asset (/Game/...)referenced_asset
convert_from_preset

Query & Export (7)

CommandParamsReturns
list_node_classesfilter?, limit? (200), include_pins?, include_metadata?nodes[], total, shown
list_metasound_nodes(alias for list_node_classes)same
get_node_locationsasset_pathnodes[], edges[]
get_graph_input_namesnames[], count
set_live_updatesenabled (bool)enabled
export_metasoundasset_pathasset_type, is_preset, interfaces[], graph_inputs[], graph_outputs[], variables[], nodes[], edges[]
list_blueprint_functionsfilter?, class_filter?, audio_only?, limit?, include_pins?, list_classes_only?functions[], total

Blueprint & Assets (4)

CommandParamsReturns
call_functionfunction, args?function, return_value?
list_assetsclass_filter?, path?, limit?assets[], total, shown
scan_blueprintasset_path, audio_only?, include_pins?graphs[], audio_summary
export_audio_blueprintasset_pathnodes[], edges[], audio_summary

Allowlisted functions: PlaySound2D, PlaySoundAtLocation, SpawnSoundAtLocation, SpawnSound2D, SetSoundMixClassOverride, ClearSoundMixClassOverride, PushSoundMixModifier, PopSoundMixModifier, SetGlobalPitchModulation, SetGlobalListenerFocusParameters, PlayDialogue2D, PlayDialogueAtLocation, SpawnDialogue2D, SpawnDialogueAtLocation, GetPlayerCameraManager, GetPlayerController, GetPlayerPawn.

class_filter values: Blueprint, WidgetBlueprint, AnimBlueprint, MetaSoundSource, MetaSoundPatch, SoundWave, SoundCue, SoundAttenuation, SoundClass, SoundConcurrency, SoundMix, ReverbEffect.

Blueprint Builder (7)

CommandParamsReturns
bp_open_blueprintasset_pathasset_path, graphs[]
bp_add_nodekind (CallFunction/CustomEvent/VariableGet/VariableSet), name, graph?node_id, kind, name
bp_connect_pinsfrom_node, from_pin, to_node, to_pinall four
bp_set_pin_defaultnode_id, pin_name, valuenode_id, pin_name
bp_compilesuccess, errors[], warnings[]
bp_register_existing_nodenode_id, graph?node_id, name, kind
bp_list_pinsnode_idpins[] (name, type, direction, connected, default)

Node kinds: CallFunction (audio API calls), CustomEvent (event receivers), VariableGet/VariableSet (Blueprint variables). Security: Only allowlisted audio functions can be called — prevents arbitrary code execution.

World Audio Setup (7)

CommandParamsReturns
place_anim_notifyanimation_path, notify_type, time, sound?animation_path, notify_type, time
place_bp_anim_notifyanimation_path, notify_class, timeanimation_path, time
spawn_audio_emittersound_path, location [x,y,z], name?, attenuation?name, location
import_sound_filefile_path, destinationsource_path, destination, asset_name
set_physical_surfacematerial_path, surface_typematerial_path, surface_type
place_audio_volumelocation [x,y,z], extent [x,y,z], name?, reverb_effect?, priority?name, location, volume_extent
spawn_blueprint_actorblueprint_path, location [x,y,z], name?, rotation? [p,y,r]name, blueprint_path, location

Assets (1)

CommandParamsReturns
duplicate_assetsource_path, dest_path, dest_namesource_path, dest_path

Key Pin Names

  • Sine/Saw/Square/Triangle: IN: Frequency, Phase Offset, Glide, Bias; OUT: Audio
  • AD Envelope: IN: Trigger, Attack Time, Decay Time; OUT: Out Envelope
  • ADSR Envelope: IN: Trigger Attack, Trigger Release, Attack Time, Decay Time, Sustain Level, Release Time; OUT: Out Envelope
  • Biquad Filter: IN: In, Cutoff Frequency, Bandwidth, Filter Type; OUT: Out
  • Wave Player: IN: Play, Stop, Wave Asset, Start Time, Loop, Pitch Shift; OUT: Out Audio, On Finished
  • Multiply/Add (Audio): IN: Primary Operand, Operand; OUT: Out
  • Map Range: IN: Value, In Range A, In Range B, Out Range A, Out Range B, Clamped; OUT: Out

Full pin reference: scripts/ms_node_specs.json (93 nodes, 464 pins)

Example Workflows

Simple Sine → Output

{"action":"create_builder", "asset_type":"Source", "name":"MySine"}
{"action":"add_interface", "interface":"MetaSound"}
{"action":"add_graph_output", "name":"Out Mono", "type":"Audio"}
{"action":"add_node", "id":"osc", "node_type":"UE::Sine::Audio"}
{"action":"set_default", "node_id":"osc", "input":"Frequency", "value":440}
{"action":"connect", "from_node":"osc", "from_pin":"Audio", "to_node":"__graph__", "to_pin":"Out Mono"}
{"action":"build_to_asset", "name":"MySine", "path":"/Game/Audio/MCP"}

Blueprint Audio Wiring

{"action":"bp_open_blueprint", "asset_path":"/Game/BP_Player"}
{"action":"bp_add_node", "kind":"CallFunction", "name":"PlaySound2D"}
{"action":"bp_add_node", "kind":"CustomEvent", "name":"OnFootstep"}
{"action":"bp_connect_pins", "from_node":"OnFootstep", "from_pin":"then", "to_node":"PlaySound2D", "to_pin":"execute"}
{"action":"bp_compile"}

World Audio Setup

{"action":"import_sound_file", "file_path":"/sounds/footstep_concrete_01.wav", "destination":"/Game/Audio/Footsteps"}
{"action":"spawn_audio_emitter", "sound_path":"/Game/Audio/Ambient/Wind", "location":[0,0,100], "name":"WindEmitter"}
{"action":"place_audio_volume", "location":[0,0,200], "extent":[500,500,300], "reverb_effect":"/Game/Audio/Reverb/LargeHall"}
{"action":"place_anim_notify", "animation_path":"/Game/Anims/Walk", "notify_type":"PlaySound", "time":0.3, "sound":"/Game/Audio/Footsteps/Step01"}

Project Scan & Export

{"action":"list_assets", "class_filter":"Blueprint"}
{"action":"scan_blueprint", "asset_path":"/Game/BP_Player", "audio_only":true}
{"action":"list_assets", "class_filter":"MetaSoundSource"}
{"action":"export_metasound", "asset_path":"/Game/Audio/MS_Gunshot"}

Or batch: python scripts/scan_project.py --full-export --import-db --rebuild-embeddings

Gotchas

  • Must call create_builder before any node/connection ops
  • __graph__ is NOT a real node — it's the boundary sentinel
  • Path must start with /Game/ or /Engine/, no ..
  • Audio vs Float: cannot cross-connect — use correct node variant
  • TCP drops after ~17 rapid commands — use reconnect with progressive delay
  • Builder state is global — only one active builder at a time
  • list_node_classes discovers real class names — the 65-name registry may miss some
  • BP Builder is additive-only — no node deletion (add nodes + wire, don't remove)
  • bp_compile may fail silently — check errors[] in response
  • World commands spawn into the current editor level — save before spawning

Source Files

  • C++ plugin: UE-AUDIO-MCP (42 commands, TCP:9877)
  • Python tools: src/ue_audio_mcp/tools/
  • Node registry: src/ue_audio_mcp/knowledge/metasound_nodes.py (195 nodes, 1053 entries)

$ARGUMENTS

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ue5-blueprint-audio

No summary provided by upstream source.

Repository SourceNeeds Review
General

ue5-metasound-dsp

No summary provided by upstream source.

Repository SourceNeeds Review
General

ue5-wwise-setup

No summary provided by upstream source.

Repository SourceNeeds Review
General

ue5-audio-builder

No summary provided by upstream source.

Repository SourceNeeds Review