# actual_categories_delete

Delete a category from Actual Budget. Transactions using this category will need to be recategorized. This operation cannot be undone.

Agent View of the PolicyLayer registry record for `actual_categories_delete`. HTML page: https://policylayer.com/tools/actual/actual-categories-delete

## Facts

- Tool: `actual_categories_delete`
- Server: Actual (`actual-mcp-server`) — https://policylayer.com/tools/actual.md
- Install: `npx -y actual-mcp-server`
- Homepage: git+https://github.com/agigante80/actual-mcp-server.git
- 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": "actual_categories_delete",
    "arguments": {}
  }
}
```

## Why actual_categories_delete is rated Critical

This tool irreversibly deletes a category, forcing dependent transactions to be manually recategorized. While the financial impact is indirect (no money moves), the data destruction is permanent and affects the integrity of financial records. This qualifies as Destructive rather than Write because the action cannot be reversed.

From the tool's own definition: "Tool description states 'Delete a category from Actual Budget' and explicitly warns 'This operation cannot be undone.' The word 'Delete' combined with the irreversible nature makes this destructive."

## Use case

AI agents call actual_categories_delete to permanently remove resources in Actual, 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 Actual:

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

## Other tools on Actual (63)

- `actual_accounts_delete` — Destructive — https://policylayer.com/tools/actual/actual-accounts-delete.md
- `actual_category_groups_delete` — Destructive — https://policylayer.com/tools/actual/actual-category-groups-delete.md
- `actual_payees_delete` — Destructive — https://policylayer.com/tools/actual/actual-payees-delete.md
- `actual_rules_delete` — Destructive — https://policylayer.com/tools/actual/actual-rules-delete.md
- `actual_schedules_delete` — Destructive — https://policylayer.com/tools/actual/actual-schedules-delete.md
- `actual_tags_delete` — Destructive — https://policylayer.com/tools/actual/actual-tags-delete.md
- `actual_transactions_delete` — Destructive — https://policylayer.com/tools/actual/actual-transactions-delete.md
- `actual_bank_sync` — Execute — https://policylayer.com/tools/actual/actual-bank-sync.md
- `actual_query_run` — Execute — https://policylayer.com/tools/actual/actual-query-run.md
- `actual_session_close` — Other — https://policylayer.com/tools/actual/actual-session-close.md
- `actual_accounts_list` — Read — https://policylayer.com/tools/actual/actual-accounts-list.md
- `actual_budgets_get_all` — Read — https://policylayer.com/tools/actual/actual-budgets-get-all.md
- `actual_budgets_getMonth` — Read — https://policylayer.com/tools/actual/actual-budgets-getmonth.md
- `actual_budgets_getMonths` — Read — https://policylayer.com/tools/actual/actual-budgets-getmonths.md
- `actual_budgets_list_available` — Read — https://policylayer.com/tools/actual/actual-budgets-list-available.md
- `actual_categories_get` — Read — https://policylayer.com/tools/actual/actual-categories-get.md
- `actual_category_groups_get` — Read — https://policylayer.com/tools/actual/actual-category-groups-get.md
- `actual_entities_search` — Read — https://policylayer.com/tools/actual/actual-entities-search.md
- `actual_get_id_by_name` — Read — https://policylayer.com/tools/actual/actual-get-id-by-name.md
- `actual_notes_get` — Read — https://policylayer.com/tools/actual/actual-notes-get.md
- `actual_payee_rules_get` — Read — https://policylayer.com/tools/actual/actual-payee-rules-get.md
- `actual_payees_common_list` — Read — https://policylayer.com/tools/actual/actual-payees-common-list.md
- `actual_payees_get` — Read — https://policylayer.com/tools/actual/actual-payees-get.md
- `actual_rules_get` — Read — https://policylayer.com/tools/actual/actual-rules-get.md
- `actual_schedules_get` — Read — https://policylayer.com/tools/actual/actual-schedules-get.md
- `actual_server_info` — Read — https://policylayer.com/tools/actual/actual-server-info.md
- `actual_session_list` — Read — https://policylayer.com/tools/actual/actual-session-list.md
- `actual_tags_list` — Read — https://policylayer.com/tools/actual/actual-tags-list.md
- `actual_transactions_filter` — Read — https://policylayer.com/tools/actual/actual-transactions-filter.md
- `actual_transactions_get` — Read — https://policylayer.com/tools/actual/actual-transactions-get.md
- …and 33 more: https://policylayer.com/tools/actual.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=actual · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/actual
