Official

Funplay Unity MCP Server

Unity Editor tasks executed by AI via 154 specialized automation tools.

Data last scanned today · Reviewed yesterday

586 dangerous tools154 tools184C#MIT

Overview

Funplay Unity MCP Server allows AI assistants such as Claude Code, Cursor, and VS Code Copilot to interact directly with the Unity Editor. By integrating 154 built-in tools, it enables automated workflows ranging from scene creation and script generation to performance analysis and input simulation. Developers can prompt their AI to handle complex tasks like setting up UI components or configuring game logic within a live Unity project. The server is installed via the Unity Package Manager and provides a dedicated editor interface to bridge the gap between AI models and Unity development. It is designed to streamline game development cycles by executing editor-level operations through natural language prompts.

Our verdict

This server carries a high-risk profile with a security score of 25/100. The primary security concerns stem from the lack of any authentication method, meaning any entity with access to the configuration can control the server, combined with the absence of a read-only mode that grants full write access to your environment. It is community-maintained and not officially vetted, making it suitable for experimental setups but potentially risky for sensitive or professional production environments.

  • Includes 154 built-in tools for diverse editor automation tasks
  • Supports integration with popular AI assistants like Cursor and Claude
  • Maintains a compact supply chain with only 2 direct dependencies
  • Active development evidenced by recent commits
  • Lacks authentication allowing unauthorized control of the server
  • Provides full write access without a read-only mode option
  • Maintained by community contributors rather than an official vendor

Setup

Claude Desktop
{
  "mcpServers": {
    "funplay-unity-mcp": {
      "args": [
        "-y",
        "com.gamebooom.unity.mcp"
      ],
      "command": "npx"
    }
  }
}

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.

  • No read-only mode — running this grants full read/write access.
  • No built-in authentication — anyone with access to this config can invoke every tool it exposes.

Tools

