> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended** (the `-y` flags skip prompts, so the command runs without an interactive terminal):
> ```bash
> npx -y @scalekit-inc/cli setup -y
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup -y
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for other Agent Skills-compatible agents in `~/.agents/skills`.
> Skills: integrate-agentkit, implement-saaskit, add-mcp-oauth, implement-sso, implement-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Connect AI agents to the Cloudpress MCP server

The Cloudpress MCP connector routes your AI agent's tool calls to Cloudpress's own MCP server through Scalekit. Each user signs in to Cloudpress once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 66 tools.

**Authentication:** OAuth 2.1/DCR
**Categories:** Developer Tools, Productivity
**Tools:** 66: 39 read, 21 write, 6 destructive
**Users sign in with:** OAuth
**OAuth app:** Scalekit's or your own
**Built by:** Vendor MCP
**Try it:** [Playground in the Scalekit dashboard](https://app.scalekit.com/ws/signup?sk_intent=playground&provider=CLOUDPRESSMCP)

## What you can do

- **Manage sites**: list and inspect sites, rename them, restart containers, and review task history
- **Manage DNS**: create, update, and delete DNS zones and records, and view DNS metrics
- **Control CDN caching**: view cache status, update caching settings, manage edge rules, and purge a site's cache
- **Configure security**: turn Shield on or off and manage WAF rules, rate limits, bot detection, and IP access lists
- **Monitor traffic**: pull CDN and origin logs, performance metrics, resource usage, and security events for a site
- **Find domains**: check availability, get suggestions with pricing, and view domains and registrations

## Setup

1. ### Install the SDK

   **Node.js**

   ```bash
   npm install @scalekit-sdk/node dotenv
   ```

   **Python**

   ```bash
   pip install scalekit-sdk-python python-dotenv
   ```

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

   ```sh title=".env"
   SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
   SCALEKIT_CLIENT_ID=<your-client-id>
   SCALEKIT_CLIENT_SECRET=<your-client-secret>
   ```

3. ### Create the Cloudpress MCP connection

   In **AgentKit > Connections**, create a Cloudpress MCP connection. The name you give it is the `connection_name` your code passes. See [Configure connections](/agentkit/connections/).

   Scalekit credentials are available for Cloudpress MCP server, so you don't need to register an OAuth app.

4. ### Authorize a user and make your first call

   **Node.js** (`quickstart.mts`)

   ```typescript
   import { ScalekitClient } from '@scalekit-sdk/node'
   import 'dotenv/config'
   import { createInterface } from 'node:readline/promises'

   const scalekit = new ScalekitClient(
     process.env.SCALEKIT_ENVIRONMENT_URL,
     process.env.SCALEKIT_CLIENT_ID,
     process.env.SCALEKIT_CLIENT_SECRET,
   )
   const actions = scalekit.actions

   const connector = 'cloudpressmcp'
   const identifier = 'user_123'

   // Generate an authorization link for the user
   const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
   console.log('Authorize Cloudpress MCP:', link)
   const rl = createInterface({ input: process.stdin, output: process.stdout })
   await rl.question('Press Enter after authorizing...')
   rl.close()

   // Make your first call
   const result = await actions.executeTool({
     connector,
     identifier,
     toolName: 'cloudpressmcp_list_dns_zones',
     toolInput: {},
   })
   console.log(result)
   ```

   ```bash
   npx tsx quickstart.mts
   ```

   **Python** (`quickstart.py`)

   ```python
   import os
   from scalekit import ScalekitClient
   from dotenv import load_dotenv
   load_dotenv()

   scalekit_client = ScalekitClient(
       env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),
       client_id=os.getenv("SCALEKIT_CLIENT_ID"),
       client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
   )
   actions = scalekit_client.actions

   connection_name = "cloudpressmcp"
   identifier = "user_123"

   # Generate an authorization link for the user
   link_response = actions.get_authorization_link(
       connection_name=connection_name,
       identifier=identifier,
   )
   print("Authorize Cloudpress MCP:", link_response.link)
   input("Press Enter after authorizing...")

   # Make your first call
   result = actions.execute_tool(
       tool_input={},
       tool_name="cloudpressmcp_list_dns_zones",
       connection_name=connection_name,
       identifier=identifier,
   )
   print(result)
   ```

   ```bash
   python quickstart.py
   ```

   Each user signs in once. See [Authorize a user](/agentkit/tools/authorize/) for the full flow and statuses.

## Tools

Pass the exact name to `execute_tool`, with an input like each tool's example. To ask for a tool that's missing, use the [request form](https://scalekitsupport.portal.usepylon.com/forms/request-a-connector-tool).

**Node.js**

```typescript
const result = await actions.executeTool({
  toolName: 'cloudpressmcp_check_domain_availability',
  toolInput: {
    domain: '<domain>',
  },
  connector: 'cloudpressmcp',
  identifier: 'user_123',
})
```

**Python**

```python
result = actions.execute_tool(
    tool_name="cloudpressmcp_check_domain_availability",
    tool_input={
        "domain": "<domain>",
    },
    connection_name="cloudpressmcp",
    identifier="user_123",
)
```

`result.data` is the app's response as JSON, and `result.execution_id` (`executionId` in Node.js) is the ID of the call.

### `cloudpressmcp_check_domain_availability`

Check Domain Availability · Read-only

Check if a domain name is available for registration.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `domain` (`string`, required): No description.

Example input: `{"domain":"<domain>"}`

### `cloudpressmcp_get_cache_status`

Get Cache Status · Read-only

Get cache status and hit-rate for a site.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_cdn_caching`

