productivity
Cloudflare Lua API for KosmoKrator Agents
Agent-facing Lua documentation and function reference for the Cloudflare KosmoKrator integration.Lua Namespace
Agents call this integration through app.integrations.cloudflare.*.
Use lua_read_doc("integrations.cloudflare") inside KosmoKrator to discover the same reference at runtime.
Call Lua from the Headless CLI
Use kosmo integrations:lua when a shell script, CI job, cron job, or another coding CLI should run a deterministic
Cloudflare workflow without starting an interactive agent session.
kosmo integrations:lua --eval 'dump(app.integrations.cloudflare.api_get({}))' --json kosmo integrations:lua --eval 'print(docs.read("cloudflare"))' --json
kosmo integrations:lua --eval 'print(docs.read("cloudflare.api_get"))' --json Workflow file
Put repeatable logic in a Lua file, then execute it with JSON output for the calling process.
local cloudflare = app.integrations.cloudflare
local result = cloudflare.api_get({})
dump(result) kosmo integrations:lua workflow.lua --json
kosmo integrations:lua workflow.lua --force --json integrations:lua exposes app.integrations.cloudflare, app.mcp.*, docs.*, json.*, and regex.*. Use app.integrations.cloudflare.default.* or app.integrations.cloudflare.work.* when you configured named credential accounts.
MCP-only Lua
If the script only needs configured MCP servers and does not need Cloudflare, use the narrower mcp:lua command.
# Use mcp:lua for MCP-only scripts; use integrations:lua for this integration namespace.
kosmo mcp:lua --eval 'dump(mcp.servers())' --json Agent-Facing Lua Docs
This is the rendered version of the full Lua documentation exposed to agents when they inspect the integration namespace.
Cloudflare
Cloudflare tools are exposed under app.integrations.cloudflare. Use them to manage common Cloudflare account, zone, DNS, cache, ruleset, page-rule, and Workers KV namespace workflows.
The package includes first-class tools for frequent operations and raw API helpers for Cloudflare’s much larger v4 API surface:
cloudflare_api_getcloudflare_api_postcloudflare_api_patchcloudflare_api_putcloudflare_api_delete
Raw API helpers take a path relative to https://api.cloudflare.com/client/v4, for example /zones/{zone_id}/settings. Use first-class tools when one exists because they validate required identifiers and document the expected body shape.
Discovery
Start with accounts and zones:
local token = app.integrations.cloudflare.cloudflare_verify_token({})
local accounts = app.integrations.cloudflare.cloudflare_list_accounts({
per_page = 20
})
local zones = app.integrations.cloudflare.cloudflare_list_zones({
name = "example.com",
per_page = 20
})
Use cloudflare_get_account, cloudflare_list_account_members, and cloudflare_list_account_roles for account access audits.
DNS
DNS tools use zone_id and Cloudflare DNS record IDs. Use list first when only a hostname is known.
local records = app.integrations.cloudflare.cloudflare_list_dns_records({
zone_id = "zone_123",
type = "A",
name = "www.example.com"
})
local created = app.integrations.cloudflare.cloudflare_create_dns_record({
zone_id = "zone_123",
type = "A",
name = "www.example.com",
content = "192.0.2.10",
ttl = 1,
proxied = true
})
Use cloudflare_get_dns_record, cloudflare_update_dns_record, cloudflare_patch_dns_record, and cloudflare_delete_dns_record for single-record lifecycle work. update uses Cloudflare’s PUT replacement endpoint; patch sends partial changes.
Zone DNS support also includes:
cloudflare_export_dns_recordscloudflare_import_dns_recordscloudflare_scan_dns_recordscloudflare_review_dns_record_scancloudflare_get_dns_settingscloudflare_update_dns_settings
Zones, Cache, And Settings
Use cloudflare_create_zone, cloudflare_get_zone, cloudflare_edit_zone, and cloudflare_delete_zone for zone lifecycle operations.
local ssl = app.integrations.cloudflare.cloudflare_get_zone_setting({
zone_id = "zone_123",
setting_id = "ssl"
})
local purge = app.integrations.cloudflare.cloudflare_purge_cache({
zone_id = "zone_123",
files = {
"https://www.example.com/app.css"
}
})
For settings with non-string payloads, pass body using Cloudflare’s exact API schema.
Rules
Legacy page-rule tools are still available:
cloudflare_list_page_rulescloudflare_create_page_rulecloudflare_update_page_rulecloudflare_delete_page_rule
For modern Cloudflare Ruleset Engine workflows, use:
cloudflare_list_zone_rulesetscloudflare_get_zone_rulesetcloudflare_create_zone_rulesetcloudflare_update_zone_rulesetcloudflare_delete_zone_rulesetcloudflare_list_account_rulesets
Ruleset bodies are passed using Cloudflare’s documented name, kind, phase, description, and rules fields, or as a raw body.
Workers KV
This package includes namespace and key-list management:
cloudflare_list_kv_namespacescloudflare_create_kv_namespacecloudflare_delete_kv_namespacecloudflare_list_kv_keys
Workers KV value read/write endpoints can return or require non-JSON payloads, so use the raw API helpers only when the host can handle the needed body and response format.
Output Shape
Most first-class tools return Cloudflare’s parsed API envelope with success, result, errors, and messages. Older compact tools such as cloudflare_list_zones, cloudflare_list_dns_records, and cloudflare_get_analytics preserve their normalized response shape for compatibility.
Raw agent markdown
# Cloudflare
Cloudflare tools are exposed under `app.integrations.cloudflare`. Use them to manage common Cloudflare account, zone, DNS, cache, ruleset, page-rule, and Workers KV namespace workflows.
The package includes first-class tools for frequent operations and raw API helpers for Cloudflare's much larger v4 API surface:
- `cloudflare_api_get`
- `cloudflare_api_post`
- `cloudflare_api_patch`
- `cloudflare_api_put`
- `cloudflare_api_delete`
Raw API helpers take a path relative to `https://api.cloudflare.com/client/v4`, for example `/zones/{zone_id}/settings`. Use first-class tools when one exists because they validate required identifiers and document the expected body shape.
## Discovery
Start with accounts and zones:
```lua
local token = app.integrations.cloudflare.cloudflare_verify_token({})
local accounts = app.integrations.cloudflare.cloudflare_list_accounts({
per_page = 20
})
local zones = app.integrations.cloudflare.cloudflare_list_zones({
name = "example.com",
per_page = 20
})
```
Use `cloudflare_get_account`, `cloudflare_list_account_members`, and `cloudflare_list_account_roles` for account access audits.
## DNS
DNS tools use `zone_id` and Cloudflare DNS record IDs. Use list first when only a hostname is known.
```lua
local records = app.integrations.cloudflare.cloudflare_list_dns_records({
zone_id = "zone_123",
type = "A",
name = "www.example.com"
})
local created = app.integrations.cloudflare.cloudflare_create_dns_record({
zone_id = "zone_123",
type = "A",
name = "www.example.com",
content = "192.0.2.10",
ttl = 1,
proxied = true
})
```
Use `cloudflare_get_dns_record`, `cloudflare_update_dns_record`, `cloudflare_patch_dns_record`, and `cloudflare_delete_dns_record` for single-record lifecycle work. `update` uses Cloudflare's PUT replacement endpoint; `patch` sends partial changes.
Zone DNS support also includes:
- `cloudflare_export_dns_records`
- `cloudflare_import_dns_records`
- `cloudflare_scan_dns_records`
- `cloudflare_review_dns_record_scan`
- `cloudflare_get_dns_settings`
- `cloudflare_update_dns_settings`
## Zones, Cache, And Settings
Use `cloudflare_create_zone`, `cloudflare_get_zone`, `cloudflare_edit_zone`, and `cloudflare_delete_zone` for zone lifecycle operations.
```lua
local ssl = app.integrations.cloudflare.cloudflare_get_zone_setting({
zone_id = "zone_123",
setting_id = "ssl"
})
local purge = app.integrations.cloudflare.cloudflare_purge_cache({
zone_id = "zone_123",
files = {
"https://www.example.com/app.css"
}
})
```
For settings with non-string payloads, pass `body` using Cloudflare's exact API schema.
## Rules
Legacy page-rule tools are still available:
- `cloudflare_list_page_rules`
- `cloudflare_create_page_rule`
- `cloudflare_update_page_rule`
- `cloudflare_delete_page_rule`
For modern Cloudflare Ruleset Engine workflows, use:
- `cloudflare_list_zone_rulesets`
- `cloudflare_get_zone_ruleset`
- `cloudflare_create_zone_ruleset`
- `cloudflare_update_zone_ruleset`
- `cloudflare_delete_zone_ruleset`
- `cloudflare_list_account_rulesets`
Ruleset bodies are passed using Cloudflare's documented `name`, `kind`, `phase`, `description`, and `rules` fields, or as a raw `body`.
## Workers KV
This package includes namespace and key-list management:
- `cloudflare_list_kv_namespaces`
- `cloudflare_create_kv_namespace`
- `cloudflare_delete_kv_namespace`
- `cloudflare_list_kv_keys`
Workers KV value read/write endpoints can return or require non-JSON payloads, so use the raw API helpers only when the host can handle the needed body and response format.
## Output Shape
Most first-class tools return Cloudflare's parsed API envelope with `success`, `result`, `errors`, and `messages`. Older compact tools such as `cloudflare_list_zones`, `cloudflare_list_dns_records`, and `cloudflare_get_analytics` preserve their normalized response shape for compatibility. local result = app.integrations.cloudflare.api_get({})
print(result) Functions
api_get Read
Execute a raw GET request against the Cloudflare API v4. Use relative paths such as `/zones/{zone_id}/settings`, and pass query parameters in `query`.
- Lua path
app.integrations.cloudflare.api_get- Full name
cloudflare.cloudflare_api_get
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
api_post Write
Execute a raw POST request against the Cloudflare API v4. Pass the JSON request body in `body`.
- Lua path
app.integrations.cloudflare.api_post- Full name
cloudflare.cloudflare_api_post
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
api_patch Write
Execute a raw PATCH request against the Cloudflare API v4. Pass the JSON request body in `body`.
- Lua path
app.integrations.cloudflare.api_patch- Full name
cloudflare.cloudflare_api_patch
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
api_put Write
Execute a raw PUT request against the Cloudflare API v4. Pass the JSON request body in `body`.
- Lua path
app.integrations.cloudflare.api_put- Full name
cloudflare.cloudflare_api_put
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
api_delete Write
Execute a raw DELETE request against the Cloudflare API v4. Pass an optional JSON request body in `body`.
- Lua path
app.integrations.cloudflare.api_delete- Full name
cloudflare.cloudflare_api_delete
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
verify_token Read
Verify the current Cloudflare API token and return token status metadata.
- Lua path
app.integrations.cloudflare.verify_token- Full name
cloudflare.cloudflare_verify_token
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_current_user Read
Get details of the currently authenticated Cloudflare user. Returns user ID, email, username, and account info.
- Lua path
app.integrations.cloudflare.get_current_user- Full name
cloudflare.cloudflare_get_current_user
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_accounts Read
List Cloudflare accounts visible to the authenticated API token.
- Lua path
app.integrations.cloudflare.list_accounts- Full name
cloudflare.cloudflare_list_accounts
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_account Read
Get a Cloudflare account by account_id.
- Lua path
app.integrations.cloudflare.get_account- Full name
cloudflare.cloudflare_get_account
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_account_members Read
List members for a Cloudflare account.
- Lua path
app.integrations.cloudflare.list_account_members- Full name
cloudflare.cloudflare_list_account_members
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_account_roles Read
List roles available for a Cloudflare account.
- Lua path
app.integrations.cloudflare.list_account_roles- Full name
cloudflare.cloudflare_list_account_roles
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_zones Read
List all Cloudflare zones (domains). Returns zone IDs, names, status, and plan info. Use this to discover zone identifiers needed for DNS and analytics operations.
- Lua path
app.integrations.cloudflare.list_zones- Full name
cloudflare.cloudflare_list_zones
| Parameter | Type | Required | Description |
|---|---|---|---|
name | string | no | Filter by zone name (e.g., "example.com"). |
status | string | no | Filter by status: active, pending, initializing, moved, deleted, deactivated. |
page | integer | no | Page number for pagination (default: 1). |
per_page | integer | no | Number of zones per page (default: 20, max: 50). |
create_zone Write
Create a Cloudflare zone. Requires name and account object or raw body matching Cloudflare zone create parameters.
- Lua path
app.integrations.cloudflare.create_zone- Full name
cloudflare.cloudflare_create_zone
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_zone Read
Get detailed information about a specific Cloudflare zone, including its ID, name, status, nameservers, and plan.
- Lua path
app.integrations.cloudflare.get_zone- Full name
cloudflare.cloudflare_get_zone
| Parameter | Type | Required | Description |
|---|---|---|---|
zone_id | string | yes | The zone identifier (e.g., "023e105f4ecef8ad9ca31a8372d0c353"). |
edit_zone Write
Edit a Cloudflare zone with PATCH /zones/{zone_id}. Pass changed fields in body.
- Lua path
app.integrations.cloudflare.edit_zone- Full name
cloudflare.cloudflare_edit_zone
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_zone Write
Delete a Cloudflare zone by zone_id.
- Lua path
app.integrations.cloudflare.delete_zone- Full name
cloudflare.cloudflare_delete_zone
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_zone_setting Read
Get one Cloudflare zone setting by setting_id, such as ssl, cache_level, or development_mode.
- Lua path
app.integrations.cloudflare.get_zone_setting- Full name
cloudflare.cloudflare_get_zone_setting
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_zone_setting Write
Update one Cloudflare zone setting by setting_id. Provide value or raw body.
- Lua path
app.integrations.cloudflare.update_zone_setting- Full name
cloudflare.cloudflare_update_zone_setting
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
purge_cache Write
Purge Cloudflare cache for a zone. Pass purge_everything=true or files/tags/hosts/prefixes in body.
- Lua path
app.integrations.cloudflare.purge_cache- Full name
cloudflare.cloudflare_purge_cache
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_analytics Read
Get analytics dashboard data for a Cloudflare zone. Returns HTTP requests, bandwidth, threats, and pageview metrics over a time range.
- Lua path
app.integrations.cloudflare.get_analytics- Full name
cloudflare.cloudflare_get_analytics
| Parameter | Type | Required | Description |
|---|---|---|---|
zone_id | string | yes | The zone identifier. |
since | string | no | Start time: ISO 8601 date or relative offset like "-30d", "-7d", "-24h". Default: "-30d". |
until | string | no | End time: ISO 8601 date or "now". Default: "now". |
continuous | string | no | Whether to include continuous data ("true" or "false"). Default: "true". |
list_dns_records Read
List DNS records for a Cloudflare zone. Returns record IDs, types, names, content, TTL, and proxy status.
- Lua path
app.integrations.cloudflare.list_dns_records- Full name
cloudflare.cloudflare_list_dns_records
| Parameter | Type | Required | Description |
|---|---|---|---|
zone_id | string | yes | The zone identifier. |
type | string | no | Filter by record type: A, AAAA, CNAME, MX, TXT, NS, SRV, etc. |
name | string | no | Filter by record name (e.g., "www.example.com"). |
content | string | no | Filter by record content (e.g., an IP address). |
page | integer | no | Page number for pagination (default: 1). |
per_page | integer | no | Number of records per page (default: 20, max: 100). |
create_dns_record Write
Create a new DNS record in a Cloudflare zone. Supports A, AAAA, CNAME, MX, TXT, NS, SRV, and other record types.
- Lua path
app.integrations.cloudflare.create_dns_record- Full name
cloudflare.cloudflare_create_dns_record
| Parameter | Type | Required | Description |
|---|---|---|---|
zone_id | string | yes | The zone identifier. |
type | string | yes | DNS record type: A, AAAA, CNAME, MX, TXT, NS, SRV, etc. |
name | string | yes | DNS record name (e.g., "www.example.com" or "@" for the zone root). |
content | string | yes | DNS record content (e.g., "192.0.2.1" for an A record). |
ttl | integer | no | Time to live in seconds. Use 1 for automatic ("Auto" TTL). Default: 1. |
proxied | boolean | no | Whether the record is proxied through Cloudflare (orange cloud). Default: false. |
get_dns_record Read
Get one DNS record in a Cloudflare zone.
- Lua path
app.integrations.cloudflare.get_dns_record- Full name
cloudflare.cloudflare_get_dns_record
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_dns_record Write
Replace a DNS record using PUT. Provide type, name, content, and optional ttl/proxied or raw body.
- Lua path
app.integrations.cloudflare.update_dns_record- Full name
cloudflare.cloudflare_update_dns_record
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
patch_dns_record Write
Patch a DNS record using PATCH. Provide changed fields or raw body.
- Lua path
app.integrations.cloudflare.patch_dns_record- Full name
cloudflare.cloudflare_patch_dns_record
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_dns_record Write
Delete one DNS record from a Cloudflare zone.
- Lua path
app.integrations.cloudflare.delete_dns_record- Full name
cloudflare.cloudflare_delete_dns_record
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
export_dns_records Read
Export DNS records for a zone using Cloudflare DNS records export.
- Lua path
app.integrations.cloudflare.export_dns_records- Full name
cloudflare.cloudflare_export_dns_records
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
import_dns_records Write
Import DNS records for a zone. Pass the request body expected by Cloudflare.
- Lua path
app.integrations.cloudflare.import_dns_records- Full name
cloudflare.cloudflare_import_dns_records
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
scan_dns_records Write
Start Cloudflare DNS record scan for a zone.
- Lua path
app.integrations.cloudflare.scan_dns_records- Full name
cloudflare.cloudflare_scan_dns_records
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
review_dns_record_scan Write
Review DNS records discovered by Cloudflare DNS scan.
- Lua path
app.integrations.cloudflare.review_dns_record_scan- Full name
cloudflare.cloudflare_review_dns_record_scan
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_dns_settings Read
Get DNS settings for a Cloudflare zone.
- Lua path
app.integrations.cloudflare.get_dns_settings- Full name
cloudflare.cloudflare_get_dns_settings
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_dns_settings Write
Update DNS settings for a Cloudflare zone. Pass changed DNS setting fields in body.
- Lua path
app.integrations.cloudflare.update_dns_settings- Full name
cloudflare.cloudflare_update_dns_settings
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_page_rules Read
List page rules for a Cloudflare zone. Returns rule IDs, targets, actions, and priority.
- Lua path
app.integrations.cloudflare.list_page_rules- Full name
cloudflare.cloudflare_list_page_rules
| Parameter | Type | Required | Description |
|---|---|---|---|
zone_id | string | yes | The zone identifier. |
status | string | no | Filter by status: active, disabled. |
page | integer | no | Page number for pagination (default: 1). |
per_page | integer | no | Number of rules per page (default: 20). |
create_page_rule Write
Create a Cloudflare page rule for a zone. Pass targets/actions/priority/status in body or first-class fields.
- Lua path
app.integrations.cloudflare.create_page_rule- Full name
cloudflare.cloudflare_create_page_rule
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_page_rule Write
Update a Cloudflare page rule. Pass changed fields in body or first-class fields.
- Lua path
app.integrations.cloudflare.update_page_rule- Full name
cloudflare.cloudflare_update_page_rule
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_page_rule Write
Delete a Cloudflare page rule.
- Lua path
app.integrations.cloudflare.delete_page_rule- Full name
cloudflare.cloudflare_delete_page_rule
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_zone_rulesets Read
List Ruleset Engine rulesets for a Cloudflare zone.
- Lua path
app.integrations.cloudflare.list_zone_rulesets- Full name
cloudflare.cloudflare_list_zone_rulesets
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
get_zone_ruleset Read
Get one Cloudflare zone ruleset.
- Lua path
app.integrations.cloudflare.get_zone_ruleset- Full name
cloudflare.cloudflare_get_zone_ruleset
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_zone_ruleset Write
Create a Cloudflare zone ruleset. Pass name, kind, phase, rules, and optional description or raw body.
- Lua path
app.integrations.cloudflare.create_zone_ruleset- Full name
cloudflare.cloudflare_create_zone_ruleset
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
update_zone_ruleset Write
Update a Cloudflare zone ruleset by ruleset_id.
- Lua path
app.integrations.cloudflare.update_zone_ruleset- Full name
cloudflare.cloudflare_update_zone_ruleset
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_zone_ruleset Write
Delete a Cloudflare zone ruleset.
- Lua path
app.integrations.cloudflare.delete_zone_ruleset- Full name
cloudflare.cloudflare_delete_zone_ruleset
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_account_rulesets Read
List Ruleset Engine rulesets for a Cloudflare account.
- Lua path
app.integrations.cloudflare.list_account_rulesets- Full name
cloudflare.cloudflare_list_account_rulesets
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_kv_namespaces Read
List Workers KV namespaces for a Cloudflare account.
- Lua path
app.integrations.cloudflare.list_kv_namespaces- Full name
cloudflare.cloudflare_list_kv_namespaces
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
create_kv_namespace Write
Create a Workers KV namespace for a Cloudflare account.
- Lua path
app.integrations.cloudflare.create_kv_namespace- Full name
cloudflare.cloudflare_create_kv_namespace
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
delete_kv_namespace Write
Delete a Workers KV namespace.
- Lua path
app.integrations.cloudflare.delete_kv_namespace- Full name
cloudflare.cloudflare_delete_kv_namespace
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||
list_kv_keys Read
List keys in a Workers KV namespace.
- Lua path
app.integrations.cloudflare.list_kv_keys- Full name
cloudflare.cloudflare_list_kv_keys
| Parameter | Type | Required | Description |
|---|---|---|---|
| No parameters. | |||