# save_file

A write tool on the Blend Ai MCP server.

Agent View of the PolicyLayer registry record for `save_file`. HTML page: https://policylayer.com/tools/holdmybeer-gg-blend-ai/save-file

## Facts

- Tool: `save_file`
- Server: Blend Ai (`holdmybeer-gg/blend-ai`) — https://policylayer.com/tools/holdmybeer-gg-blend-ai.md
- Homepage: https://github.com/HoldMyBeer-gg/blend-ai
- 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": "save_file",
    "arguments": {}
  }
}
```

## Why save_file is rated Medium

The 'save_file' tool persists data to disk, which is a write operation that modifies the file system. While not destructive in the traditional sense (the operation is reversible—files can be overwritten or deleted separately), it commits changes to storage and could overwrite existing project files. Severity is high because in a Blender automation context, an unintended save could overwrite important work.

From the tool's own definition: "Tool named 'save_file' with empty description; context shows it is part of a Blender control server with 108 tools for 3D modeling, animation, and rendering operations."

## Use case

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

## Recommended policy (PolicyLayer)

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

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "save_file": {
      "limits": [
        {
          "counter": "save_file_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Blend Ai (174)

- `clear_animation` — Destructive — https://policylayer.com/tools/holdmybeer-gg-blend-ai/clear-animation.md
- `delete_collection` — Destructive — https://policylayer.com/tools/holdmybeer-gg-blend-ai/delete-collection.md
- `delete_keyframe` — Destructive — https://policylayer.com/tools/holdmybeer-gg-blend-ai/delete-keyframe.md
- `delete_light` — Destructive — https://policylayer.com/tools/holdmybeer-gg-blend-ai/delete-light.md
- `delete_material` — Destructive — https://policylayer.com/tools/holdmybeer-gg-blend-ai/delete-material.md
- `delete_object` — Destructive — https://policylayer.com/tools/holdmybeer-gg-blend-ai/delete-object.md
- `delete_particle_system` — Destructive — https://policylayer.com/tools/holdmybeer-gg-blend-ai/delete-particle-system.md
- `delete_scene` — Destructive — https://policylayer.com/tools/holdmybeer-gg-blend-ai/delete-scene.md
- `remove_annotation_layer` — Destructive — https://policylayer.com/tools/holdmybeer-gg-blend-ai/remove-annotation-layer.md
- `remove_color_ramp_element` — Destructive — https://policylayer.com/tools/holdmybeer-gg-blend-ai/remove-color-ramp-element.md
- `remove_modifier` — Destructive — https://policylayer.com/tools/holdmybeer-gg-blend-ai/remove-modifier.md
- `remove_shader_node` — Destructive — https://policylayer.com/tools/holdmybeer-gg-blend-ai/remove-shader-node.md
- `execute_blender_code` — Execute — https://policylayer.com/tools/holdmybeer-gg-blend-ai/execute-blender-code.md
- `render_animation` — Execute — https://policylayer.com/tools/holdmybeer-gg-blend-ai/render-animation.md
- `render_image` — Execute — https://policylayer.com/tools/holdmybeer-gg-blend-ai/render-image.md
- `spin_mesh` — Execute — https://policylayer.com/tools/holdmybeer-gg-blend-ai/spin-mesh.md
- `analyze_mesh_quality` — Read — https://policylayer.com/tools/holdmybeer-gg-blend-ai/analyze-mesh-quality.md
- `get_color_ramp` — Read — https://policylayer.com/tools/holdmybeer-gg-blend-ai/get-color-ramp.md
- `get_node_tree` — Read — https://policylayer.com/tools/holdmybeer-gg-blend-ai/get-node-tree.md
- `get_object_info` — Read — https://policylayer.com/tools/holdmybeer-gg-blend-ai/get-object-info.md
- `get_scene_info` — Read — https://policylayer.com/tools/holdmybeer-gg-blend-ai/get-scene-info.md
- `get_viewport_screenshot` — Read — https://policylayer.com/tools/holdmybeer-gg-blend-ai/get-viewport-screenshot.md
- `list_geometry_node_inputs` — Read — https://policylayer.com/tools/holdmybeer-gg-blend-ai/list-geometry-node-inputs.md
- `list_keyframes` — Read — https://policylayer.com/tools/holdmybeer-gg-blend-ai/list-keyframes.md
- `list_lights` — Read — https://policylayer.com/tools/holdmybeer-gg-blend-ai/list-lights.md
- `list_materials` — Read — https://policylayer.com/tools/holdmybeer-gg-blend-ai/list-materials.md
- `list_objects` — Read — https://policylayer.com/tools/holdmybeer-gg-blend-ai/list-objects.md
- `list_procedural_patterns` — Read — https://policylayer.com/tools/holdmybeer-gg-blend-ai/list-procedural-patterns.md
- `list_recent_files` — Read — https://policylayer.com/tools/holdmybeer-gg-blend-ai/list-recent-files.md
- `list_scenes` — Read — https://policylayer.com/tools/holdmybeer-gg-blend-ai/list-scenes.md
- …and 144 more: https://policylayer.com/tools/holdmybeer-gg-blend-ai.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=holdmybeer-gg-blend-ai · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/holdmybeer-gg-blend-ai