Get CDN Caching · Read-only

Get CDN caching configuration for a site.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_cdn_logs`

Get CDN Logs · Read-only

Get CDN access logs for a site over an optional date range.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site.
- `cache_status` (`string`, optional): Filter by cache status (e.g. HIT/MISS).
- `country` (`string`, optional): Two-letter country code filter.
- `from` (`string`, optional): Start datetime for the log range in ISO 8601 format.
- `limit` (`integer`, optional): Max results. Defaults to 100, maximum 1000. Default: `100`.
- `offset` (`integer`, optional): Pagination offset.
- `order` (`string`, optional): Sort order. Defaults to desc. One of: `asc`, `desc`. Default: `desc`.
- `period` (`string`, optional): Preset time window; ignored if from/to are given. One of: `1h`, `6h`, `24h`, `72h`.
- `status` (`string`, optional): Filter by HTTP status code.
- `to` (`string`, optional): End datetime for the log range in ISO 8601 format.
- `url_contains` (`string`, optional): URL substring filter.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_cdn_logs_summary`

Get CDN Logs Summary · Read-only

Get a summary of CDN logs for a site over an optional date range.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site.
- `cache_status` (`string`, optional): Filter by cache status (e.g. HIT/MISS).
- `country` (`string`, optional): Two-letter country code filter.
- `from` (`string`, optional): Start datetime for the summary range in ISO 8601 format.
- `limit` (`integer`, optional): Max results. Defaults to 100, maximum 1000. Default: `100`.
- `offset` (`integer`, optional): Pagination offset.
- `order` (`string`, optional): Sort order. Defaults to desc. One of: `asc`, `desc`. Default: `desc`.
- `period` (`string`, optional): Preset time window; ignored if from/to are given. One of: `1h`, `6h`, `24h`, `72h`.
- `status` (`string`, optional): Filter by HTTP status code.
- `to` (`string`, optional): End datetime for the summary range in ISO 8601 format.
- `url_contains` (`string`, optional): URL substring filter.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_cdn_metrics`

Get CDN Metrics · Read-only

Get CDN performance metrics for a site over an optional date range.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site.
- `period` (`string`, optional): Preset window (defaults to 24h when neither period nor period_start is given); ignored if period_start is given. One of: `12h`, `24h`, `7d`, `30d`.
- `period_start` (`integer`, optional): Unix timestamp that overrides period; must be within the last 3 months.
- `step` (`string`, optional): Granularity, only consulted when period_start is given. One of: `hourly`, `monthly`.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_cdn_status`

Get CDN Status · Read-only

Get the CDN status for a site.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_dns_metrics`

Get DNS Metrics · Read-only

Get metrics for a DNS zone over an optional date range. Requires dns:read scope.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the DNS zone.
- `date_from` (`string`, optional): Start date for the metrics range in ISO 8601 format (YYYY-MM-DD).
- `date_to` (`string`, optional): End date for the metrics range in ISO 8601 format (YYYY-MM-DD).

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_dns_record`

Get DNS Record · Read-only

Get a single DNS record from a DNS zone. Requires dns:read scope.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `dns_zone_id` (`string`, required): The unique identifier of the DNS zone containing the record.
- `id` (`string`, required): The unique identifier of the DNS record.

Example input: `{"dns_zone_id":"<dns_zone_id>","id":"<id>"}`

### `cloudpressmcp_get_dns_zone`

Get DNS Zone · Read-only

Get details for a single DNS zone. Requires dns:read scope.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the DNS zone.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_domain`

Get Domain · Read-only

Get details of a specific domain.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_domain_contact`

Get Domain Contact · Read-only

Get a specific domain contact.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_domain_registration`

Get Domain Registration · Read-only

Get a specific domain registration.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_order`

Get Order · Read-only

Get details of a specific billing order.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The ID of the billing order to retrieve.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_origin_logs`

Get Origin Logs · Read-only

Get origin server logs for a site over an optional date range.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site.
- `date` (`string`, optional): Date to fetch origin logs for (MM-DD-YYYY). Defaults to today.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_resource_metrics`

Get Resource Metrics · Read-only

Get resource usage metrics for a site over an optional date range.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site.
- `kind` (`array`, optional): Metric kinds to return in time-series mode.
- `period_end` (`integer`, optional): Unix timestamp for time-series mode; must be within the last month and greater than period_start.
- `period_start` (`integer`, optional): Unix timestamp for time-series mode; must be within the last month.
- `step` (`string`, optional): Granularity, defaults to 1m. Default: `1m`.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_shield_events`

Get Shield Events · Read-only

Get recent security events detected by Shield.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.
- `continue` (`string`, optional): Continuation token from a previous page.
- `date` (`string`, optional): Date to fetch Shield events for (MM-DD-YYYY). Defaults to today.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_shield_metrics`

