# unity_execute_code

Execute arbitrary C# code inside the Unity Editor. The code runs in the editor context with access to all Unity APIs. Useful for one-off operations, queries, and automation. Return values are serialized to JSON.

Agent View of the PolicyLayer registry record for `unity_execute_code`. HTML page: https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-execute-code

## Facts

- Tool: `unity_execute_code`
- Server: Unity MCP Server (`anklebreaker-studio/unity-mcp-server`) — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server.md
- Homepage: https://github.com/AnkleBreaker-Studio/unity-mcp-server
- Risk category: Execute (High risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Rate-limited

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "unity_execute_code",
    "arguments": {}
  }
}
```

## Why unity_execute_code is rated High

This tool permits execution of arbitrary code within a running application context with full API access. An AI agent could use this to execute malicious scripts, delete files, modify projects, exfiltrate data, or compromise the development environment. The 'arbitrary' qualifier and unrestricted API access elevate this to critical severity.

From the tool's own definition: "Tool explicitly allows 'Execute arbitrary C# code inside the Unity Editor' with 'access to all Unity APIs'. The description directly indicates code execution capability without restrictions on what that code can do."

## Use case

AI agents invoke unity_execute_code to trigger actions in Unity MCP Server. What it does depends on the arguments the agent supplies, and its effects often reach beyond the immediate call: builds kicked off, notifications sent, workflows started.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Unity MCP Server:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "unity_execute_code": {
      "limits": [
        {
          "counter": "unity_execute_code_rate",
          "window": "minute",
          "max": 10,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Unity MCP Server (337)

- `unity_amplify_remove_node` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-amplify-remove-node.md
- `unity_animation_remove_curve` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-animation-remove-curve.md
- `unity_animation_remove_event` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-animation-remove-event.md
- `unity_animation_remove_keyframe` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-animation-remove-keyframe.md
- `unity_animation_remove_layer` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-animation-remove-layer.md
- `unity_animation_remove_parameter` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-animation-remove-parameter.md
- `unity_animation_remove_state` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-animation-remove-state.md
- `unity_animation_remove_transition` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-animation-remove-transition.md
- `unity_asset_delete` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-asset-delete.md
- `unity_component_remove` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-component-remove.md
- `unity_console_clear` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-console-clear.md
- `unity_editorprefs_delete` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-editorprefs-delete.md
- `unity_gameobject_delete` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-gameobject-delete.md
- `unity_input_remove_action` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-input-remove-action.md
- `unity_input_remove_map` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-input-remove-map.md
- `unity_navmesh_clear` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-navmesh-clear.md
- `unity_packages_remove` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-packages-remove.md
- `unity_playerprefs_delete` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-playerprefs-delete.md
- `unity_playerprefs_delete_all` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-playerprefs-delete-all.md
- `unity_prefab_remove_component` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-prefab-remove-component.md
- `unity_prefab_remove_gameobject` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-prefab-remove-gameobject.md
- `unity_probuilder_delete_faces` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-probuilder-delete-faces.md
- `unity_scene_new` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-scene-new.md
- `unity_shadergraph_remove_node` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-shadergraph-remove-node.md
- `unity_spriteatlas_delete` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-spriteatlas-delete.md
- `unity_terrain_clear_detail` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-terrain-clear-detail.md
- `unity_terrain_clear_trees` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-terrain-clear-trees.md
- `unity_terrain_remove_layer` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-terrain-remove-layer.md
- `unity_terrain_remove_tree_prototype` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-terrain-remove-tree-prototype.md
- `unity_undo_clear` — Destructive — https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-undo-clear.md
- …and 307 more: https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=anklebreaker-studio-unity-mcp-server · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/anklebreaker-studio-unity-mcp-server
