# unifi_update_port_forward

Update specific fields of an existing port forwarding rule using schema validation. Requires confirmation.

Agent View of the PolicyLayer registry record for `unifi_update_port_forward`. HTML page: https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-update-port-forward

## Facts

- Tool: `unifi_update_port_forward`
- Server: UniFi Access MCP (`pypi:unifi-protect-mcp`) — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp.md
- Install: `npx -y pypi:unifi-protect-mcp`
- Homepage: https://github.com/sirkirby/unifi-mcp
- 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": "unifi_update_port_forward",
    "arguments": {}
  }
}
```

## Why unifi_update_port_forward is rated Medium

Port forwarding rule modification is a reversible configuration change that creates or modifies network routing settings. While it affects network behavior and could have broad impact if misconfigured (justifying 'high' severity), it does not delete data irreversibly (thus not Destructive) and does not execute arbitrary code (thus not Execute).

From the tool's own definition: "Tool is named 'unifi_update_port_forward' and described as 'Update specific fields of an existing port forwarding rule'. The verb 'update' indicates modification of existing configuration."

## Use case

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

## Recommended policy (PolicyLayer)

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

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

## Other tools on UniFi Access MCP (271)

- `access_delete_visitor` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/access-delete-visitor.md
- `access_revoke_credential` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/access-revoke-credential.md
- `protect_alarm_delete_rule` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/protect-alarm-delete-rule.md
- `protect_delete_known_face` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/protect-delete-known-face.md
- `protect_delete_known_license_plate` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/protect-delete-known-license-plate.md
- `protect_delete_liveview` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/protect-delete-liveview.md
- `protect_delete_recording` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/protect-delete-recording.md
- `unifi_delete_acl_rule` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-delete-acl-rule.md
- `unifi_delete_ap_group` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-delete-ap-group.md
- `unifi_delete_backup` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-delete-backup.md
- `unifi_delete_client_group` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-delete-client-group.md
- `unifi_delete_content_filter` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-delete-content-filter.md
- `unifi_delete_dns_record` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-delete-dns-record.md
- `unifi_delete_dynamic_dns` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-delete-dynamic-dns.md
- `unifi_delete_firewall_group` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-delete-firewall-group.md
- `unifi_delete_firewall_policy` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-delete-firewall-policy.md
- `unifi_delete_oon_policy` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-delete-oon-policy.md
- `unifi_delete_port_forward` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-delete-port-forward.md
- `unifi_delete_port_profile` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-delete-port-profile.md
- `unifi_delete_wlan` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-delete-wlan.md
- `unifi_forget_client` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-forget-client.md
- `unifi_revoke_voucher` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-revoke-voucher.md
- `unifi_unauthorize_guest` — Destructive — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/unifi-unauthorize-guest.md
- `access_lock_door` — Execute — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/access-lock-door.md
- `access_reboot_device` — Execute — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/access-reboot-device.md
- `access_unlock_door` — Execute — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/access-unlock-door.md
- `protect_ptz_move` — Execute — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/protect-ptz-move.md
- `protect_ptz_preset` — Execute — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/protect-ptz-preset.md
- `protect_reboot_camera` — Execute — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/protect-reboot-camera.md
- `protect_trigger_chime` — Execute — https://policylayer.com/tools/io-github-sirkirby-unifi-access-mcp/protect-trigger-chime.md
- …and 241 more: https://policylayer.com/tools/io-github-sirkirby-unifi-access-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=io-github-sirkirby-unifi-access-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-github-sirkirby-unifi-access-mcp