Get Shield Metrics · Read-only

Get Shield/WAF performance metrics for a site.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.
- `view` (`string`, optional): individual (default) or overview. One of: `individual`, `overview`. Default: `individual`.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_shield_status`

Get Shield Status · Read-only

Get the Shield (WAF/security) status for a site.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_site`

Get Site · Read-only

Get full details for a single Cloudpress site. Requires sites:read scope.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the Cloudpress site.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_subscription`

Get Subscription · Read-only

Get details of a specific subscription.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_get_waf_config`

Get WAF Config · Read-only

Get the WAF configuration for a site.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_list_access_lists`

List Access Lists · Read-only

List access lists (IP allowlists/blocklists) for a site.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_list_curated_access_lists`

List Curated Access Lists · Read-only

List Cloudpress-managed curated access lists.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_list_dns_records`

List DNS Records · Read-only

List all DNS records in a DNS zone. Requires dns:read scope.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `dns_zone_id` (`string`, required): The unique identifier of the DNS zone whose records to list.
- `page` (`integer`, optional): Page number for pagination. Default: `1`.
- `per_page` (`integer`, optional): Records per page (default 50, max 100). Default: `50`.

Example input: `{"dns_zone_id":"<dns_zone_id>"}`

### `cloudpressmcp_list_dns_zones`

List DNS Zones · Read-only

List all DNS zones in the Cloudpress account. Requires dns:read scope.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `page` (`integer`, optional): Page number for pagination. Default: `1`.
- `per_page` (`integer`, optional): Records per page (default 50, max 100). Default: `50`.

Example input: `{}`

### `cloudpressmcp_list_domain_contacts`

List Domain Contacts · Read-only

List domain contacts.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `q` (`string`, optional): Optional substring match against handle, organization, full name, or registration name.

Example input: `{}`

### `cloudpressmcp_list_domain_registrations`

List Domain Registrations · Read-only

List domain registrations.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `q` (`string`, optional): Optional substring match against domain name (case-insensitive).

Example input: `{}`

### `cloudpressmcp_list_domains`

List Domains · Read-only

List all domains in the workspace.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `page` (`integer`, optional): No description. Default: `1`.
- `per_page` (`integer`, optional): No description. Default: `50`.

Example input: `{}`

### `cloudpressmcp_list_edge_rules`

List Edge Rules · Read-only

List all edge rules configured for a site.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The ID of the site to list edge rules for.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_list_orders`

List Orders · Read-only

List billing orders in the workspace.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `page` (`integer`, optional): Page number to retrieve (1-based). Defaults to 1. Default: `1`.
- `per_page` (`integer`, optional): Records per page (default 50, max 100). Default: `50`.

Example input: `{}`

### `cloudpressmcp_list_rate_limits`

List Rate Limits · Read-only

List rate limit rules for a site.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_list_site_tasks`

List Site Tasks · Read-only

List a site's task/activity history, most recent first.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The ID of the site to list task history for.
- `page` (`integer`, optional): Page number for pagination. Default: `1`.
- `per_page` (`integer`, optional): Records per page (default 50, max 100). Default: `50`.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_list_sites`

List Sites · Read-only

Returns all active sites in the Cloudpress account.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs: none.

Example input: `{}`

### `cloudpressmcp_list_subscriptions`

List Subscriptions · Read-only

List active subscriptions in the workspace.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `page` (`integer`, optional): Page number to retrieve (1-based). Defaults to 1. Default: `1`.
- `per_page` (`integer`, optional): Records per page (default 50, max 100). Default: `50`.

Example input: `{}`

### `cloudpressmcp_list_waf_custom_rules`

List WAF Custom Rules · Read-only

