S’exécute surWrit CloudDesktop
Sur cette page
Chaque workflow, un outil.
Le serveur MCP writ-cloud transforme votre compte en outils qu’un agent IA peut appeler : vingt-cinq outils intégrés pour les workflows, les données, les crawls, les moniteurs et les automatisations — plus un outil par workflow enregistré. L’authentification est une clé API wt_.
connexion ▸ une seule url
Un serveur pour tout le compte.
Le transport est Streamable HTTP : chaque message est un POST vers /mcp sur api.usewrit.app — JSON-RPC 2.0, un objet unique ou un tableau batch par requête. GET /mcp est une sonde de santé. Authentifiez-vous avec Authorization: Bearer et une clé API wt_ ; cet endpoint n’accepte pas OAuth.
| Propriété | Valeur |
|---|---|
| Transport | Streamable HTTP — JSON-RPC 2.0 sur POST /mcp, objet unique ou tableau batch |
| Version du protocole | 2025-03-26 |
| Nom du serveur | writ-cloud |
| Auth | Authorization: Bearer — une clé API wt_ ; pas d’OAuth sur cet endpoint |
| Santé | 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 vous remet les deux blocs prêts à coller : la ligne du connecteur npm — claude mcp add writ-cloud -e WRIT_API_KEY=… -- npx -y writ-mcp — et un bloc direct {"type":"http"} URL + en-tête. Dans les deux cas, la clé voyage dans une variable d’environnement, jamais dans argv.
outils ▸ vingt-cinq intégrés
Vingt-cinq outils, sur chaque compte.
Le jeu intégré couvre la boucle qu’un agent exécute réellement : trouver un workflow, l’exécuter, lire et chercher ce qu’il a collecté, le planifier, l’exposer, crawler, surveiller, automatiser.
| Outil | Ce qu’il fait |
|---|---|
writ_list_workflows | Liste les workflows enregistrés — id, nom, entrées, planification. |
writ_run_workflow | Exécute un workflow par id ou nom ; attend par défaut et renvoie les données extraites. |
writ_workflow_data | Les données accumulées par un workflow, en colonnes et en lignes. |
writ_search_data | Recherche par mots-clés dans tout ce que vos workflows ont collecté. |
writ_export_data | La table complète en CSV ou JSON. |
writ_workflow_runs | L’historique des runs d’un workflow. |
writ_set_schedule | Planifie un workflow : every_minutes, ou daily/weekly avec une heure et des jours. |
writ_expose_workflow_api | Expose un workflow comme endpoint REST ; renvoie l’URL. |
writ_crawl_site | Lance un crawl distribué ; save_as le rend réutilisable. |
writ_saved_crawls | Liste les crawls enregistrés. |
writ_run_saved_crawl | Exécute un crawl enregistré — ou sert ses données récentes via max_age. |
writ_saved_crawl_data | Accès en lecture seule aux derniers résultats d’un crawl enregistré. |
writ_crawl_status | La progression d’un crawl en cours. |
writ_create_automation | Crée une automatisation. |
writ_create_monitor | Surveille les changements d’une page. |
writ_wire_monitor | Choisit ce qu’un changement détecté déclenche — exécuter un workflow, ou notifier. |
writ_browser_use | Ouvre un vrai navigateur pour n’importe quelle tâche web ; renvoie une observation de la page. |
writ_record_website | Démarre l’enregistrement d’une tâche sur un site, pour la rejouer ensuite. |
writ_website_to_api | Transforme un site sans API exploitable en API appelable — propose vos propres workflows et les API prêtes à l’emploi de la marketplace avant d’enregistrer quoi que ce soit. |
writ_build | Construit un workflow réutilisable pour toute tâche web répétable, quand aucun outil de démarrage plus précis ne s’applique. |
writ_browser_act | Pilote la session — naviguer, cliquer, remplir, sélectionner, extraire — et renvoie l’observation suivante. Chaque action rejouable est enregistrée. |
writ_browser_context | Lit à la demande le DOM nettoyé, les champs et les liens de la page. |
writ_browser_network | Cherche dans les requêtes faites par la page, capturées pendant que vous pilotez. |
writ_browser_save | Termine la session et enregistre ses étapes comme workflow réutilisable. |
writ_browser_cancel | Termine la session sans rien enregistrer. |
La cadence est appliquée, pas ajustée. Un intervalle de moniteur sous le plancher de votre plan est rejeté avec une erreur 402 interval_too_short — jamais raccourci en silence. L’agent réessaie avec un intervalle plus long.
Le client connecté est l’IA. Une session d’enregistrement passe par la même clé : démarrez-la, pilotez-la tour par tour avec writ_browser_act, puis terminez avec writ_browser_save — ou writ_browser_cancel pour l’abandonner. L’enregistrement est automatique et la sauvegarde à la demande : un workflow enregistré se rejoue ensuite sans modèle dans la boucle. Pour une valeur sensible, définissez data_key et l’étape enregistrée conserve un placeholder plutôt que la valeur. Deux points diffèrent du connecteur bureau, parce que le navigateur est le nôtre et non le vôtre : un outil de démarrage EXIGE une url (elle passe le contrôle SSRF et la politique de domaines avant l’ouverture du navigateur), et un site dont la connexion demande un code à usage unique nécessite un persona_id — le code est généré côté serveur à partir de cette identité enregistrée et n’atteint jamais le modèle. Une session ouverte mobilise un vrai navigateur cloud : son temps réel s’impute à votre quota d’exécution jusqu’à la sauvegarde ou l’annulation ; une session laissée inactive est récupérée automatiquement.
outils ▸ un par workflow
Chaque workflow enregistré est son propre outil.
tools/list porte aussi un outil run_<name> par workflow enregistré, son schéma d’entrée dérivé des entrées déclarées du workflow. Les noms sont slugifiés ; une collision se dédouble en _2, _3 ; les noms intégrés writ_* gagnent toujours. Chaque outil de run accepte les trois mêmes contrôles :
| Contrôle | Défaut | Rôle |
|---|---|---|
wait | true | Bloque jusqu’au verdict du run et renvoie les données extraites. |
timeout_seconds | 120 | Durée maximale d’attente avant de rendre un run encore en cours. |
max_age | 0 | Sert un résultat récent réussi au lieu de réexécuter ; 0 exécute toujours à neuf. |
La réutilisation ne s’applique qu’aux résultats réussis et se fonde sur les entrées exactes. Les réponses portent _cache.hit et _cache.age_seconds : un agent distingue toujours une réponse en cache d’une réponse fraîche.
règles ▸ pas de porte dérobée
Un appel d’outil est un appel d’API.
MCP ajoute un protocole, pas une porte dérobée. Chaque appel d’outil s’exécute exactement sous les règles de l’API REST appelée avec la même clé : isolation du tenant, scopes de la clé, limites du plan et facturation s’appliquent sans changement.
publication ▸ /mcp/{slug}
Des serveurs publiés sur /mcp/{slug}.
La publication crée aussi des serveurs MCP autonomes sur /mcp/{slug} — Streamable HTTP sur POST /mcp/{slug}, avec SSE en option sur GET /mcp/{slug}/sse. Ils acceptent une clé wt_ ou un token d’accès OAuth : vous confiez un workflow à un client sans lui confier une clé de compte.
OAuth pour les clients MCP
Un appel refusé répond avec WWW-Authenticate dont le resource_metadata pointe vers …/.well-known/oauth-protected-resource/mcp/{slug} — la découverte OAuth standard de MCP. Les métadonnées du serveur d’autorisation vivent sur GET /api/oauth/.well-known/oauth-authorization-server, et les clients s’enregistrent eux-mêmes via l’enregistrement dynamique RFC 7591 sur POST /api/oauth/register — clients publics PKCE uniquement, sans client secret. Conçu pour les connecteurs personnalisés de Claude, Cursor et tout client qui parle ce flux.
Configuration d’un outil
Chaque outil publié est un petit contrat ; le slug du serveur est toujours dérivé du nom.
| Champ | Règle |
|---|---|
tool_name | respecte ^[a-zA-Z_][a-zA-Z0-9_]*$ — 100 caractères au plus |
description | 500 caractères au plus — ce que le modèle lit pour décider quand appeler |
input_schema | JSON Schema ; null le dérive des entrées du workflow |
timeout_seconds | 5–300 secondes, 30 par défaut |
Les outils MCP publiés sont plafonnés par plan (la limite max_mcp_tools) — un plafond sur le nombre d’outils publiés, jamais sur la fréquence de leurs appels :
| Plan | Outils MCP publiés |
|---|---|
| Free | 2 |
| Starter | 5 |
| Pro | 15 |
| Growth | 40 |
| Scale | 100 |
| Enterprise | Illimité |
faq