# cancel_booking

Cancel a booking. Optionally provide a reason.

Agent View of the PolicyLayer registry record for `cancel_booking`. HTML page: https://policylayer.com/tools/io-favcrm-favcrm/cancel-booking

## Facts

- Tool: `cancel_booking`
- Server: FavCRM (`https://api.favcrm.io/mcp`) — https://policylayer.com/tools/io-favcrm-favcrm.md
- Homepage: https://github.com/favcrm/mcp
- Risk category: Destructive (Critical risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server CORS policy: *
- Server rate-limited: no
- Parameters: 2 (1 required)
- Recommended policy verdict: Hidden

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `reason` | string | no | Cancellation reason |
| `bookingId` | string | yes | The booking ID to cancel |

Parameters from the server's own tool schema.

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

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "cancel_booking",
    "arguments": {
      "bookingId": "<bookingId>"
    }
  }
}
```

## Why cancel_booking is rated Critical

Cancelling a booking is a destructive action: once cancelled, the booking slot is released, the customer and staff are notified, and the original reservation cannot simply be restored. This has significant operational impact (lost revenue, customer disruption) and is generally not reversible without creating a new booking manually.

From the tool's own definition: "'Cancel a booking' — cancellation is typically irreversible and removes a confirmed appointment/reservation from the system"

## Use case

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

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

## Other tools on FavCRM (219)

- `delete_account` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-account.md
- `delete_campaign` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-campaign.md
- `delete_category` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-category.md
- `delete_contact` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-contact.md
- `delete_custom_field` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-custom-field.md
- `delete_deal` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-deal.md
- `delete_invoice` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-invoice.md
- `delete_knowledge_document` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-knowledge-document.md
- `delete_post` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-post.md
- `delete_post_type` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-post-type.md
- `delete_post_type_field` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-post-type-field.md
- `delete_promotion` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-promotion.md
- `delete_segment` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-segment.md
- `delete_service_package` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-service-package.md
- `delete_tag` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-tag.md
- `delete_task` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/delete-task.md
- `remove_post_block` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/remove-post-block.md
- `void_invoice` — Destructive — https://policylayer.com/tools/io-favcrm-favcrm/void-invoice.md
- `execute_tool` — Execute — https://policylayer.com/tools/io-favcrm-favcrm/execute-tool.md
- `switch_company` — Execute — https://policylayer.com/tools/io-favcrm-favcrm/switch-company.md
- `cancel_subscription` — Financial — https://policylayer.com/tools/io-favcrm-favcrm/cancel-subscription.md
- `create_plan_upgrade_link` — Financial — https://policylayer.com/tools/io-favcrm-favcrm/create-plan-upgrade-link.md
- `create_subscription` — Financial — https://policylayer.com/tools/io-favcrm-favcrm/create-subscription.md
- `enrol_membership` — Financial — https://policylayer.com/tools/io-favcrm-favcrm/enrol-membership.md
- `record_invoice_payment` — Financial — https://policylayer.com/tools/io-favcrm-favcrm/record-invoice-payment.md
- `check_plan_operation` — Read — https://policylayer.com/tools/io-favcrm-favcrm/check-plan-operation.md
- `get_attachment_text` — Read — https://policylayer.com/tools/io-favcrm-favcrm/get-attachment-text.md
- `get_audit_log` — Read — https://policylayer.com/tools/io-favcrm-favcrm/get-audit-log.md
- `get_available_slots` — Read — https://policylayer.com/tools/io-favcrm-favcrm/get-available-slots.md
- `get_booking_detail` — Read — https://policylayer.com/tools/io-favcrm-favcrm/get-booking-detail.md
- …and 189 more: https://policylayer.com/tools/io-favcrm-favcrm.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-favcrm-favcrm · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/io-favcrm-favcrm
