# unity_amplify_duplicate_node

Duplicate a node in the Amplify Shader Editor graph. Creates a new node of the same type at a slight offset from the original.

Agent View of the PolicyLayer registry record for `unity_amplify_duplicate_node`. HTML page: https://policylayer.com/tools/anklebreaker-studio-unity-mcp-server/unity-amplify-duplicate-node

## Facts

- Tool: `unity_amplify_duplicate_node`
- 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: Write (Medium 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_amplify_duplicate_node",
    "arguments": {}
  }
}
```

## Why unity_amplify_duplicate_node is rated Medium

Duplicating shader nodes is a write operation that creates new data in a reversible manner. While it modifies the shader graph, the effect is non-destructive and can be undone. The severity is medium because misuse could create complex or broken shader graphs that impact project integrity, but the action is not irreversible and does not execute arbitrary code or delete data.

From the tool's own definition: "Tool description explicitly states it 'Duplicate[s] a node' and 'Creates a new node' in the Amplify Shader Editor graph. This is a create/modify operation that generates new data (shader graph nodes) reversibly."

## Use case

AI agents use unity_amplify_duplicate_node to create or update resources in Unity MCP Server, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Unity MCP Server environment.

## 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_amplify_duplicate_node": {
      "limits": [
        {
          "counter": "unity_amplify_duplicate_node_rate",
          "window": "minute",
          "max": 30,
          "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
