Se ejecuta enWrit CloudDesktop
En esta página
Cada workflow, una herramienta.
El servidor MCP writ-cloud convierte tu cuenta en herramientas que un agente de IA puede llamar: veinticinco herramientas integradas para workflows, datos, crawls, monitors y automatizaciones — más una herramienta por workflow guardado. La autenticación es una clave API wt_.
conexión ▸ una sola url
Un servidor para toda la cuenta.
El transporte es Streamable HTTP: cada mensaje es un POST a /mcp en api.usewrit.app — JSON-RPC 2.0, un objeto único o un array batch por solicitud. GET /mcp es una sonda de salud. Autentícate con Authorization: Bearer y una clave API wt_; este endpoint no acepta OAuth.
| Propiedad | Valor |
|---|---|
| Transporte | Streamable HTTP — JSON-RPC 2.0 sobre POST /mcp, objeto único o array batch |
| Versión del protocolo | 2025-03-26 |
| Nombre del servidor | writ-cloud |
| Auth | Authorization: Bearer — una clave API wt_; sin OAuth en este endpoint |
| Salud | GET /mcp |
mcp-client config
{
"mcpServers": {
"writ-cloud": {
"type": "http",
"url": "https://api.usewrit.app/mcp",
"headers": {
"Authorization": "Bearer wt_xxxxxxxxxxxx"
}
}
}
} tools-list.sh
# Confirm the server is reachable and see the tools it exposes
curl -X POST https://api.usewrit.app/mcp \
-H "Authorization: Bearer $WRIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' GET /api/mcp/connect-info te entrega los dos bloques listos para pegar: la línea del conector npm — claude mcp add writ-cloud -e WRIT_API_KEY=… -- npx -y writ-mcp — y un bloque directo {"type":"http"} de URL + cabecera. En ambos casos la clave viaja en una variable de entorno, nunca en argv.
herramientas ▸ veinticinco integradas
Veinticinco herramientas, en cada cuenta.
El conjunto integrado cubre el ciclo que un agente ejecuta de verdad: encontrar un workflow, ejecutarlo, leer y buscar lo que recopiló, programarlo, exponerlo, crawlear, vigilar, automatizar.
| Herramienta | Qué hace |
|---|---|
writ_list_workflows | Lista los workflows guardados — id, nombre, entradas, programación. |
writ_run_workflow | Ejecuta un workflow por id o nombre; espera por defecto y devuelve los datos extraídos. |
writ_workflow_data | Los datos acumulados por un workflow, en columnas y filas. |
writ_search_data | Búsqueda por palabras clave en todo lo que tus workflows recopilaron. |
writ_export_data | La tabla completa en CSV o JSON. |
writ_workflow_runs | El historial de runs de un workflow. |
writ_set_schedule | Programa un workflow: every_minutes, o daily/weekly con hora y días. |
writ_expose_workflow_api | Expone un workflow como endpoint REST; devuelve la URL. |
writ_crawl_site | Inicia un crawl distribuido; save_as lo hace reutilizable. |
writ_saved_crawls | Lista los crawls guardados. |
writ_run_saved_crawl | Ejecuta un crawl guardado — o sirve sus datos recientes vía max_age. |
writ_saved_crawl_data | Acceso de solo lectura a los últimos resultados de un crawl guardado. |
writ_crawl_status | El progreso de un crawl en curso. |
writ_create_automation | Crea una automatización. |
writ_create_monitor | Vigila los cambios de una página. |
writ_wire_monitor | Elige qué desencadena un cambio detectado — ejecutar un workflow o notificar. |
writ_browser_use | Abre un navegador real para cualquier tarea web; devuelve una observación de la página. |
writ_record_website | Empieza a grabar una tarea en un sitio, para reproducirla después. |
writ_website_to_api | Convierte un sitio sin API practicable en una API invocable — propone tus propios workflows y las API listas del marketplace antes de grabar nada. |
writ_build | Construye un workflow reutilizable para cualquier tarea web repetible, cuando ningún arranque más específico encaja. |
writ_browser_act | Conduce la sesión — navegar, hacer clic, rellenar, seleccionar, extraer — y devuelve la siguiente observación. Cada acción reproducible queda grabada. |
writ_browser_context | Lee a demanda el DOM limpio, los campos y los enlaces de la página. |
writ_browser_network | Busca en las peticiones que hizo la página, capturadas mientras conduces. |
writ_browser_save | Termina la sesión y guarda sus pasos como workflow reutilizable. |
writ_browser_cancel | Termina la sesión sin guardar nada. |
La cadencia se aplica, no se ajusta. Un intervalo de monitor por debajo del mínimo de tu plan se rechaza con un error 402 interval_too_short — nunca se recorta en silencio. El agente reintenta con un intervalo mayor.
El cliente conectado es la IA. Una sesión de grabación usa la misma clave: iníciala, condúcela turno a turno con writ_browser_act y termínala con writ_browser_save — o writ_browser_cancel para descartarla. La grabación es automática y el guardado es a demanda: un workflow guardado se reproduce después sin ningún modelo en el bucle. Para un valor sensible define data_key y el paso guardado conserva un placeholder en vez del valor. Dos cosas cambian respecto al conector de escritorio, porque el navegador es nuestro y no tuyo: una herramienta de arranque EXIGE una url (se comprueba contra la política SSRF y de dominios antes de abrir el navegador), y un sitio cuyo inicio de sesión pide un código de un solo uso necesita un persona_id — el código se genera en el servidor a partir de esa identidad guardada y nunca llega al modelo. Una sesión abierta ocupa un navegador cloud real: su tiempo real cuenta contra tu cuota de ejecución hasta que guardes o canceles; una sesión inactiva se recupera automáticamente.
herramientas ▸ una por workflow
Cada workflow guardado es su propia herramienta.
tools/list también lleva una herramienta run_<name> por workflow guardado, con su esquema de entrada derivado de las entradas declaradas del workflow. Los nombres se sluguifican; una colisión se deduplica a _2, _3; los nombres integrados writ_* siempre ganan. Cada herramienta de run acepta los mismos tres controles:
| Control | Por defecto | Qué hace |
|---|---|---|
wait | true | Bloquea hasta que el run se resuelve y devuelve los datos extraídos. |
timeout_seconds | 120 | Máximo que espera la llamada antes de devolver un run aún en curso. |
max_age | 0 | Sirve un resultado reciente exitoso en lugar de reejecutar; 0 siempre ejecuta de nuevo. |
La reutilización solo aplica a resultados exitosos y se basa en las entradas exactas. Las respuestas llevan _cache.hit y _cache.age_seconds, así que un agente siempre distingue una respuesta en caché de una fresca.
reglas ▸ sin puerta lateral
Una llamada de herramienta es una llamada de API.
MCP añade un protocolo, no una puerta lateral. Cada llamada de herramienta se ejecuta exactamente bajo las reglas de la API REST llamada con la misma clave: aislamiento de tenant, scopes de la clave, límites del plan y medición se aplican sin cambios.
publicación ▸ /mcp/{slug}
Servidores publicados en /mcp/{slug}.
Publicar también crea servidores MCP independientes en /mcp/{slug} — Streamable HTTP en POST /mcp/{slug}, con SSE opcional en GET /mcp/{slug}/sse. Aceptan una clave wt_ o un token de acceso OAuth: entregas un workflow a un cliente sin entregarle una clave de cuenta.
OAuth para clientes MCP
Una llamada rechazada responde con WWW-Authenticate cuyo resource_metadata apunta a …/.well-known/oauth-protected-resource/mcp/{slug} — el descubrimiento OAuth estándar de MCP. Los metadatos del servidor de autorización viven en GET /api/oauth/.well-known/oauth-authorization-server, y los clientes se registran solos mediante el registro dinámico RFC 7591 en POST /api/oauth/register — solo clientes públicos con PKCE, sin client secret. Hecho para los conectores personalizados de Claude, Cursor y cualquier cliente que hable este flujo.
Configuración de una herramienta
Cada herramienta publicada es un contrato pequeño; el slug del servidor siempre se deriva del nombre.
| Campo | Regla |
|---|---|
tool_name | cumple ^[a-zA-Z_][a-zA-Z0-9_]*$ — 100 caracteres como máximo |
description | 500 caracteres como máximo — lo que el modelo lee para decidir cuándo llamar |
input_schema | JSON Schema; null lo deriva de las entradas del workflow |
timeout_seconds | 5–300 segundos, 30 por defecto |
Las herramientas MCP publicadas están limitadas por plan (el límite max_mcp_tools) — un tope sobre cuántas herramientas publicas, nunca sobre cuántas veces se llaman:
| Plan | Herramientas MCP publicadas |
|---|---|
| Free | 2 |
| Starter | 5 |
| Pro | 15 |
| Growth | 40 |
| Scale | 100 |
| Enterprise | Ilimitado |
faq