Saltar al contenido principal

Tools disponibles

El MCP server de Whet expone tools repartidas en tres superficies:

  • Core (8) — las primitives agent-native originales: pipelines, inbox, drafts, publish, X cookies, scraping.
  • Sessions (18) — la superficie del canvas de drafting (snapshottear items upstream → generar variantes con overrides de LLM → exportar). Nuevas en U11.
  • Dashboards (9) — read/write de los dashboards de analytics del workspace.

Los schemas que siguen vienen directo del código (apps/web/lib/mcp/tools/*); los cambios breaking se anuncian con bump del MCP server.

Todas las tools mutativas requieren idempotency_key (16–128 chars) donde se indique — repetir con la misma key devuelve el mismo run/resultado.


Core tools (8)

ToolPropósitoSide effects
start_draftInicia un draft a partir de un post existente.Encola un run en el job runner.
read_inboxLista el inbox de un pipeline.Solo lectura.
list_postsLista los posts raw de un pipeline. Paginado.Solo lectura.
diagnose_pipelineDevuelve estado, errores y un suggested_action accionable.Solo lectura.
create_pipeline_from_intentCrea un pipeline (o resume uno existente).Persiste el pipeline + arranca el primer scrape.
publish_artifactMarca un artifact como publicado.Mutativo, debe ir tras confirmación humana.
connect_x_accountConecta o rota una credencial de cuenta. Probe sincrónico.Persiste/rota la credencial.
scrape_urlFetch + estructurado de una URL pública vía el servicio de scraping.Persiste el resultado del scrape (y schema, si se generó).

start_draft

Inicia un draft a partir de un post existente del inbox. El run se persiste y aterriza como artifact en estado review cuando el modelo termina; el agente puede pollearlo o suscribirse al webhook riff.ready.

CampoTipoRequiredDescripción
source_post_idstringID del post source. tw_<id> para posts scrapeados, ws_<uuid> para webpage snapshots.
style_referencestring (≤4000)noGuía de estilo libre que el modelo debe imitar.
parent_artifact_idstringnoArtifact padre (rf_<uuid> o bf_<uuid>) si este draft se encadena a uno previo.
idempotency_keystring (16–128)Repetir con la misma key devuelve el mismo run.

read_inbox

Lista el inbox del pipeline — drafts en review, refinements pendientes, runs flaggeados por diagnose.

CampoTipoRequiredDescripción
pipeline_idstringpp_<uuid> o uuid pelado.

list_posts

Lista paginada de source posts ingestados con métricas de engagement (likes/replies/retweets/views).

CampoTipoRequiredDescripción
pipeline_idstringpp_<uuid> o uuid pelado.
cursorstringnoCursor de paginación de un call previo.
limitnumber (1–100)noTamaño de página.
has_artifactbooleannoFiltra posts que ya tienen un artifact (true) o que no (false).

diagnose_pipeline

Reporte estructurado de salud: runs trabados, credenciales faltantes, cool-downs del scraper, etc. Cada issue trae suggested_action y suggested_endpoint.

CampoTipoRequiredDescripción
pipeline_idstringpp_<uuid> o uuid pelado.

create_pipeline_from_intent

Create-or-resume idempotente de un pipeline que trackea un handle de X. Devuelve la referencia del pipeline, arranca el primer scrape.

CampoTipoRequiredDescripción
handlestringHandle a trackear (con o sin @).
intentstring (10–2000)Descripción libre de por qué importa este handle.
toneenumnoneutral | punchy | analytical | snarky | formal.
idempotency_keystring (16–128)Repetir con la misma key resume el mismo pipeline.

Esta tool no acepta source, kind, scope ni auto_fanout. Defaults: source=x, kind=prose, scope=per_post. Para otros shapes usá el CLI.

publish_artifact

Marca un artifact como publicado. El publish real al destino (cuando el pipeline opta in vía auto-fanout) se maneja downstream; esta tool solo registra el go-ahead del operador.

CampoTipoRequiredDescripción
artifact_idstringrf_<uuid> o bf_<uuid> o uuid pelado.
idempotency_keystring (16–128)Repetir con la misma key es no-op.

El artifact debe estar en review/ready — llamarlo en otro estado devuelve error con suggested_action: 'fetch_artifact'.

connect_x_account

Conecta o rota una credencial de cuenta. El probe corre sincrónicamente y la respuesta embebe el resultado.

CampoTipoRequiredDescripción
handlestringHandle sin @, forzado a lowercase server-side.
auth_tokenstringValor de la cookie auth_token.
ct0stringnoCookie ct0 opcional — el scraper la deriva si se omite.
proxy_urlstring (URL)noURL de proxy SOCKS/HTTPS opcional para esta cookie.
idempotency_keystring (16–128)

scrape_url

Fetch de una URL HTTPS pública vía el servicio de scraping. El mode determina el parsing:

CampoTipoRequiredDescripción
urlstring (HTTPS, ≤2048)URL target.
modeenumnomarkdown | css | llm | auto. Default auto (CSS primero, LLM como fallback).
intentstring (1–2000)noRequerido para css/llm/auto salvo que se provea schema_id.
schema_idstringnoReutilizar un schema generado previamente.

Scrapes repetidos para el mismo par (url, intent) pegan al cache después del primer call.


Sessions tools (18)

El canvas de drafting: snapshotteás items upstream en una session, attacheás variantes con LLM y preset por variante, generás rounds, exportás. Ver Sessions para el modelo completo.

Lifecycle

ToolParamsEfecto
session_createname?Crea un canvas vacío para el par (org, user) activo. Devuelve id + name.
session_listlimit (1–50, default 20)Lista sessions ordenadas por last_active_at desc, con conteos de items/variantes.
session_getsessionIdCarga la session completa: items, variantes con rounds, sources, activity reciente.
session_updatesessionId, name (nullable)Renombrar una session.
session_deletesessionIdBorra en cascada session + items + variantes + rounds + exports. Irreversible.

Selection (items)

ToolParamsEfecto
session_add_itemsessionId, upstreamItemId?, sourceId?, sourceKind, externalItemId?, title, snippet, capturedAt, metrics?, raw?Snapshottea un item upstream (X post / webpage / RSS / custom) en la session. Snapshot inmutable.
session_remove_itemsessionId, sessionItemIdBorra un item snapshotteado. El upstream queda intacto.
session_clear_selectionsessionIdRemueve todos los items. Variantes y rounds quedan.

Variants

ToolParamsEfecto
session_add_variantsessionId, presetId, userPresetId?, prompt, style, typeTag, llmCredentialId?Agrega una variante con preset + prompt + style. Arranca en status=idle.
session_update_variantvariantId, prompt?, style?, llmCredentialId?Patchea la config de la variante. Omitir un campo lo deja sin cambios.
session_remove_variantvariantIdBorra la variante. Cascada a rounds + exports.
session_select_roundvariantId, roundIndexCambia el round activo de la variante (base 0, clampea al rango válido).
session_generate_variantvariantId, sessionIdEncola la generación con LLM. Devuelve cuando el round se generó o el status si todavía está queued.
session_generate_allsessionIdEncola generación para todas las variantes de la session.
session_variant_roundsvariantIdLista la historia de rounds (más viejos primero) sin cargar la session completa.

Exports + presets

ToolParamsEfecto
session_export_variantsessionId, variantId, roundId?, format (default markdown)Registra un evento de export (loguea session_export; alimenta el KPI EXPORTS 7D).
session_save_presetname, description, prompt, style, typeTagPersiste la config de una variante como user preset nombrado (scopeado por org + user).

Sources (solo lectura)

ToolParamsEfecto
session_list_sourcesLista las sources conectadas al workspace (X handles, webpages) para el picker de session items.

Dashboards tools (9)

Acceso read/write a los dashboards de analytics del workspace. Los widgets se validan contra el catálogo de datasets en escritura y se resuelven en ejecución.

ToolParamsEfecto
dashboards_listLista los dashboards del workspace activo, ordenados por actualización más reciente.
dashboards_getidCarga el dashboard + todos los widgets en orden de creación. No ejecuta los widgets.
dashboards_createname, description?, templateId?, layout?Provisiona un dashboard nuevo. Con templateId, siembra widgets.
dashboards_deleteidHard-delete del dashboard + cascada a los widgets. Solo el creador puede llamarlo.
dashboards_create_widgetdashboardId, title, type (kpi/timeseries/donut/bar/topN/table), querySpec, position?, visualization?Appendea un widget. Valida querySpec contra el catálogo de datasets.
dashboards_update_widgetwidgetId, title?, querySpec?, position?, visualization?Patchea un widget. Re-valida querySpec.
dashboards_delete_widgetwidgetIdRemueve el widget + la entrada de layout que matchea.
dashboards_list_datasetsDevuelve el catálogo: nombres de métricas, nombres de dimensiones, filters, buckets de groupBy por dataset. Incluye info de tenant scoping.
dashboards_execute_widgetwidgetId, timeRange? (override, no se persiste)Corre el querySpec del widget por el resolver; devuelve QueryResult (current/previous/partial).

Errores comunes

Todas las tools devuelven errores con shape { error: { code, message, suggested_action?, suggested_endpoint? } }. Códigos principales:

  • unauthorized — token inválido o revocado.
  • not_found — el recurso no existe en el deployment.
  • validation_failed — los params no cumplen el schema. message te dice qué falta.
  • state_conflict — el recurso no está en un estado válido para la operación.
  • credential_missing / credential_dead — el scraper no tiene cookies usables. Combinar con connect_x_account.

Los errores incluyen suggested_action cuando hay una acción concreta accionable por el agente sin intervención humana.