accueil / serveurs / Recherche & Web / app.usewrit/writ-cloud
app.usewrit/writ-cloud
serveur MCP (Model Context Protocol) · Writ Cloud 1.0.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que app.usewrit/writ-cloud est sûr ?
Au dernier audit MCP Hub, le serveur MCP « app.usewrit/writ-cloud » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 41 outils
- writ_browser_act≈ 349 tokens
Runs one batch of actions on an open session and returns the fresh page. Each action is an object, e.g. {"action":"click","selector":"#go"}. DRIVE: navigate, click, fill, type_text, select, check, hover, submit, press_key, scroll, back, wait, wait_for. SEE: query_dom, find_text, read_text, count, get_attributes, inspect, list_candidates, get_dom, get_screenshot. NETWORK: capture_network, get_request, rotate_exit. CODE: evaluate_js, search_scripts, read_script. RECORD: extract {variable,script}, api_call, login_post, probe_write, confirm_write. 2FA: twofa {challenge_method}. A value written {{name}} with its real value in `inputs` becomes a workflow input. Each action's arguments: the session's start answer, or writ_help('writ_browser_act').
Paramètres, retour & exemple (4)
Paramètresinputs· object · optionnelactions· array · requis
Ordered action objects, e.g. [{"action":"click","selector":"#login"}].max_chars· integer · optionnel
Clip of the returned page (default 40000).session_id· string · requis
Exemple d'appel{"name": "writ_browser_act", "arguments": {"actions": [], "session_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_browser_ask_user≈ 298 tokens
Hands an open session to the Writ user: kind='captcha' (they complete a security check in the live browser), 'twofa' (they supply the one-time code and Writ types it; the code never reaches this conversation), 'sign_in' (they sign in on the live page; no persona applies) or 'question' (their text answer). The call that opens the ask returns at once with user_link + tell_user to relay; later calls hold up to 60 s and answer answered, waiting_for_user (the same call again) or expired. Their answer is kept if your turn ends first.
Paramètres, retour & exemple (4)
Paramètreskind· string · optionnel · captcha | question | twofa | sign_in
captcha | twofa | sign_in | question.question· string · optionnel
kind='question': one short sentence.session_id· string · requiswait_seconds· integer · optionnel
Hold up to this long (1-60).
Exemple d'appel{"name": "writ_browser_ask_user", "arguments": {"session_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_browser_cancel≈ 161 tokens
Closes an open browser session (an open cloud browser bills until it is closed). Unsaved work that did more than visit pages is auto-saved first and the reply names it; discard=true keeps nothing.
Paramètres, retour & exemple (2)
Paramètresdiscard· boolean · optionnel
Throw away unsaved steps instead of auto-saving.session_id· string · requis
Exemple d'appel{"name": "writ_browser_cancel", "arguments": {"session_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_browser_compose≈ 286 tokens
Authors the workflow in an open session beyond a recording: named API functions (define_function with a `flow` (preferred in an API build), from a captured call's index, or a lists payload; live-tested as defined; compile_function for an authenticated request), set_inputs, add_steps, test_function, remove_function, remove_step, list. Payload shapes: writ_help('writ_browser_compose').
Paramètres, retour & exemple (3)
Paramètrespayload· object · optionnel
The operation's arguments.operation· string · requis · list | define_function | compile_function | test_function | remove_function | add_steps | remove_step | set_inputs
list | define_function | compile_function | test_function | remove_function | add_steps | remove_step | set_inputs.session_id· string · requis
Exemple d'appel{"name": "writ_browser_compose", "arguments": {"operation": "list", "session_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_browser_context≈ 208 tokens
Re-reads an open session: section=page (url, fields, buttons, cleaned DOM), lists (the page's repeating rows with a live-tested define_function payload for writ_browser_compose), map (the evidence of the build the session is bound to).
Paramètres, retour & exemple (4)
Paramètresoffset· integer · optionnelsection· string · optionnel · page | lists | map | explorer | concierge_api
page (default) | lists | map | explorer | concierge_api.max_chars· integer · optionnelsession_id· string · requis
Exemple d'appel{"name": "writ_browser_context", "arguments": {"session_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_browser_live_view≈ 187 tokens
The live browser card's own access: the card ChatGPT and Claude show under writ_browser_use and writ_record_website calls it to read the session's state and get one-time passes for the session's screencast and its take-over channel. The user watches the page in the card and can take it over there. It is not part of a conversation's work.
Paramètres, retour & exemple (1)
Paramètressession_id· string · requis
The session_id the card was opened with (cbs_...).
Exemple d'appel{"name": "writ_browser_live_view", "arguments": {"session_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_browser_network≈ 270 tokens
Searches (operation=search, query, method) or reads in full (operation=detail, index) the backend requests the page made after capture_network: the site's real API. writ_browser_act api_call probes one with other values (a `flow`: several requests); an index feeds writ_browser_compose define_function from_index.
Paramètres, retour & exemple (7)
Paramètresindex· integer · optionnel
detail: which call.query· string · optionnel
Substring filter.method· string · optionnel
HTTP method filter.offset· integer · optionnelmax_chars· integer · optionneloperation· string · optionnel · search | detail
search (default) | detail.session_id· string · requis
Exemple d'appel{"name": "writ_browser_network", "arguments": {"session_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_browser_save≈ 273 tokens
Saves the open session as a replayable workflow and closes the browser, in the place its browser ran: the user's desktop library or Writ Cloud. Composed functions become callable API functions, declared inputs become its parameters. The answer carries the steps, the inputs and a run_example; the workflow runs at zero AI cost through writ_run_workflow. A save that references something no run could resolve is refused with the reasons, and the browser stays open.
Paramètres, retour & exemple (6)
Paramètresname· string · optionnelsave_to· string · optionnel · desktop | cloud | bothkeep_open· boolean · optionnelsession_id· string · requisdescription· string · optionnelallow_no_data· boolean · optionnel
Save a workflow that returns no data, on purpose.
Exemple d'appel{"name": "writ_browser_save", "arguments": {"session_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_browser_sessions≈ 112 tokens
Lists the account's open cloud browser sessions (each resumable by its session_id).
Paramètres, retour & exemple (2)
Paramètreslimit· integer · optionnelinclude_closed· boolean · optionnel
Exemple d'appel{"name": "writ_browser_sessions", "arguments": {"limit": 1, "include_closed": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_browser_use≈ 380 tokens
A REAL CLOUD BROWSER FOR A TASK ON A SITE: the user's signed-in account (a persona_id from writ_personas: the password stays sealed in Writ, and sessions never ask for a password), a click, form, submit or search inside an app, or a page a plain fetch cannot open (login wall, 403, CAPTCHA). Opens the browser and returns the first page; writ_browser_act drives it (Writ runs no model here). Recording is always on: writ_browser_save turns the session into a workflow that replays without a browser, writ_browser_cancel closes it (an open browser bills). The start answer carries the action vocabulary, the recording rules and, with a persona, the 2FA rules. NOT FOR: reading pages (writ_scrape). An API: writ_website_to_api opens this same browser, bound to a build.
Paramètres, retour & exemple (8)
Paramètresurl· string · requisgoal· string · optionnelauth_mode· string · optionnel · reuse | fresh_loginfresh_exit· boolean · optionnelpersona_id· integer|string · optionneluse_residential· boolean · optionnel
Open on the residential network (bot walls, CAPTCHAs).execution_target· string · optionnel
cloud | auto | local (the user's own desktop app).residential_country· string · optionnel
Exemple d'appel{"name": "writ_browser_use", "arguments": {"url": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_crawl_files≈ 131 tokens
The original files (PDFs, office documents, images, CSVs) a crawl captured, with short-lived download URLs.
Paramètres, retour & exemple (4)
Paramètresruns· integer · optionnelcrawl· string · optionnellimit· integer · optionnelcrawl_id· integer · optionnel
Exemple d'appel{"name": "writ_crawl_files", "arguments": {"runs": 1, "crawl": "texte", "limit": 1, "crawl_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_crawl_site≈ 706 tokens
COLLECTS a site or a section into a queryable, change-tracked dataset (one row per page). Scope: intent (a section, in plain words), rank_cap=N (the top N items of a listing), seed_urls (known pages), or the whole site capped by page_budget. Modes: markdown (default, no AI), extract_mode='schema' (uniform records), executor='ai' + extract_prompt (per-page understanding, 5x the page rate). A bounded crawl answers with its rows; an open one returns a crawl_id for writ_crawl_status wait=true. NOT FOR: reading a few pages now (writ_scrape). Every option: writ_help('writ_crawl_site').
Paramètres, retour & exemple (35)
Paramètresurl· string · requisname· string · optionnelwait· boolean · optionnel
Hold until done and return the rows (default true when bounded).limit· integer · optionnelspeed· string · optionneldevice· string · optionnelintent· string · optionnel
The section wanted, in plain words; the server derives paths and depth.output· object · optionnelmax_age· integer · optionnelsave_as· string · optionneldelay_ms· integer · optionnelexecutor· string · optionnel
regular (default, no AI) | ai (5x the page rate).ocr_mode· string · optionnelrank_cap· integer · optionnel
Top N items of a listing (one page per agent, in parallel).max_depth· integer · optionnelseed_urls· array · optionnel
Exact pages to collect (no discovery).persona_id· integer|string · optionnelshard_size· integer · optionnelpage_budget· integer · optionnel
Cap on pages fetched.render_mode· string · optionnelsame_domain· boolean · optionnelcontent_spec· object · optionnelextract_mode· string · optionnel
markdown (default) | schema | html.exclude_paths· array · optionnelinclude_paths· array · optionnelpreview_chars· integer · optionnelextract_prompt· string · optionnel
With executor=ai: what to extract from each page.extract_schema· object · optionnelrespect_robots· boolean · optionneltimeout_seconds· integer · optionneluse_residential· boolean · optionnelallow_subdomains· boolean · optionnelrelevance_threshold· number · optionnelresidential_country· string · optionnelmax_concurrent_shards· integer · optionnel
Exemple d'appel{"name": "writ_crawl_site", "arguments": {"url": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_crawl_status≈ 163 tokens
Status of a crawl by crawl_id; wait=true holds up to 75 s and returns the collected rows when it converges.
Paramètres, retour & exemple (6)
Paramètreswait· boolean · optionnel
Hold until done and inline the rows.limit· integer · optionneloutput· object · optionnelcrawl_id· integer · requispreview_chars· integer · optionneltimeout_seconds· integer · optionnel
Exemple d'appel{"name": "writ_crawl_status", "arguments": {"crawl_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_create_automation≈ 562 tokens
Creates an automation: on an event (a workflow or crawl completed, a monitor change, a webhook, a schedule) it runs a workflow, sends a notification templated over the event's data, and/or wakes an AI agent. Event, template and webhook options: writ_help('writ_create_automation').
Paramètres, retour & exemple (25)
Paramètresname· string · requiswhen· string · optionnel · workflow_completed | workflow_started | crawl_completed | crawl_failed | ai_session_completed | ai_session_started | change_detected | webhook_received
workflow_completed | crawl_completed | change_detected | webhook_received | scheduled | ...title· string · optionnelblocks· array · optionnelinputs· object · optionnelnotify· string · optionnel
Message template, e.g. {{result.extracted_data.0.title}}.enabled· boolean · optionnelchannels· array · optionnel
Notification channels.priority· integer · optionnelschedule· object · optionnel
when='scheduled': {kind, interval_minutes | time, days, tz}.ai_prompt· string · optionnel
Wake an AI agent with this task.target_id· integer · optionnel
change_detected: the monitor_id.recipients· array · optionneldescription· string · optionnelon_workflow· string · optionnel
Source workflow for workflow_* events.ai_entry_url· string · optionnelrun_function· string · optionnelrun_workflow· string · optionnel
Workflow to run.ai_session_id· integer · optionnelrun_functions· array · optionnelon_workflow_id· integer · optionnelrun_workflow_id· integer · optionnelcooldown_minutes· integer · optionneltarget_selector_id· integer · optionnelwebhook_trigger_id· integer · optionnel
Exemple d'appel{"name": "writ_create_automation", "arguments": {"name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_create_http_extraction≈ 236 tokens
Drafts or revises a multi-request browserless HTTP extraction (loops, GraphQL, cursor pagination) from captured requests and a plain-language goal. Every option: writ_help('writ_create_http_extraction').
Paramètres, retour & exemple (9)
Paramètresgoal· string · requisapply· boolean · optionnel
false (default) drafts; true writes.workflow· string · optionnelstep_index· integer · optionnelworkflow_id· integer · optionnelrequirements· string · optionneldesired_inputs· array · optionnelrequest_samples· array · optionnelresponse_sample· string · optionnel
Exemple d'appel{"name": "writ_create_http_extraction", "arguments": {"goal": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_create_monitor≈ 482 tokens
WATCHES a page for changes: Writ checks it on a schedule and fires change_detected when the page, a CSS selector's text, a value read by `extract`, or a visual zone changes. Returns the monitor_id that writ_wire_monitor connects to an alert, a workflow or an AI task (a price watch takes a threshold there). Without `interval` the answer is needs_input: this plan's options and a tell_user for the user, nothing created. The page is read first: a sign-in answers needs_persona, a bot check offers use_residential.
Paramètres, retour & exemple (17)
Paramètresurl· string · requismode· string · optionnel · selector | visualwatch· string · optionnel · content | price
content (default) | price (the value must hold a number).device· string · optionnelenabled· boolean · optionnelextract· object|string · optionnel
Browserless read instead of a selector, e.g. {"from":"html_css","selector":".price"}.interval· string|integer · optionnel
How often: an option id from needs_input ('5m', '1h', '24h') or seconds.selector· string · optionnel
CSS selector whose text is watched (unset = whole page / uptime).zone_text· string · optionnelpersona_id· integer|string · optionnelsession_id· string · optionneltry_anyway· boolean · optionnelrequest_url· string · optionneluse_residential· boolean · optionnel
Check through a residential exit (bot walls).interval_minutes· integer · optionnelrequires_browser· boolean · optionnelresidential_country· string · optionnel
Exemple d'appel{"name": "writ_create_monitor", "arguments": {"url": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_devices≈ 170 tokens
The user's linked Writ desktops: list, use (scope this connection to one: runs, browsers, personas and monitors then target it), clear, monitors, datasets.
Paramètres, retour & exemple (2)
Paramètresaction· string · optionnel · list | use | clear | monitors | datasets
list (default) | use | clear | monitors | datasets.device· string · optionnel
use: the desktop's agent_id or name.
Exemple d'appel{"name": "writ_devices", "arguments": {"action": "list", "device": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_diagnose_http_workflow≈ 136 tokens
Explains why a saved workflow's run returned nothing or failed: HTTP-lane readiness and, with task_id, the run's requests and responses.
Paramètres, retour & exemple (3)
Paramètrestask_id· integer · optionnelworkflow· string · optionnelworkflow_id· integer · optionnel
Exemple d'appel{"name": "writ_diagnose_http_workflow", "arguments": {"task_id": 1, "workflow": "texte", "workflow_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_discovery_status≈ 220 tokens
Status of a writ_website_to_api build. wait=true is one held call (up to 75 s) that follows the build to its newest rung and returns when it is done or parked. Answers: succeeded (workflow_id, functions, run_example), failed, cancelled, or needs_guidance (the build is the caller's to finish with writ_website_to_api mode=guided build_id=<id>; its map comes with it).
Paramètres, retour & exemple (3)
Paramètreswait· boolean · optionnel
One held call until done or parked.build_id· integer · requistimeout_seconds· integer · optionnel
Ceiling for wait=true (up to 75).
Exemple d'appel{"name": "writ_discovery_status", "arguments": {"build_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_export_data≈ 130 tokens
Exports a workflow's full data table as CSV or JSON.
Paramètres, retour & exemple (5)
Paramètresq· string · optionnelview· string · optionnelformat· string · optionnel
csv (default) | json.workflow· string · optionnelworkflow_id· integer · optionnel
Exemple d'appel{"name": "writ_export_data", "arguments": {"q": "texte", "view": "texte", "format": "texte", "workflow": "texte", "workflow_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_expose_workflow_api≈ 165 tokens
Publishes a saved workflow as a REST endpoint (a POST URL that waits and returns its JSON). Repeated calls reuse it.
Paramètres, retour & exemple (5)
Paramètreslabel· string · optionnelworkflow· string · optionnelworkflow_id· integer · optionnelwait_timeout· integer · optionneltimeout_seconds· integer · optionnel
Exemple d'appel{"name": "writ_expose_workflow_api", "arguments": {"label": "texte", "workflow": "texte", "workflow_id": 1, "wait_timeout": 1, "timeout_seconds": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_help≈ 207 tokens
The full reference of any Writ tool (every parameter and its rules) and the complete guide. topic = a tool name (e.g. 'writ_browser_compose', a 'run_<workflow>' tool), 'guide' for the manual (recurring digests, HTTP flow building, buying on a price, crawl and build modes), 'actions' / 'recording' / '2fa' for the browser rules, 'http_flows' / 'flow_operators' for writing an HTTP flow, or empty for the list of topics.
Paramètres, retour & exemple (1)
Paramètrestopic· string · optionnel
A tool name, 'guide', 'actions', 'recording', '2fa', 'http_flows', 'flow_operators', or empty.
Exemple d'appel{"name": "writ_help", "arguments": {"topic": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_list_webhooks≈ 108 tokens
The account's inbound webhook URLs and the automations they fire.
Paramètres, retour & exemple (1)
Paramètreswebhook_trigger_id· integer · optionnel
Only this webhook.
Exemple d'appel{"name": "writ_list_webhooks", "arguments": {"webhook_trigger_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_list_workflows≈ 138 tokens
Lists the workflows saved in the Writ account; each runs on demand without live browsing. Returns id, name, declared inputs, schedule, and whether it is pinned as its own run_<name> tool.
Paramètres, retour & exemple (1)
Paramètressearch· string · optionnel
Name/description filter, e.g. a site.
Exemple d'appel{"name": "writ_list_workflows", "arguments": {"search": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_payment≈ 399 tokens
Pays on a site with one of the user's cards; card numbers never reach this conversation. request (site, max_amount, purpose) returns a tell_user and an open_url where the user approves; wait (grant_id or confirmation_id); checkout pauses at the order button for the user's confirmation, then Writ places the order; fill; list (card handles only). Details: writ_help('writ_payment').
Paramètres, retour & exemple (15)
Paramètressite· string · optionnel
request: the store's domain.steps· array · optionnelaction· string · requis · request | wait | checkout | fill | list
request | wait | checkout | fill | list.fields· object · optionnelpurpose· string · optionnel
One line the user reads.session· string · optionnel
The browser session on the checkout page.summary· string · optionnelcurrency· string · optionnelgrant_id· string · optionnelmax_amount· number · optionnel
The most it may charge.automation_id· integer · optionneltotal_selector· string · optionnelcommit_selector· string · optionnel
checkout: the place-order button.confirmation_id· string · optionnelpayment_method_id· string · optionnel
Exemple d'appel{"name": "writ_payment", "arguments": {"action": "request"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_personas≈ 466 tokens
The user's own accounts on websites (personas): how Writ signs in as them. No password passes through this tool or the conversation, and its answers never ask for one: credentials are typed only into a Writ window. action='list' domain=<site> shows the personas usable there; with none it answers persona_needed: a tell_user for the user, a create_url (a small Writ window with only the sign-in form, pre-filled for the site) and a link_id. action='wait' link_id=<id> is one held call that answers when the user saves it, with its persona_id. Also get, request (a link for another account), sign_in (refresh the session) and record_login. A persona_id works on writ_scrape, writ_crawl_site, writ_browser_use and writ_run_workflow; a desktop persona ('device:...') signs in on that desktop, from its own vault.
Paramètres, retour & exemple (11)
Paramètreswhy· string · optionnel
request: one line the user sees in the window.wait· boolean · optionnelforce· boolean · optionnelaction· string · requis · list | get | request | wait | sign_in | record_login
list (default) | get | request | wait | sign_in | record_login.device· string · optionneldomain· string · optionnel
list: personas usable on this site. request: the site.link_id· string · optionnel
wait: the link_id of a persona_needed / request answer.login_url· string · optionnelpersona_id· integer · optionnelinclude_runs· boolean · optionnelexecution_target· string · optionnel · cloud
Exemple d'appel{"name": "writ_personas", "arguments": {"action": "list"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_pin_workflow_tool≈ 117 tokens
Pins (or unpins) a saved workflow as its own run_<name> tool on this server.
Paramètres, retour & exemple (3)
Paramètrespinned· boolean · optionnelworkflow· string · optionnelworkflow_id· integer · optionnel
Exemple d'appel{"name": "writ_pin_workflow_tool", "arguments": {"pinned": true, "workflow": "texte", "workflow_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_record_website≈ 266 tokens
Records a repeatable task on a site as a workflow (goal + start url): the same session as writ_browser_use, labelled with its goal, driven with writ_browser_act and saved with writ_browser_save. A goal that asks for an API opens as a writ_website_to_api build instead: the same browser, bound to the build.
Paramètres, retour & exemple (10)
Paramètresurl· string · requisgoal· string · requisdevice· string · optionnelauth_mode· string · optionnel · reuse | fresh_loginfresh_exit· boolean · optionnelpersona_id· integer|string · optionnelskip_existing· boolean · optionneluse_residential· boolean · optionnel
Residential network (bot walls).skip_marketplace· boolean · optionnelresidential_country· string · optionnel
Exemple d'appel{"name": "writ_record_website", "arguments": {"url": "texte", "goal": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_run_saved_crawl≈ 180 tokens
Runs a saved crawl; max_age returns its recent data at no cost instead of re-crawling.
Paramètres, retour & exemple (7)
Paramètreswait· boolean · optionnel
Hold until done.crawl· string · requislimit· integer · optionneloutput· object · optionnelmax_age· integer · optionnel
Reuse a run younger than this (seconds).preview_chars· integer · optionneltimeout_seconds· integer · optionnel
Exemple d'appel{"name": "writ_run_saved_crawl", "arguments": {"crawl": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_run_workflow≈ 490 tokens
Runs a saved workflow by workflow_id or name and returns its extracted data (it waits by default). Inputs go as top-level fields or under `inputs`; function_name runs one function of a multi-function API (with the sign-in it needs). max_age reuses a recent result at no cost. A write function previews with mutation_mode='dry_run'. Runs sign in as the workflow's persona or persona_id; no password is ever passed. Venue, network, files and output shape: writ_help('writ_run_workflow').
Paramètres, retour & exemple (16)
Paramètreswait· boolean · optionnelfiles· object · optionneldevice· string · optionnelinputs· object · optionnel
Run inputs (top-level fields work too).output· object · optionnelmax_age· integer · optionnel
Reuse a result younger than this many seconds (free). 0 = fresh.workflow· string · optionnel
Workflow name (or workflow_id).persona_id· integer|string · optionnel
Run as this saved identity.workflow_id· integer|string · optionnel
A number, or 'local:<id>' (a workflow on the user's desktop).function_name· string · optionnel
One function of a multi-function workflow.mutation_mode· string · optionnel · live | dry_run | private_test
live (default) | dry_run (preview, nothing sent) | private_test.function_names· array · optionneltimeout_seconds· integer · optionneluse_residential· boolean · optionnelexecution_target· string · optionnel
cloud | auto | local (the user's own desktop app).residential_country· string · optionnel
Exemple d'appel{"name": "writ_run_workflow", "arguments": {"wait": true, "files": {}, "device": "texte", "inputs": {}, "output": {}, "max_age": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_saved_crawl_data≈ 131 tokens
Reads the data a saved crawl collected on its last completed run, without crawling.
Paramètres, retour & exemple (4)
Paramètrescrawl· string · requislimit· integer · optionneloutput· object · optionnelpreview_chars· integer · optionnel
Exemple d'appel{"name": "writ_saved_crawl_data", "arguments": {"crawl": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_saved_crawls≈ 90 tokens
Lists the crawls saved for re-running, with their scope.
Paramètres, retour & exemple (1)
Paramètreslimit· integer · optionnel
Exemple d'appel{"name": "writ_saved_crawls", "arguments": {"limit": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_scrape≈ 470 tokens
READ PAGES NOW, no browser session: one page (url), up to 20 pages in parallel (urls), or a listing plus its top N item pages (url + top_n). Returns clean markdown in 2-10 s, including pages a plain fetch cannot read: rendered by JavaScript (render_mode='browser'; a read that only got the page's shell says so and gives the retry), behind a bot wall or 403 (an automatic residential retry), or behind the user's sign-in (persona_id). Discussion threads keep their comments. format='html' returns the raw HTML for selectors. NOT FOR: a site-wide dataset (writ_crawl_site) or clicking and typing (writ_browser_use).
Paramètres, retour & exemple (12)
Paramètresurl· string · optionnelurls· array · optionnel
Up to 20 known pages, read in parallel.top_n· integer · optionnel
With url = a listing: also read its N top-ranked item pages (max 20).device· string · optionnelformat· string · optionnel · markdown | html | both
markdown (default) | html (raw HTML) | both.persona_id· integer|string · optionnel
Read signed in as this saved identity (writ_personas).render_mode· string · optionnel
auto (default: HTTP, a browser when the page needs JS) | http | browser.include_paths· array · optionnelpreview_chars· integer · optionnelrespect_robots· boolean · optionneluse_residential· boolean · optionnel
Residential network for a bot wall (automatic retry when refused).residential_country· string · optionnel
Exemple d'appel{"name": "writ_scrape", "arguments": {"url": "texte", "urls": [], "top_n": 1, "device": "texte", "format": "markdown", "persona_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_search_data≈ 147 tokens
Searches everything the account's workflows already collected for a term, without running anything.
Paramètres, retour & exemple (6)
Paramètresq· string · requislimit· integer · optionneldevice· string · optionnelworkflow· string · optionnelworkflow_id· integer · optionnelpreview_chars· integer · optionnel
Exemple d'appel{"name": "writ_search_data", "arguments": {"q": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_set_schedule≈ 262 tokens
Schedules a saved workflow: every_minutes, or kind='daily'/'weekly' with time (HH:MM) and days. functions + inputs schedule chosen functions of a multi-function API.
Paramètres, retour & exemple (11)
Paramètrestz· string · optionnel
IANA timezone.days· array · optionnel
Weekdays 1=Mon..7=Sun (weekly).kind· string · optionnel
interval | daily | weekly.time· string · optionnel
HH:MM (daily/weekly).inputs· object · optionnelenabled· boolean · optionnelfunction· string · optionnelworkflow· string · optionnelfunctions· array · optionnelworkflow_id· integer · optionnelevery_minutes· integer · optionnel
Interval in minutes.
Exemple d'appel{"name": "writ_set_schedule", "arguments": {"tz": "texte", "days": [], "kind": "texte", "time": "texte", "inputs": {}, "enabled": true}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_update_saved_crawl≈ 146 tokens
Inspects or changes a saved crawl's settings in place.
Paramètres, retour & exemple (5)
Paramètresname· string · optionnelcrawl· string · requissettings· object · optionnel
Sparse settings patch.description· string · optionneldefault_max_age_seconds· integer · optionnel
Exemple d'appel{"name": "writ_update_saved_crawl", "arguments": {"crawl": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_update_workflow≈ 463 tokens
Inspects or edits a saved workflow: an outline, one function's source, targeted function or step edits, a settings patch. copy_to keeps a linked copy on Writ Cloud or the user's desktop. Every option: writ_help('writ_update_workflow').
Paramètres, retour & exemple (20)
Paramètrespath· string · optionnellimit· integer · optionnelpatch· object · optionnel
Settings and metadata to change; {"name": "New name"} renames it.device· string · optionneloffset· integer · optionnelcopy_to· string · optionnel · cloud | desktopsection· string · optionnel · source | flow | contractstep_id· string · optionnelverbose· boolean · optionneloperator· string · optionnelworkflow· string · optionnel
Name or id; local:<n> for a desktop workflow.max_chars· integer · optionnelworkflow_id· integer · optionnelstep_updates· array · optionnel
[{index, patch}] merged into those recorded steps.function_name· string · optionnelreplace_steps· array · optionnelvalidate_only· boolean · optionnel
true previews and validates; nothing is saved.function_updates· array · optionnel
Targeted edits of one function: [{function_name, patch | json_edits | script_edits}].regenerate_skill· boolean · optionnelexpected_updated_at· string · optionnel
Exemple d'appel{"name": "writ_update_workflow", "arguments": {"path": "texte", "limit": 1, "patch": {}, "device": "texte", "offset": 1, "copy_to": "cloud"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_website_to_api≈ 530 tokens
TURNS A WEBSITE INTO A CALLABLE API (named functions with inputs, returning JSON), built by the caller in a real browser. url = the page that already shows the rows (search results or a listing, not the home page); goal = the inputs and fields wanted. The call first proposes the user's matching saved workflows and marketplace APIs (skip_existing / skip_marketplace build fresh), then opens a cloud browser bound to the build: capture_network records the site's own calls, writ_browser_network reads them, api_call probes them; a failed probe is evidence, not the end. Functions: HTTP flows first (writ_browser_compose define_function `flow`; writ_help('http_flows')), single requests (from_index) mixed in, DOM extraction last. writ_browser_save, then run_example on two inputs. mode=intelligent: Writ builds it alone (+ writ_discovery_status wait=true), on request.
Paramètres, retour & exemple (17)
Paramètresurl· string · optionnelgoal· string · optionnelmode· string · optionnel · guided | intelligent | auto | fast | crawl | browser | regular | deep
guided (default: the caller drives) | intelligent (Writ builds it alone, on request) | auto | fast | crawl | browser.level· string · optionnel · light | deepscope· string · optionneldevice· string · optionnelsave_as· string · optionnelbuild_id· integer · optionnelanonymous· boolean · optionnelpersona_id· integer · optionnelai_supervise· boolean · optionnelskip_existing· boolean · optionnel
Skip the proposal of the user's own matching workflows.respect_robots· boolean · optionneluse_residential· boolean · optionnelexecution_target· string · optionnelskip_marketplace· boolean · optionnel
Skip the marketplace proposals.residential_country· string · optionnel
Exemple d'appel{"name": "writ_website_to_api", "arguments": {"url": "texte", "goal": "texte", "mode": "guided", "level": "light", "scope": "texte", "device": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_wire_monitor≈ 494 tokens
Connects a monitor's change_detected event to an action: action='notify' (channels and recipients the account has configured), 'workflow' (runs a saved workflow), or 'ai_task' (an AI agent opens the page and works `prompt`). A price watch takes `threshold` (+ threshold_op): the action then runs once, when a check reads a price at or below it. Buying at a price (`buy`): writ_help('writ_wire_monitor').
Paramètres, retour & exemple (19)
Paramètresbuy· object · optionnel
Run the workflow or task as a purchase (saved as a rehearsal until armed).name· string · optionneltitle· string · optionnelaction· string · requis · workflow | notify | ai_task
notify | workflow | ai_task.device· string · optionnelprompt· string · optionnel
action='ai_task': what the agent does.enabled· boolean · optionnelmessage· string · optionnelchannels· array · optionnel
Notification channels, e.g. ["email","pushover"].workflow· string · optionnelentry_url· string · optionnelmax_steps· integer · optionnelthreshold· number|string · optionnel
Price watch: act once when the price reaches this number.monitor_id· integer · requisrecipients· array · optionnel
e.g. ["email:3"]; omitted = every enabled recipient.workflow_id· integer · optionnelthreshold_op· string · optionnel · lt | lte | gt | gte
lte (default) | lt | gte | gt.ai_session_id· integer · optionnelcooldown_minutes· integer · optionnel
Exemple d'appel{"name": "writ_wire_monitor", "arguments": {"action": "workflow", "monitor_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_workflow_data≈ 203 tokens
Reads a saved workflow's collected data as a table: q filters, run_id picks one run, refs returns full records.
Paramètres, retour & exemple (10)
Paramètresq· string · optionnelrefs· array · optionnel
Full records by '<run_id>:<record_index>'.view· string · optionnellimit· integer · optionneldevice· string · optionneloutput· object · optionnelrun_id· integer · optionnelworkflow· string · optionnelworkflow_id· integer · optionnelpreview_chars· integer · optionnel
Exemple d'appel{"name": "writ_workflow_data", "arguments": {"q": "texte", "refs": [], "view": "texte", "limit": 1, "device": "texte", "output": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - writ_workflow_runs≈ 136 tokens
Run history (status, timing, errors, venue) of one workflow or all of them.
Paramètres, retour & exemple (5)
Paramètreslimit· integer · optionneldevice· string · optionnelstatus· string · optionnel
Filter by status.workflow· string · optionnelworkflow_id· integer · optionnel
Exemple d'appel{"name": "writ_workflow_runs", "arguments": {"limit": 1, "device": "texte", "status": "texte", "workflow": "texte", "workflow_id": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».