List custom WAF rules for a site.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_list_waf_managed_rules`

List WAF Managed Rules · Read-only

List managed WAF rules available for a site.

Read only: yes. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): No description.

Example input: `{"id":"<id>"}`

### `cloudpressmcp_search_domains`

Search Domains · Read-only

Search domain availability for a base name across every orderable TLD, with create and transfer pricing.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `base_name` (`string`, required): Bare domain name without a TLD to search for availability across every orderable TLD, e.g. "acme".

Example input: `{"base_name":"acme"}`

### `cloudpressmcp_suggest_domains`

Suggest Domains · Read-only

Get alternate/related available domain name suggestions for a base name, each with its orderable price.

Read only: yes. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `domain` (`string`, required): Base name or fully-qualified domain used to seed alternate domain suggestions.

Example input: `{"domain":"<domain>"}`

### `cloudpressmcp_activate_shield`

Activate Shield · Write

Activate Shield (WAF/security) for a Cloudpress site.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site to activate Shield for.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.

Example input: `{"id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_create_access_list`

Create Access List · Write

Create an IP access list (allowlist or blocklist) for a Cloudpress site.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `content` (`string`, required): Newline-separated entries (one IP/CIDR/country/etc per line, matching the selected Entry Type).
- `id` (`string`, required): The unique identifier of the site to create the access list for.
- `name` (`string`, required): A human-readable name for the access list.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `type` (`integer`, required): Entry type: 0=IP, 1=CIDR, 2=ASN, 3=Country, 4=Organization, 5=JA4.
- `action` (`string`, optional): What the list does (sets the list's configuration; optional). One of: `allow`, `block`.
- `checksum` (`string`, optional): Optional content checksum.
- `description` (`string`, optional): Optional description of the access list purpose.

Example input: `{"content":"<content>","id":"<id>","name":"<name>","request_id":"<request_id>","type":1}`

### `cloudpressmcp_create_dns_record`

Create DNS Record · Write

Create a new DNS record in a zone.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `dns_zone_id` (`string`, required): The unique identifier of the DNS zone to create the record in.
- `record_type` (`integer`, required): The DNS record type code: 0=A, 1=AAAA, 2=CNAME, 3=TXT, 4=MX, 5=Redirect, 7=PullZone, 8=SRV, 9=CAA, 11=NS.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `value` (`string`, required): The value/content of the DNS record (e.g. IP address or target hostname).
- `comment` (`string`, optional): Optional comment/note for this DNS record.
- `flags` (`string`, optional): Flags value, used for CAA records.
- `name` (`string`, optional): The name of the DNS record (e.g. subdomain or @ for root).
- `port` (`integer`, optional): Port number, used for SRV records.
- `priority` (`integer`, optional): Record priority, used for MX and SRV record types.
- `record_tag` (`string`, optional): Tag for CAA records, e.g. issue, issuewild, or iodef.
- `ttl` (`integer`, optional): Time to live in seconds. Defaults to 3600. Default: `3600`.
- `weight` (`integer`, optional): Weight value, used for SRV records.

Example input: `{"dns_zone_id":"<dns_zone_id>","record_type":1,"request_id":"<request_id>","value":"<value>"}`

### `cloudpressmcp_create_dns_zone`

Create DNS Zone · Write

Create a new DNS zone. Requires dns:write scope.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `name` (`string`, required): The domain name for the new DNS zone.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without creating duplicate zones.

Example input: `{"name":"<name>","request_id":"<request_id>"}`

### `cloudpressmcp_create_edge_rule`

Create Edge Rule · Write

Create a CDN edge rule on a site.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `ActionType` (`integer`, required): Action code: 0=ForceSSL, 1=Redirect, 2=OriginUrl, 3=OverrideCacheTime, 4=BlockRequest, 5=SetResponseHeader, 6=SetRequestHeader, 11=IgnoreQueryString, 13=ForceCompression, 14=SetStatusCode, 16=OverrideBrowserCacheTime, 23=DisableWAF, 28=DisableShield. Do not use 15, 17, 21, 22, 33, or 34 - those services are not offered.
- `id` (`string`, required): The ID of the site to create the edge rule on.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `ActionParameter1` (`string`, optional): First parameter for the selected action (meaning depends on Action Type).
- `ActionParameter2` (`string`, optional): Second parameter for the selected action (meaning depends on Action Type).
- `ActionParameter3` (`string`, optional): Third parameter for the selected action (meaning depends on Action Type).
- `Description` (`string`, optional): A longer description explaining the purpose of this rule.
- `Enabled` (`boolean`, optional): Whether the rule is active.
- `ExtraActions` (`array`, optional): Additional actions ({ActionType, ActionParameter1..3}) applied together with the primary action.
- `OrderIndex` (`integer`, optional): Position of the rule relative to other edge rules on the site.
- `TriggerMatchingType` (`integer`, optional): How the Triggers combine: 0=MatchAny, 1=MatchAll, 2=MatchNone.
- `Triggers` (`array`, optional): Conditions that must match for this rule to fire. Each entry: { Type (0=Url, 1=RequestHeader, 2=ResponseHeader, 3=UrlExtension, 4=CountryCode, 5=RemoteIP, 6=UrlQueryString, 7=RandomChance, 8=StatusCode, 9=RequestMethod, 10=CookieValue, 11=CountryStateCode), PatternMatchingType (0=MatchAny, 1=MatchAll, 2=MatchNone), Parameter1, PatternMatches: [string] }.

Example input: `{"ActionType":1,"id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_create_rate_limit`

Create Rate Limit · Write

Create a rate limiting rule for a Cloudpress site to throttle or block excessive requests.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `action_type` (`integer`, required): What happens when the threshold is exceeded: 1=RateLimit, 2=Log, 3=Challenge.
- `id` (`string`, required): The unique identifier of the site to create the rate limit rule for.
- `match_variable` (`string`, required): Which part of the request to inspect: REQUEST_URI, ARGS, REMOTE_ADDR, REQUEST_HEADERS, QUERY_STRING, REQUEST_METHOD, GEO, or FINGERPRINT.
- `operator_type` (`integer`, required): Comparison operator code: 2=Contains, 0=BeginsWith, 1=EndsWith, 5=Equals(int), 14=Regex, 15=StringEquals.
- `request_count` (`integer`, required): Requests allowed within the timeframe.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `rule_name` (`string`, required): Letters, numbers, and spaces only (a-z, A-Z, 0-9, space). Hyphens, underscores, dots, and other punctuation are rejected.
- `severity_type` (`integer`, required): Severity code: 0=Notice, 1=Warning, 2=Critical.
- `timeframe` (`integer`, required): Window in seconds: 1, 10, 60, 300, 900, or 3600.
- `value` (`string`, required): The value to match against, per the selected Match Variable and Operator Type.
- `block_time` (`integer`, optional): Block duration in seconds: 30, 60, 300, 900, 1800, or 3600 (optional).
- `counter_key_type` (`integer`, optional): 0=IP, 1=Host, 2=Country, 3=City, 4=ASN, 5=Organization, 6=JA4, 7=IP+JA4 (default 0). Default: `0`.
- `rule_description` (`string`, optional): Same character set as rule_name (letters, numbers, spaces only); may be empty.

Example input: `{"action_type":1,"id":"<id>","match_variable":"<match_variable>","operator_type":1,"request_count":1,"request_id":"<request_id>","rule_name":"<rule_name>","severity_type":1,"timeframe":1,"value":"<value>"}`

### `cloudpressmcp_create_waf_custom_rule`

Create WAF Custom Rule · Write

Create a custom WAF rule on a site (premium Shield plans only).

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `action_type` (`integer`, required): What happens when the rule matches: 1=Block, 2=Log, 3=Challenge, 4=Allow, 5=Bypass.
- `id` (`string`, required): The unique identifier of the site to create the WAF rule for.
- `operator_type` (`integer`, required): Comparison operator code: 2=Contains, 15=Equals, 0=BeginsWith, 1=EndsWith, 14=Regex, 17=DetectSQLi, 18=DetectXSS.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `rule_name` (`string`, required): A human-readable name for the WAF custom rule.
- `severity_type` (`integer`, required): Severity code: 0=Notice, 1=Warning, 2=Critical.
- `value` (`string`, required): The value to match against, per the selected Variable Type and Operator Type.
- `variable_type` (`string`, required): Which part of the request to inspect: REQUEST_URI, REQUEST_HEADERS, REQUEST_METHOD, ARGS, REMOTE_ADDR, GEO, QUERY_STRING, REQUEST_BODY, REQUEST_COOKIES, or RESPONSE_STATUS.
- `rule_description` (`string`, optional): Optional description explaining the purpose of this WAF rule.
- `variable_subselector` (`string`, optional): e.g. a header name when variable_type=REQUEST_HEADERS (optional).

Example input: `{"action_type":1,"id":"<id>","operator_type":1,"request_id":"<request_id>","rule_name":"<rule_name>","severity_type":1,"value":"<value>","variable_type":"<variable_type>"}`

### `cloudpressmcp_deactivate_shield`

Deactivate Shield · Write

Deactivate Shield (WAF/security) for a Cloudpress site.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site to deactivate Shield for.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.

Example input: `{"id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_purge_cdn_cache`

Purge CDN Cache · Write

Purge a site's entire CDN cache.

Read only: no. Destructive: no. Idempotent (safe to retry): no.

Inputs:

- `id` (`string`, required): The ID of the site whose CDN cache should be purged.
- `request_id` (`string`, required): A unique identifier for this purge request, used for idempotency.

Example input: `{"id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_rename_site`

Rename Site · Write

Rename a Cloudpress site's display name. Requires sites:write scope.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the Cloudpress site to rename.
- `name` (`string`, required): The new display name for the site.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicate operations.

Example input: `{"id":"<id>","name":"<name>","request_id":"<request_id>"}`

### `cloudpressmcp_restart_site`

Restart Site · Write

Asynchronously restart a Cloudpress site's container. Requires sites:write scope.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the Cloudpress site to restart.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without triggering multiple restarts.

Example input: `{"id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_toggle_edge_rule`

Toggle Edge Rule · Write

Enable or disable an edge rule without deleting it.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `enabled` (`boolean`, required): Set to true to enable the rule or false to disable it.
- `guid` (`string`, required): The ID of the edge rule to enable or disable.
- `id` (`string`, required): The ID of the site that owns the edge rule.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.

Example input: `{"enabled":true,"guid":"<guid>","id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_update_access_list`

Update Access List · Write

Update an existing IP access list for a Cloudpress site. Only provided fields are changed.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site that owns the access list.
- `list_id` (`string`, required): The unique identifier of the access list to update.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `action` (`string`, optional): Optionally change the list's action. One of: `allow`, `block`.
- `checksum` (`string`, optional): Optional content checksum.
- `content` (`string`, optional): Newline-separated entries (one IP/CIDR/country/etc per line, matching the selected Entry Type).
- `name` (`string`, optional): Updated human-readable name for the access list.

Example input: `{"id":"<id>","list_id":"<list_id>","request_id":"<request_id>"}`

### `cloudpressmcp_update_bot_detection`

Update Bot Detection · Write

Update a site's Shield bot-detection settings (premium Shield plans only). All fields optional; send only what changes.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site to update bot detection settings for.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `browser_fingerprint_aggression` (`integer`, optional): Aggression level of the browser-fingerprint bot check.
- `browser_fingerprint_complex_enabled` (`boolean`, optional): Enable the more intensive (complex) browser-fingerprint check.
- `browser_fingerprint_sensitivity` (`integer`, optional): Sensitivity of the browser-fingerprint bot check.
- `execution_mode` (`integer`, optional): Enforcement mode for detected bots.
- `ip_address_sensitivity` (`integer`, optional): Sensitivity of the IP-reputation bot check.
- `request_integrity_sensitivity` (`integer`, optional): Sensitivity of the request-integrity bot check.

Example input: `{"id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_update_cdn_caching`

Update CDN Caching · Write

Update a site's CDN caching settings (smart cache, expirations, vary toggles, stale-while-*). All fields optional; send only what changes.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The ID of the site to update CDN caching settings for.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `browser_cache_expiration` (`integer`, optional): Browser cache TTL seconds.
- `cache_error_responses` (`boolean`, optional): Cache error (4xx/5xx) responses.
- `cache_expiration` (`integer`, optional): Edge cache TTL seconds; -1=respect origin, 0=cache nothing.
- `cache_slice` (`boolean`, optional): Cache large objects in slices.
- `cookie_vary_parameters` (`array`, optional): Cookie names to vary the cache on.
- `disable_cookies` (`boolean`, optional): Strip cookies from responses before caching.
- `query_string_ordering` (`boolean`, optional): Normalize query-string parameter order before caching.
- `query_string_vary_parameters` (`array`, optional): Query-string params to vary the cache on.
- `smart_cache` (`boolean`, optional): Enable smart caching.
- `stale_while_offline` (`boolean`, optional): Serve stale cached content if the origin is unreachable.
- `stale_while_updating` (`boolean`, optional): Serve stale cached content while revalidating in the background.
- `vary_avif` (`boolean`, optional): Vary the cache by AVIF support.
- `vary_cookie` (`boolean`, optional): Vary the cache by cookie values.
- `vary_country_code` (`boolean`, optional): Vary the cache by visitor country.
- `vary_country_state_code` (`boolean`, optional): Vary the cache by visitor country/state.
- `vary_hostname` (`boolean`, optional): Vary the cache by request hostname.
- `vary_mobile` (`boolean`, optional): Vary the cache by mobile device type.
- `vary_webp` (`boolean`, optional): Vary the cache by WebP support.

Example input: `{"id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_update_curated_access_list`

Update Curated Access List · Write

Enable/disable or set the action on a curated (Cloudpress-managed) Shield threat list for a site.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `configuration_id` (`string`, required): The unique identifier of the Cloudpress-managed curated access list configuration.
- `id` (`string`, required): The unique identifier of the site to update the curated access list for.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `action` (`integer`, optional): AccessListAction: 0=None, 1=Allow, 2=Block, 3=Challenge, 4=Log, 5=Bypass.
- `is_enabled` (`boolean`, optional): Enable/disable this curated list for the zone.

Example input: `{"configuration_id":"<configuration_id>","id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_update_dns_record`

Update DNS Record · Write

Update an existing DNS record's fields. The record's type and name cannot be changed after creation.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `dns_zone_id` (`string`, required): The unique identifier of the DNS zone containing the record.
- `id` (`string`, required): The unique identifier of the DNS record to update.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `comment` (`string`, optional): Optional comment/note for this DNS record.
- `flags` (`string`, optional): Flags value, used for CAA records.
- `port` (`integer`, optional): Port number, used for SRV records.
- `priority` (`integer`, optional): Record priority, used for MX and SRV record types.
- `record_tag` (`string`, optional): Tag for CAA records, e.g. issue, issuewild, or iodef.
- `ttl` (`integer`, optional): Time to live in seconds.
- `value` (`string`, optional): The value/content of the DNS record.
- `weight` (`integer`, optional): Weight value, used for SRV records.

Example input: `{"dns_zone_id":"<dns_zone_id>","id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_update_edge_rule`

Update Edge Rule · Write

Update a CDN edge rule in place by GUID. Send only the fields you want to change; the rest are preserved (read-modify-write merge).

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `guid` (`string`, required): The Guid of the edge rule to update (from list_edge_rules).
- `id` (`string`, required): The ID of the site that owns the edge rule.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `ActionParameter1` (`string`, optional): First parameter for the selected action (meaning depends on Action Type).
- `ActionParameter2` (`string`, optional): Second parameter for the selected action (meaning depends on Action Type).
- `ActionParameter3` (`string`, optional): Third parameter for the selected action (meaning depends on Action Type).
- `ActionType` (`integer`, optional): Action code: 0=ForceSSL, 1=Redirect, 2=OriginUrl, 3=OverrideCacheTime, 4=BlockRequest, 5=SetResponseHeader, 6=SetRequestHeader, 11=IgnoreQueryString, 13=ForceCompression, 14=SetStatusCode, 16=OverrideBrowserCacheTime, 23=DisableWAF, 28=DisableShield. Do not use 15, 17, 21, 22, 33, or 34 - those services are not offered.
- `Description` (`string`, optional): A longer description explaining the purpose of this rule.
- `Enabled` (`boolean`, optional): Whether the rule is active.
- `ExtraActions` (`array`, optional): Additional actions ({ActionType, ActionParameter1..3}) applied together with the primary action.
- `OrderIndex` (`integer`, optional): Position of the rule relative to other edge rules on the site.
- `TriggerMatchingType` (`integer`, optional): How the Triggers combine: 0=MatchAny, 1=MatchAll, 2=MatchNone.
- `Triggers` (`array`, optional): Conditions that must match for this rule to fire. Each entry: { Type (0=Url, 1=RequestHeader, 2=ResponseHeader, 3=UrlExtension, 4=CountryCode, 5=RemoteIP, 6=UrlQueryString, 7=RandomChance, 8=StatusCode, 9=RequestMethod, 10=CookieValue, 11=CountryStateCode), PatternMatchingType (0=MatchAny, 1=MatchAll, 2=MatchNone), Parameter1, PatternMatches: [string] }.

Example input: `{"guid":"<guid>","id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_update_rate_limit`

Update Rate Limit · Write

Update a Shield rate-limit rule (full replace of its configuration).

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `action_type` (`integer`, required): What happens when the threshold is exceeded: 1=RateLimit, 2=Log, 3=Challenge.
- `id` (`string`, required): The unique identifier of the site that owns the rate limit rule.
- `match_variable` (`string`, required): Which part of the request to inspect: REQUEST_URI, ARGS, REMOTE_ADDR, REQUEST_HEADERS, QUERY_STRING, REQUEST_METHOD, GEO, or FINGERPRINT.
- `operator_type` (`integer`, required): Comparison operator code: 2=Contains, 0=BeginsWith, 1=EndsWith, 5=Equals(int), 14=Regex, 15=StringEquals.
- `request_count` (`integer`, required): Requests allowed within the timeframe.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `rule_id` (`string`, required): The unique identifier of the rate limit rule to update (from list_rate_limits).
- `rule_name` (`string`, required): Letters, numbers, and spaces only (a-z, A-Z, 0-9, space). Hyphens, underscores, dots, and other punctuation are rejected.
- `severity_type` (`integer`, required): Severity code: 0=Notice, 1=Warning, 2=Critical.
- `timeframe` (`integer`, required): Window in seconds: 1, 10, 60, 300, 900, or 3600.
- `value` (`string`, required): The value to match against, per the selected Match Variable and Operator Type.
- `block_time` (`integer`, optional): Block duration in seconds: 30, 60, 300, 900, 1800, or 3600 (optional).
- `counter_key_type` (`integer`, optional): 0=IP, 1=Host, 2=Country, 3=City, 4=ASN, 5=Organization, 6=JA4, 7=IP+JA4 (default 0). Default: `0`.
- `rule_description` (`string`, optional): Same character set as rule_name (letters, numbers, spaces only); may be empty.

Example input: `{"action_type":1,"id":"<id>","match_variable":"<match_variable>","operator_type":1,"request_count":1,"request_id":"<request_id>","rule_id":"<rule_id>","rule_name":"<rule_name>","severity_type":1,"timeframe":1,"value":"<value>"}`

### `cloudpressmcp_update_shield`

Update Shield · Write

Update a site's Shield settings - WAF (enabled, execution mode, body-limit actions, logging, ignored headers, disabled/log-only rule ids), sensitivity (paranoia levels), protocol allow-lists, DDoS, plan, learning mode, whitelabel. All fields optional; send only what changes.

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site to update Shield configuration for.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `allowed_http_versions` (`array`, optional): e.g. HTTP/1.1, HTTP/2.0.
- `allowed_methods` (`array`, optional): e.g. GET, POST, HEAD.
- `allowed_request_content_type` (`array`, optional): e.g. application/json.
- `blocking_paranoia_level` (`integer`, optional): 1=Low,2=Medium,3=High,4=Extreme.
- `ddos_challenge_window` (`integer`, optional): Seconds.
- `ddos_execution_mode` (`integer`, optional): DDoS enforcement mode.
- `ddos_sensitivity` (`integer`, optional): DDoS detection sensitivity.
- `detection_paranoia_level` (`integer`, optional): 1=Low,2=Medium,3=High,4=Extreme.
- `executing_paranoia_level` (`integer`, optional): 1=Low,2=Medium,3=High,4=Extreme.
- `learning_mode` (`boolean`, optional): Run Shield in learning mode instead of enforcing.
- `plan_type` (`integer`, optional): 0=Basic,1=Advanced,2=Business,3=Enterprise.
- `request_body_logging_enabled` (`boolean`, optional): Log request bodies (note: no 'waf' prefix).
- `waf_disabled_rules` (`array`, optional): Managed-rule ids to disable (string ids from list_waf_managed_rules).
- `waf_enabled` (`boolean`, optional): Enable or disable the WAF.
- `waf_execution_mode` (`integer`, optional): 0=Log, 1=Block.
- `waf_log_only_rules` (`array`, optional): Managed-rule ids to set log-only.
- `waf_realtime_threat_intelligence_enabled` (`boolean`, optional): Premium only; ignored on non-premium plans.
- `waf_request_body_limit_action` (`integer`, optional): WAFPayloadLimitAction: 0=Block, 1=Log, 2=Ignore.
- `waf_request_header_logging_enabled` (`boolean`, optional): Log request headers for WAF events.
- `waf_request_ignored_headers` (`array`, optional): Header names excluded from WAF inspection.
- `waf_response_body_limit_action` (`integer`, optional): WAFPayloadLimitAction: 0=Block, 1=Log, 2=Ignore.
- `whitelabel_response_pages` (`boolean`, optional): Use whitelabel (unbranded) block/challenge response pages.

Example input: `{"id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_update_waf_custom_rule`

Update WAF Custom Rule · Write

Update a custom WAF rule (full replace of its configuration).

Read only: no. Destructive: no. Idempotent (safe to retry): yes.

Inputs:

- `action_type` (`integer`, required): What happens when the rule matches: 1=Block, 2=Log, 3=Challenge, 4=Allow, 5=Bypass.
- `id` (`string`, required): The unique identifier of the site that owns the WAF rule.
- `operator_type` (`integer`, required): Comparison operator code: 2=Contains, 15=Equals, 0=BeginsWith, 1=EndsWith, 14=Regex, 17=DetectSQLi, 18=DetectXSS.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `rule_id` (`string`, required): The unique identifier of the WAF custom rule to update (from list_waf_custom_rules).
- `rule_name` (`string`, required): A human-readable name for the WAF custom rule.
- `severity_type` (`integer`, required): Severity code: 0=Notice, 1=Warning, 2=Critical.
- `value` (`string`, required): The value to match against, per the selected Variable Type and Operator Type.
- `variable_type` (`string`, required): Which part of the request to inspect: REQUEST_URI, REQUEST_HEADERS, REQUEST_METHOD, ARGS, REMOTE_ADDR, GEO, QUERY_STRING, REQUEST_BODY, REQUEST_COOKIES, or RESPONSE_STATUS.
- `rule_description` (`string`, optional): Optional description explaining the purpose of this WAF rule.
- `variable_subselector` (`string`, optional): e.g. a header name when variable_type=REQUEST_HEADERS (optional).

Example input: `{"action_type":1,"id":"<id>","operator_type":1,"request_id":"<request_id>","rule_id":"<rule_id>","rule_name":"<rule_name>","severity_type":1,"value":"<value>","variable_type":"<variable_type>"}`

### `cloudpressmcp_delete_access_list`

Delete Access List · Destructive

Permanently delete an IP access list from a Cloudpress site.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site that owns the access list.
- `list_id` (`string`, required): The unique identifier of the access list to delete.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.

Example input: `{"id":"<id>","list_id":"<list_id>","request_id":"<request_id>"}`

### `cloudpressmcp_delete_dns_record`

Delete DNS Record · Destructive

Delete a DNS record.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `dns_zone_id` (`string`, required): No description.
- `id` (`string`, required): No description.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.

Example input: `{"dns_zone_id":"<dns_zone_id>","id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_delete_dns_zone`

Delete DNS Zone · Destructive

Delete a DNS zone. This action is destructive and cannot be undone. Requires dns:write scope.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the DNS zone to delete.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without triggering multiple deletions.

Example input: `{"id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_delete_edge_rule`

Delete Edge Rule · Destructive

Permanently delete an edge rule from a site.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `guid` (`string`, required): The ID of the edge rule to delete.
- `id` (`string`, required): The ID of the site that owns the edge rule.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.

Example input: `{"guid":"<guid>","id":"<id>","request_id":"<request_id>"}`

### `cloudpressmcp_delete_rate_limit`

Delete Rate Limit · Destructive

Permanently delete a rate limit rule from a Cloudpress site.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site that owns the rate limit rule.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `rule_id` (`string`, required): The unique identifier of the rate limit rule to delete.

Example input: `{"id":"<id>","request_id":"<request_id>","rule_id":"<rule_id>"}`

### `cloudpressmcp_delete_waf_custom_rule`

Delete WAF Custom Rule · Destructive

Permanently delete a custom WAF rule from a Cloudpress site.

Read only: no. Destructive: yes. Idempotent (safe to retry): yes.

Inputs:

- `id` (`string`, required): The unique identifier of the site that owns the WAF rule.
- `request_id` (`string`, required): Client-generated UUID for idempotency. Reuse the same UUID to safely retry without duplicating the effect.
- `rule_id` (`string`, required): The unique identifier of the WAF custom rule to delete.

Example input: `{"id":"<id>","request_id":"<request_id>","rule_id":"<rule_id>"}`

## Related

Other Developer Tools connectors ([all 94](/agentkit/connectors/?category=developer-tools)):

- [GitHub](/agentkit/connectors/github/): Scalekit connector, OAuth, 217 tools
- [Datadog](/agentkit/connectors/datadog/): Scalekit connector, API key, 105 tools
- [Linear](/agentkit/connectors/linear/): Scalekit connector, OAuth, 62 tools


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
