Usa Cloudflare MCP con
Sokko.
Conecta Cloudflare MCP y dile a Sokko qué hacer. Ejecuta las acciones que pides y reacciona a lo que ocurre, sin workflows ni código.
Funciona con más de 1.000 herramientas · Sin código
Acciones
Todo lo que Sokko puede hacer en Cloudflare MCP
Cada acción de Cloudflare MCP que Sokko puede ejecutar. Pídela en una frase y listo.
Docs
Search the Cloudflare documentation.
This tool should be used to answer any question about Cloudflare products or features, including:
- Workers, Pages, R2, Images, Stream, D1, Durable Objects, KV, Workflows, Hyperdrive, Queues
- AI Search, Workers AI, Vectorize, AI Gateway, Browser Rendering
- Zero Trust, Access, Tunnel, Gateway, Browser Isolation, WARP, DDOS, Magic Transit, Magic WAN
- CDN, Cache, DNS, Zaraz, Argo, Rulesets, Terraform, Account and Billing
Results are returned as semantically similar chunks to the query.
Execute
Execute JavaScript code that can read, create, update, or delete resources through the Cloudflare API. First use the 'search' tool to find the right endpoints, then write code using the cloudflare.request() function.
Available in your code:
interface CloudflareRequestOptions {
method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
path: string;
query?: Record<string, string | number | boolean | undefined>;
body?: unknown;
contentType?: string; // Custom Content-Type header (defaults to application/json if body is present)
rawBody?: boolean; // If true, sends body as-is without JSON.stringify
}
interface CloudflareResponse<T = unknown> {
success: boolean;
status: number;
result: T;
errors: Array<{ code: number; message: string }>;
messages: Array<{ code: number; message: string }>;
result_info?: {
page: number;
per_page: number;
total_pages: number;
count: number;
total_count: number;
};
}
declare const cloudflare: {
request<T = unknown>(options: CloudflareRequestOptions): Promise<CloudflareResponse<T>>;
};
declare const accountId: string;
// Use the account_id argument to select the Cloudflare account for account-scoped requests.
Your code must be an async arrow function that returns the result.
Example: Worker with bindings (requires multipart/form-data):
async () => {
const code = `addEventListener('fetch', e => e.respondWith(MY_KV.get('key').then(v => new Response(v || 'none'))));`;
const metadata = { body_part: "script", bindings: [{ type: "kv_namespace", name: "MY_KV", namespace_id: "your-kv-id" }] };
const b = `--F${Date.now()}`;
const body = [`--${b}`, 'Content-Disposition: form-data; name="metadata"', 'Content-Type: application/json', '', JSON.stringify(metadata), `--${b}`, 'Content-Disposition: form-data; name="script"', 'Content-Type: application/javascript', '', code, `--${b}--`].join("\r\n");
return cloudflare.request({ method: "PUT", path: `/accounts/${accountId}/workers/scripts/my-worker`, body, contentType: `multipart/form-data; boundary=${b}`, rawBody: true });
}
Search
Search the Cloudflare OpenAPI spec. All $refs are pre-resolved inline.
Products: cloudforce-one, access, magic, workers, dlp, email-security, realtime, devices, ai-gateway, email, intel, gateway, stream, settings, brand-protection, data-security, ai-search, browser-rendering, dex, logpush, api_gateway, builds, images, addressing, security-center, load_balancers, rulesets, vectorize, firewall, logs... (168 total)
Types:
interface OperationInfo {
summary?: string;
description?: string;
tags?: string[];
parameters?: Array<{ name: string; in: string; required?: boolean; schema?: unknown; description?: string }>;
requestBody?: { required?: boolean; content?: Record<string, { schema?: unknown }> };
responses?: Record<string, { description?: string; content?: Record<string, { schema?: unknown }> }>;
}
interface PathItem {
get?: OperationInfo;
post?: OperationInfo;
put?: OperationInfo;
patch?: OperationInfo;
delete?: OperationInfo;
}
declare const spec: {
paths: Record<string, PathItem>;
};
Examples:
// Find endpoints by product
async () => {
const results = [];
for (const [path, methods] of Object.entries(spec.paths)) {
for (const [method, op] of Object.entries(methods)) {
if (op.tags?.some(t => t.toLowerCase() === 'workers')) {
results.push({ method: method.toUpperCase(), path, summary: op.summary });
}
}
}
return results;
}
// Get endpoint with requestBody schema (refs are resolved)
async () => {
const op = spec.paths['/accounts/{account_id}/d1/database']?.post;
return { summary: op?.summary, requestBody: op?.requestBody };
}
// Get endpoint parameters
async () => {
const op = spec.paths['/accounts/{account_id}/workers/scripts']?.get;
return op?.parameters;
}
Conéctate
En tu Slack en dos minutos.
Sin flujos que configurar. Activa las herramientas que ya usas y tu agente se pone a trabajar.
Añadir a Slack
1
Añade Sokko a Slack
Un clic desde el marketplace de Slack. Todo tu equipo tiene Sokko de una vez.
2
Conecta tus herramientas
Sokko funciona con más de 1000 apps y cualquier servidor MCP.
Martin
9:53 AM
@Sokko
¿Qué puedes hacer con Cloudflare MCP?
3
Pon a Sokko a trabajar
@menciona a Sokko en cualquier canal y arranca. Minutos, no un fin de semana.
Preguntas, respondidas.
Sokko es un asistente de IA que vive en tu Slack. Conecta tus apps, pide lo que necesitas en lenguaje natural y Sokko se encarga del trabajo por ti.
Regístrate en Sokko, pídele a Sokko que se conecte a Cloudflare MCP y aprueba la conexión cuando se te solicite. A partir de ahí puedes pedirle a Sokko que haga cosas en Cloudflare MCP cuando quieras.
No. No hay nada que crear ni configurar. Le pides a Sokko en Slack igual que se lo pedirías a un colega, y Sokko se encarga del resto.
Sí. Pídelo una vez y dile a Sokko cuándo repetirlo, como cada lunes a las 9 h, y se convierte en una rutina que se ejecuta sin ti.
Leer y actuar sobre los datos de Cloudflare MCP, y lanzar workflows cuando algo cambia. Dile a Sokko el resultado que quieres y se encarga del resto.
Sí. Sokko se conecta a más de 1.000 apps y a cualquier servidor MCP, así que puedes pedir tareas que abarquen Cloudflare MCP y el resto de tu stack en una sola petición.