Manage Workers/KV/R2/D1/Hyperdrive via Cloudflare MCP, perform observability/build troubleshooting/audit/container sandbox operations...
Interact with Cloudflare services via MCP: Workers, KV, R2, D1, Hyperdrive, Observability, Builds, Audit, Container Sandbox.
When integrating troubleshooting/changes into multi-step workflows, persist all evidence and artifacts to disk, passing only paths between agents/sub-agents.
Recommended directory structure (within project): runs/<workflow>/active/<run_id>/
01-input/goal.md (symptoms/objectives), 01-input/context.json (account/worker/resource/time_range, etc.)02-analysis/observability.md, 02-analysis/audit.md, 02-analysis/screenshots/03-plans/change-plan.md (write operation plan; must write here and await confirmation first)05-final/report.md (conclusion + evidence chain + tool call summary + next steps)logs/events.jsonl (summary of each tool call)| Tier | Purpose | Tool Scope | Risk Control |
|---|---|---|---|
| Diagnose | Read-only/query/troubleshoot | Observability, Builds, Browser, Audit | Default entry point, no write operations |
| Change | Create/modify/delete resources | Workers Bindings (KV/R2/D1) | Requires user confirmation, post-execution verification |
| Super Admin | Highest privileges | All + Container Sandbox | Only in isolated environments/test accounts |
Observability
| Tool | Purpose |
|---|---|
query_worker_observability |
Query logs/metrics (events, CPU, error rate) |
observability_keys |
Discover available fields |
observability_values |
Explore field values |
Builds
| Tool | Purpose |
|---|---|
workers_builds_list_builds |
List build history |
workers_builds_get_build |
Get build details |
workers_builds_get_build_logs |
Get build logs |
Browser Rendering (Page Capture)
| Tool | Purpose |
|---|---|
get_url_html_content |
Fetch page HTML |
get_url_markdown |
Convert to Markdown |
get_url_screenshot |
Take page screenshot |
Audit Logs
| Tool | Purpose |
|---|---|
auditlogs_by_account_id |
Pull change history by time range |
Account
| Tool | Purpose |
|---|---|
accounts_list |
List accounts |
set_active_account |
Set active account |
Builds (Settings)
| Tool | Purpose |
|---|---|
workers_builds_set_active_worker |
ā ļø Set active worker (requires confirmation) |
KV
| Tool | Purpose |
|---|---|
kv_namespaces_list |
List namespaces |
kv_namespace_get |
Get details |
kv_namespace_create |
Create (ā ļø requires confirmation) |
kv_namespace_update |
Update (ā ļø requires confirmation) |
kv_namespace_delete |
Delete (ā ļø requires confirmation) |
R2
| Tool | Purpose |
|---|---|
r2_buckets_list |
List buckets |
r2_bucket_get |
Get details |
r2_bucket_create |
Create (ā ļø requires confirmation) |
r2_bucket_delete |
Delete (ā ļø requires confirmation) |
D1
| Tool | Purpose |
|---|---|
d1_databases_list |
List databases |
d1_database_get |
Get details |
d1_database_query |
Execute SQL |
d1_database_create |
Create (ā ļø requires confirmation) |
d1_database_delete |
Delete (ā ļø requires confirmation) |
Hyperdrive
| Tool | Purpose |
|---|---|
hyperdrive_configs_list |
List configs |
hyperdrive_config_get |
Get details |
hyperdrive_config_create |
Create (ā ļø requires confirmation) |
hyperdrive_config_edit |
Edit (ā ļø requires confirmation) |
hyperdrive_config_delete |
Delete (ā ļø requires confirmation) |
Workers
| Tool | Purpose |
|---|---|
workers_list |
List workers |
workers_get_worker |
Get worker details |
workers_get_worker_code |
Get source code |
| Tool | Purpose |
|---|---|
container_initialize |
Initialize container (~10 min lifecycle) |
container_exec |
Execute command |
container_file_write |
Write file |
container_file_read |
Read file |
container_files_list |
List files |
container_file_delete |
Delete file |
Container Notes: No persistent state, short lifespan, only for temporary tasks (running tests/reproducing issues/parsing data).
accounts_list first1. Plan: Read current state first (list/get)
2. Confirm: Output precise change (name/ID/impact scope), await user confirmation
3. Execute: create/delete/update
4. Verify: audit logs + observability confirm no new errors
1. Clarify symptoms ā worker name/time range/error type
2. query_worker_observability to pull logs/metrics
3. If build-related ā workers_builds_get_build_logs
4. If page-related ā get_url_screenshot to reproduce
5. Trace changes ā auditlogs_by_account_id
6. Summarize: root cause + evidence + fix recommendations
1. accounts_list ā set_active_account
2. List resources (kv_namespaces_list / r2_buckets_list / d1_databases_list)
3. Plan changes ā present to user
4. Execute after confirmation
5. Verify: audit logs + observability shows no errors
Example output:
ā
Investigation complete: worker `api-gateway` experienced 5xx spike between 18:00-18:30
Root cause: New code deployed threw TypeError when processing /v2/users
Evidence:
- Logs: 18:02 first occurrence of "Cannot read property 'id' of undefined"
- Audit: 18:00 user dev@example.com deployed new version
- Metrics: error_rate jumped from 0.1% to 12%
Recommendation: Roll back to previous version, or fix /v2/users handler
| Situation | Action |
|---|---|
| Account not set | Run accounts_list ā set_active_account first |
| Resource doesn't exist | Verify ID/name is correct, list available resources |
| Insufficient permissions | Explain required permissions, suggest checking API token scope |
| Observability query too long | Split into smaller time ranges, ask more specific questions |
See scenarios.md for 20 real-world development scenarios.