# shader_set_code

Replace the source code of an existing .gdshader resource and save it. DESTRUCTIVE (writes a file) — gated by confirmation.

Agent View of the PolicyLayer registry record for `shader_set_code`. HTML page: https://policylayer.com/tools/godot-breakpoint-mcp/shader-set-code

## Facts

- Tool: `shader_set_code`
- Server: Godot Breakpoint (`jlivingston-Cipher/godot-breakpoint-mcp`) — https://policylayer.com/tools/godot-breakpoint-mcp.md
- Homepage: https://github.com/jlivingston-Cipher/godot-breakpoint-mcp
- Risk category: Destructive (Critical risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Hidden

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

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

## Why shader_set_code is rated Critical

The tool explicitly labels itself DESTRUCTIVE and overwrites existing shader source code on disk. Replacing file contents is irreversible without version control, and misuse could corrupt or destroy shader assets in a Godot project.

From the tool's own definition: "'Replace the source code of an existing .gdshader resource and save it. DESTRUCTIVE (writes a file)'"

## Use case

AI agents call shader_set_code to permanently remove resources in Godot Breakpoint, typically in cleanup and lifecycle workflows. It does its job in a single call, and there is no undo.

## Recommended policy (PolicyLayer)

Verdict: **Hidden**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Godot Breakpoint:

```json
{
  "version": "1",
  "default": "deny",
  "hide": [
    "shader_set_code"
  ]
}
```

## Other tools on Godot Breakpoint (238)

- `anim_delete` — Destructive — https://policylayer.com/tools/godot-breakpoint-mcp/anim-delete.md
- `anim_remove_key` — Destructive — https://policylayer.com/tools/godot-breakpoint-mcp/anim-remove-key.md
- `cs_rename` — Destructive — https://policylayer.com/tools/godot-breakpoint-mcp/cs-rename.md
- `filesystem_move` — Destructive — https://policylayer.com/tools/godot-breakpoint-mcp/filesystem-move.md
- `inputmap_erase_action` — Destructive — https://policylayer.com/tools/godot-breakpoint-mcp/inputmap-erase-action.md
- `node_delete` — Destructive — https://policylayer.com/tools/godot-breakpoint-mcp/node-delete.md
- `project_remove_autoload` — Destructive — https://policylayer.com/tools/godot-breakpoint-mcp/project-remove-autoload.md
- `scene_close` — Destructive — https://policylayer.com/tools/godot-breakpoint-mcp/scene-close.md
- `scene_reload` — Destructive — https://policylayer.com/tools/godot-breakpoint-mcp/scene-reload.md
- `tilemap_clear` — Destructive — https://policylayer.com/tools/godot-breakpoint-mcp/tilemap-clear.md
- `cs_dbg_attach` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/cs-dbg-attach.md
- `cs_dbg_continue` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/cs-dbg-continue.md
- `cs_dbg_evaluate` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/cs-dbg-evaluate.md
- `cs_dbg_launch` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/cs-dbg-launch.md
- `cs_dbg_restart` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/cs-dbg-restart.md
- `cs_dbg_set_exception_breakpoints` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/cs-dbg-set-exception-breakpoints.md
- `cs_dbg_step` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/cs-dbg-step.md
- `dbg_attach` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/dbg-attach.md
- `dbg_continue` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/dbg-continue.md
- `dbg_evaluate` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/dbg-evaluate.md
- `dbg_goto` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/dbg-goto.md
- `dbg_launch` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/dbg-launch.md
- `dbg_restart` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/dbg-restart.md
- `dbg_set_exception_breakpoints` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/dbg-set-exception-breakpoints.md
- `dbg_set_variable` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/dbg-set-variable.md
- `dbg_step` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/dbg-step.md
- `filesystem_scan` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/filesystem-scan.md
- `godot_launch_editor` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/godot-launch-editor.md
- `godot_run_managed` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/godot-run-managed.md
- `godot_run_project` — Execute — https://policylayer.com/tools/godot-breakpoint-mcp/godot-run-project.md
- …and 208 more: https://policylayer.com/tools/godot-breakpoint-mcp.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=godot-breakpoint-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/godot-breakpoint-mcp
