# set_file_tags

Set Finder tags on a file. Replaces all existing tags.

Agent View of the PolicyLayer registry record for `set_file_tags`. HTML page: https://policylayer.com/tools/heznpc-airmcp/set-file-tags

## Facts

- Tool: `set_file_tags`
- Server: AirMCP (`airmcp`) — https://policylayer.com/tools/heznpc-airmcp.md
- Install: `npx -y airmcp`
- Homepage: https://github.com/heznpc/AirMCP
- 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": "set_file_tags",
    "arguments": {}
  }
}
```

## Why set_file_tags is rated Medium

This tool modifies file attributes (Finder tags) reversibly. While it does overwrite existing tags, the operation is non-destructive (tags can be re-set), affects only metadata not file content, has minimal blast radius if misused by an agent, and falls squarely into Write operations that create or modify data reversibly. It does not delete files, execute commands, or cause irreversible harm.

From the tool's own definition: "The tool description states it 'Set Finder tags on a file' and 'Replaces all existing tags.' This is a direct modification of file metadata."

## Use case

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

## Recommended policy (PolicyLayer)

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

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

## Other tools on AirMCP (278)

- `close_tab` — Destructive — https://policylayer.com/tools/heznpc-airmcp/close-tab.md
- `delete_contact` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-contact.md
- `delete_event` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-event.md
- `delete_note` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-note.md
- `delete_photos` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-photos.md
- `delete_playlist` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-playlist.md
- `delete_reminder` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-reminder.md
- `delete_reminder_list` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-reminder-list.md
- `delete_shortcut` — Destructive — https://policylayer.com/tools/heznpc-airmcp/delete-shortcut.md
- `memory_forget` — Destructive — https://policylayer.com/tools/heznpc-airmcp/memory-forget.md
- `move_note` — Destructive — https://policylayer.com/tools/heznpc-airmcp/move-note.md
- `quit_app` — Destructive — https://policylayer.com/tools/heznpc-airmcp/quit-app.md
- `remove_from_playlist` — Destructive — https://policylayer.com/tools/heznpc-airmcp/remove-from-playlist.md
- `semantic_clear` — Destructive — https://policylayer.com/tools/heznpc-airmcp/semantic-clear.md
- `semantic_index` — Destructive — https://policylayer.com/tools/heznpc-airmcp/semantic-index.md
- `spotlight_clear` — Destructive — https://policylayer.com/tools/heznpc-airmcp/spotlight-clear.md
- `system_power` — Destructive — https://policylayer.com/tools/heznpc-airmcp/system-power.md
- `trash_file` — Destructive — https://policylayer.com/tools/heznpc-airmcp/trash-file.md
- `activate_tab` — Execute — https://policylayer.com/tools/heznpc-airmcp/activate-tab.md
- `ai_agent` — Execute — https://policylayer.com/tools/heznpc-airmcp/ai-agent.md
- `ai_chat` — Execute — https://policylayer.com/tools/heznpc-airmcp/ai-chat.md
- `ai_plan_metrics` — Execute — https://policylayer.com/tools/heznpc-airmcp/ai-plan-metrics.md
- `connect_bluetooth` — Execute — https://policylayer.com/tools/heznpc-airmcp/connect-bluetooth.md
- `disconnect_bluetooth` — Execute — https://policylayer.com/tools/heznpc-airmcp/disconnect-bluetooth.md
- `drop_pin` — Execute — https://policylayer.com/tools/heznpc-airmcp/drop-pin.md
- `duplicate_shortcut` — Execute — https://policylayer.com/tools/heznpc-airmcp/duplicate-shortcut.md
- `edit_shortcut` — Execute — https://policylayer.com/tools/heznpc-airmcp/edit-shortcut.md
- `event_subscribe` — Execute — https://policylayer.com/tools/heznpc-airmcp/event-subscribe.md
- `generate_image` — Execute — https://policylayer.com/tools/heznpc-airmcp/generate-image.md
- `generate_structured` — Execute — https://policylayer.com/tools/heznpc-airmcp/generate-structured.md
- …and 248 more: https://policylayer.com/tools/heznpc-airmcp.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=heznpc-airmcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/heznpc-airmcp