ToolDescriptionRisk
get_scene_infoReturns information about the currently open scene.low
execute_codeCompiles and executes a C# snippet in-memory on the Unity Editor thread.high
execute_menu_itemExecutes a Unity menu item command as a fallback.medium
create_primitiveCreate a primitive game objectmedium
create_game_objectCreate a new game objectmedium
delete_game_objectDelete a game objecthigh
find_game_objectsFind game objectslow
get_game_object_infoGet game object informationlow
set_transformSet transform propertiesmedium
duplicate_game_objectDuplicate a game objectmedium
rename_game_objectRename a game objectmedium
set_parentSet parent of a game objectmedium
add_componentAdd a component to a game objectmedium
set_tag_and_layerSet tag and layer of a game objectmedium
set_activeSet active state of a game objectmedium
get_hierarchyGet hierarchy informationlow
get_component_propertiesGet component propertieslow
list_componentsList components of a game objectlow
set_component_propertySet a property of a componentmedium
set_component_propertiesSet multiple properties of a componentmedium
copy_componentCopy a componentlow
paste_component_valuesPaste values into a componentmedium
add_component_to_manyAdd a component to multiple objectsmedium
create_scriptCreate a new scriptmedium
edit_scriptEdit an existing scriptmedium
patch_scriptApply a patch to a scriptmedium
create_materialCreate a new materialmedium
assign_materialAssign a material to an objectmedium
find_assetsFind assets in the projectlow
delete_assetDelete an assethigh
rename_assetRename an assetmedium
copy_assetCopy an assetmedium
get_asset_import_settingsGet import settings for an assetlow
set_asset_import_settingsSet import settings for an assetmedium
find_referencesFind references to an asset or objectlow
find_broken_referencesFind broken references in the projectlow
get_mesh_infoGet information about a meshlow
get_material_propertiesGet material propertieslow
set_material_propertySet material propertiesmedium
read_fileRead a file from the projectlow
write_fileWrite to a file in the projectmedium
search_filesSearch for files in the projectlow
list_directoryList files in a directorylow
existsCheck if a file or directory existslow
list_scenesList all scenes in the projectlow
load_scene_additiveLoad a scene additivelymedium
unload_sceneUnload a scenemedium
list_dirty_scenesList scenes with unsaved changeslow
save_all_scenesSave all open scenesmedium
save_sceneSave the current scenemedium
open_sceneOpen a scenemedium
create_new_sceneCreate a new scenemedium
enter_play_modeEnter Unity Play modemedium
exit_play_modeExit Unity Play modemedium
set_time_scaleSet the time scale of the simulationmedium
get_time_scaleGet the current time scalelow
physics_raycastPerform a physics raycastlow
physics_overlapPerform a physics overlap checklow
physics2d_overlap_pointPerform a 2D physics overlap checklow
particle_controlControl particle systemsmedium
get_lighting_settingsGet lighting settingslow
set_lighting_settingsSet lighting settingsmedium
bake_lightmapsStart lightmap bakingmedium
director_evaluateEvaluate a timeline directormedium
create_prefabCreate a prefab from a game objectmedium
instantiate_prefabInstantiate a prefab in the scenemedium
unpack_prefabUnpack a prefab instancemedium
open_prefab_stageOpen a prefab in the prefab stagemedium
save_prefab_stageSave the current prefab stagemedium
close_prefab_stageClose the prefab stagemedium
create_scriptable_objectCreate a new ScriptableObjectmedium
get_scriptable_objectGet data from a ScriptableObjectlow
set_scriptable_object_propertiesSet properties of a ScriptableObjectmedium
create_canvasCreate a UI Canvasmedium
create_buttonCreate a UI Buttonmedium
create_textCreate UI Textmedium
create_imageCreate a UI Imagemedium
raycast_at_pointPerform a UI raycast at a pointlow
create_animation_clipCreate an animation clipmedium
create_animator_controllerCreate an animator controllermedium
assign_animatorAssign an animator to a game objectmedium
get_animator_stateGet information about animator stateslow
set_animator_parameterSet an animator parametermedium
play_animator_stateForce an animator to play a statemedium
get_camera_propertiesGet camera settingslow
set_camera_projectionSet camera projectionmedium
set_camera_settingsUpdate camera settingsmedium
set_camera_culling_maskSet camera culling maskmedium
capture_game_viewCapture screenshot of Game Viewlow
capture_simulator_viewCapture screenshot of Simulator Viewlow
capture_scene_viewCapture screenshot of Scene Viewlow
capture_multiviewCapture screenshots of multiple viewslow
capture_editor_windowCapture an editor windowlow
get_execute_code_historyGet history of executed codelow
replay_execute_codeRe-run a piece of executed codehigh
clear_execute_code_historyClear the execution historymedium
simulate_key_pressSimulate a key pressmedium
simulate_key_comboSimulate a key combinationmedium
simulate_mouse_clickSimulate a mouse clickmedium
simulate_mouse_dragSimulate a mouse dragmedium
get_performance_snapshotGet a one-shot performance summarylow
analyze_scene_complexityAnalyze scene complexitylow
profiler_startStart the Unity Profilermedium
profiler_stopStop the Unity Profilermedium
profiler_statusGet the status of the Profiler sessionlow
get_frame_timingGet CPU/GPU frame timinglow
get_countersRead performance counterslow
get_object_memoryGet memory usage of a specific objectlow
get_top_memory_objectsList top objects by memory usagelow
memory_take_snapshotTake a memory snapshotmedium
memory_list_snapshotsList existing memory snapshotslow
memory_compare_snapshotsCompare two memory snapshotslow
frame_debugger_enableEnable the Frame Debuggermedium
frame_debugger_disableDisable the Frame Debuggermedium
frame_debugger_get_eventsGet frame debugger eventslow
memory_take_full_snapshotTake a full memory snapshotmedium
memory_list_full_snapshotsList full memory snapshotslow
memory_open_snapshot_in_profilerOpen a snapshot in the Profiler windowmedium
memory_query_top_objectsQuery top objects in memorylow
memory_query_referencesQuery references for an object in memorylow
install_packageInstall a Unity packagehigh
remove_packageRemove a Unity packagehigh
list_packagesList installed packageslow
wait_for_compilationWait for script compilation to completelow
request_recompileTrigger a script recompilemedium
get_compilation_errorsGet current compilation errorslow
get_reload_recovery_statusGet domain reload recovery statuslow
run_testsRun project testsmedium
get_test_jobGet status of a test joblow
cancel_test_runCancel a running test jobmedium
get_editor_stateGet general editor statelow
get_selectionGet currently selected objectslow
set_selectionSet selectionmedium
get_prefab_stageGet current prefab stage informationlow
get_active_toolGet currently active editor toollow
set_active_toolSet the active editor toolmedium
get_windowsList open editor windowslow
get_tagsList project tagslow
add_tagAdd a new tagmedium
remove_tagRemove a tagmedium
get_layersList project layerslow
add_layerAdd a new layermedium
get_build_settingsGet build settingslow
get_project_settingsGet project settingslow
undoPerform an undo operationmedium
redoPerform a redo operationmedium
get_undo_stateGet state of the undo stacklow
validate_menu_itemCheck if a menu item is validlow
select_objectSelect an object in the editorlow
focus_on_objectFocus the Scene view on an objectlow
ping_assetPing an asset in the project windowlow
log_messageLog a message to the consolelow
show_dialogShow a dialog boxlow
get_console_logsGet console logslow

Compatibility

ClientLocalDockerRemoteRead-only
ChatGPT
Claude Desktop
Cursor
VS Code
Windsurf

Frequently asked questions

Which versions of Unity are supported?

The Funplay MCP server requires Unity 2022.3 or newer.

Can this server run outside of the Unity Editor?

No, this is an editor-only tool designed specifically to operate within your running Unity project.

How can I maintain a stable connection during Unity domain reloads?

You can enable Experimental Broker Mode in the MCP Server window to maintain connection continuity across Unity script recompiles and Play Mode reloads.

How do I modify which tools are available to the AI?

You can manage and edit the specific tools exposed by the server by navigating to Funplay > Tool Exposure in the Unity menu.

How can I customize safety settings or logging?

Open the Funplay > MCP Settings window to adjust execute_code safety defaults and toggle plugin debug logging.

Alternatives

Changelog

Badge

Funplay Unity MCP Server security score, rated on RepoAI

Maintain this server? Add the live badge to your README.