Atribu
Servidor MCP

Herramientas disponibles

37 herramientas MCP: resúmenes de rendimiento, análisis de funnel, desgloses de tráfico, análisis de campañas, recorridos de clientes, inteligencia creativa a nivel de workspace, pronósticos, recomendaciones y write-back a Meta CAPI

El servidor MCP de Atribu expone 37 herramientas. Cada herramienta devuelve una respuesta estructurada con un objeto data y un objeto meta que contiene metadatos de la solicitud, frescura de datos y contexto de atribución.

Parámetros compartidos

La mayoría de herramientas aceptan estos parámetros comunes:

ParámetroTipoRequeridoDescripción
workspace_idUUIDNoQué workspace consultar. Se infiere si tienes exactamente uno.
profile_idUUIDNoQué perfil consultar. Se infiere si el workspace tiene exactamente uno.
window_startYYYY-MM-DDInicio del rango de fechas
window_endYYYY-MM-DDFin del rango de fechas
modelstringNoModelo de atribución. Por defecto: last_touch

Modelos de atribución disponibles: last_touch, first_touch, split_50_50, linear, position_based, time_decay, last_non_direct, custom_weighted, engagement_weighted

Dos niveles de scope. La mayoría de herramientas son de perfil: operan sobre un perfil (workspace_id + profile_id, ambos inferidos cuando no hay ambigüedad). Las herramientas de inteligencia creativa de workspace, pronósticos y recomendaciones de más abajo son de workspace: solo toman workspace_id y leen todos los perfiles a los que tienes acceso en ese workspace. Las herramientas de workspace están marcadas con Scope: workspace. En lugar de window_start/window_end, usan una ventana pre-agregada score_window (7d | 14d | 28d | lifetime, por defecto 28d).


Herramientas de descubrimiento

whoami

Identidad, uso y configuración efectiva del token MCP actual. Devuelve scopes, unidades usadas vs límite, tus workspaces y (cuando el scope no es ambiguo) la configuración del workspace activo (pii_mode, mcp_writeback_enabled, tu rol) y la moneda del perfil activo. Llámala una vez por sesión — te dice de antemano si el desenmascaramiento de PII o el write-back funcionarán, para que la herramienta de IA pueda guiar al usuario sin llamadas de prueba y error.

ParámetroTipoRequeridoDescripción
workspace_idUUIDNoOpcional. Si lo pasas (o tienes un solo workspace), se llena active_workspace.
profile_idUUIDNoOpcional. Si lo pasas (o el workspace tiene un solo perfil), se llena active_profile.

Costo: 0 unidades

Devuelve: { token, usage, user, workspaces[], active_workspace, active_profile, server_version }. active_workspace y active_profile son null cuando el scope es ambiguo.


list_workspaces

Lista todos los workspaces a los que tienes acceso. Usa los valores id devueltos como workspace_id en llamadas posteriores.

ParámetroTipoRequerido

Costo: 0 unidades

Devuelve: Array de objetos { id, name, role }.


list_profiles

Lista todos los perfiles dentro de un workspace. Usa los valores id devueltos como profile_id en llamadas posteriores.

ParámetroTipoRequeridoDescripción
workspace_idUUIDNoSe infiere si tienes un workspace

Costo: 0 unidades

Devuelve: Array de objetos { id, name, workspace_id }.


Herramientas de rendimiento

get_performance_summary

KPIs principales para una ventana de fechas más el período previo equivalente. Devuelve tres buckets: cash (ingresos reales, base del ROAS), pipeline (conteos de deals del CRM + suma cruda de value_amount — NO son ingresos) y leads (parte alta del funnel).

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha
modelstringNolast_touch

Costo: 1 unidad

Devuelve:

Respuesta de ejemplo (data, current_period)
{
  "spend": { "amount": 1032.42 },
  "cash": {
    "attributed_revenue": { "amount": 4000 },
    "attributed_conversions": 6,
    "total_conversions": 17,
    "collected": { "amount": 9749 },
    "roas": { "value": 3.87, "formatted": "3.87x" }
  },
  "pipeline": {
    "appointments_booked": 38,
    "closed_won": 0,
    "crm_value_amount_sum": {
      "attributed": { "amount": 76600 },
      "total": { "amount": 79600 }
    },
    "note": "Counts are concrete events. crm_value_amount_sum is the raw sum of whatever the agency entered in their CRM's deal value field — NOT revenue. Never present as a revenue claim without confirming the CRM convention."
  },
  "leads": { "count": 409, "note": "Top of funnel events with no revenue." },
  "traffic": { "visitors": 1550, "pageviews": 2386, "bounce_rate_percent": 87.3 }
}

El crm_value_amount_sum de pipeline NO son ingresos

El campo value_amount del CRM significa lo que la agencia haya configurado — objetivo del deal, estimación de valor de vida del cliente, tamaño del retainer o un valor arbitrario. Usa los conteos (appointments_booked, closed_won) como señal principal. Solo menciona la suma con contexto explícito. Nunca incluyas crm_value_amount_sum en cálculos de ROAS ni lo llames "ingresos" o "ingresos proyectados".


compare_periods

Compara dos ventanas de fechas arbitrarias lado a lado. Útil para comparaciones año contra año, pre/post lanzamiento de campaña o comparaciones estacionales.

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha
prev_window_startfecha
prev_window_endfecha
modelstringNolast_touch

Costo: 1 unidad

Devuelve: Misma estructura que get_performance_summary con objetos current y previous representando las dos ventanas.


Herramientas de campañas

top_campaigns

Top campañas ordenadas por ingresos atribuidos dentro de una ventana de fechas.

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha
modelstringNolast_touch
limitnúmeroNo10 (máx 50)

Costo: 1 unidad

Devuelve: Array de campañas con name, platform_id, spend, revenue, roas, conversions, clicks, impressions.

platform_id

Cada campaña incluye un platform_id que puedes pasar a explain_campaign para un análisis profundo.


top_ad_sets

Top ad sets ordenados por ingresos cash atribuidos. Se sitúa entre top_campaigns (más amplio) y top_creatives (más específico) — responde "¿qué audiencia/ubicación está entregando?" antes de bajar a creativos individuales.

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha
modelstringNolast_touch
limitnúmeroNo10 (máx 50)

Costo: 1 unidad

Requiere: Conexión de Meta Ads

Devuelve: Array de ad sets con ad_set_name, campaign_name (padre), spend, attributed_revenue, roas, attributed_conversions, cac, ctr_percent, impressions, clicks, avg_engagement_score.


top_creatives

Top anuncios individuales ordenados por ROAS, con detalles creativos (URLs de miniaturas, titulares, texto).

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha
modelstringNolast_touch
limitnúmeroNo10 (máx 50)

Costo: 1 unidad

Requiere: Conexión de Meta Ads

Devuelve: Array de anuncios con name, spend, revenue, roas, ctr, thumbnail_url, headline, body.


explain_campaign

Análisis profundo de una sola campaña: métricas principales, tendencia diaria y anuncios constituyentes.

ParámetroTipoRequeridoDefecto
campaign_idstring
window_startfecha
window_endfecha
modelstringNolast_touch

Costo: 2 unidades

El campaign_id puede ser un UUID (ID interno), un platform_id de Meta o un nombre de campaña. La herramienta lo resuelve automáticamente.

Devuelve:

Respuesta de ejemplo (data)
{
  "summary": {
    "name": "Summer Sale - Retargeting",
    "platform_id": "23851234567890",
    "spend": 1200.00,
    "revenue": 5400.00,
    "roas": 4.50,
    "conversions": 28,
    "clicks": 1840,
    "impressions": 42000
  },
  "daily_trend": [
    { "date": "2026-04-01", "spend": 180, "revenue": 720, "clicks": 260 }
  ],
  "ads": [
    { "name": "Video - Testimonial", "spend": 600, "revenue": 3200, "roas": 5.33 }
  ]
}

Herramientas de clientes

explain_customer_journey

Línea temporal completa de eventos para un solo cliente: clics en anuncios, vistas de página, envíos de formularios, conversiones y pagos.

ParámetroTipoRequeridoDefecto
customer_profile_idUUID
include_sensitivebooleanNofalse
cursor_timestringNo
cursor_idUUIDNo
limitnúmeroNo50 (máx 100)

Costo: 2 unidades

La paginación es por cursor: pasa el cursor_time y cursor_id del next_cursor de la respuesta anterior para obtener la siguiente página. No hay filtro por ventana de fechas — la herramienta recorre la línea temporal completa del cliente.

Devuelve: Información del cliente (nombre, email/teléfono enmascarado) más un array de eventos ordenados cronológicamente.

Enmascaramiento de PII

Por defecto, el email y teléfono se enmascaran (ej. j***@e****.com). Para ver valores desenmascarados, pasa include_sensitive: true -- requiere scope mcp:read_pii y modo PII del workspace en full_default. Ver Privacidad y PII.


Herramientas de análisis

compare_attribution_models

Ejecuta la misma ventana de fechas a través de múltiples modelos de atribución para ver cómo cambia la distribución de crédito.

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha
modelsstring[]No["last_touch", "first_touch", "linear", "position_based", "time_decay"]
top_campaigns_limitnúmeroNo5 (máx 20)

Costo: 5 unidades

Devuelve: Un conjunto de resultados por modelo, cada uno con las mismas métricas a nivel de campaña. Compara para entender qué canales subestiman los modelos de un solo toque.


creative_fatigue_check

Detecta anuncios que muestran señales de fatiga: CTR en declive, CPM en aumento o saturación de audiencia comparado con la ventana anterior de igual duración.

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha
modelstringNolast_touch

Costo: 2 unidades

Requiere: Conexión de Meta Ads

Devuelve: Array de anuncios con métricas del período actual vs anterior e indicadores de fatiga.


find_anomalies

Identifica picos o caídas inusuales diarias en gasto, ingresos o tráfico usando análisis de z-score (mediana + MAD).

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha
metricsstring[]No["spend", "cash_revenue", "visitors"]
threshold_sigmanúmeroNo2.0
modelstringNolast_touch

Costo: 2 unidades

Devuelve: Array de días anómalos con nombre de métrica, valor observado, rango esperado y magnitud del z-score.


get_funnel

Funnel de conversión orientado a objetivos para la ventana de fechas. Recorre la progresión canónica de lead-gen lead_created → appointment_booked → showed → qualified → closed_won con conteos por etapa, tasas de conversión etapa a etapa y conteos de abandono. También devuelve buckets de resultados negativos (disqualified, no_show, closed_lost).

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha
scopeall | pipeline_only | contact_onlyNoall

Costo: 1 unidad

scope=pipeline_only restringe a eventos vinculados a un pipeline del CRM (deals en una etapa). scope=contact_only restringe a eventos sin pipeline (solo lead / formularios).

Devuelve:

Respuesta de ejemplo (data)
{
  "scope": "all",
  "window": { "start": "2026-04-01", "end": "2026-04-30" },
  "main_chain": [
    { "key": "lead_created", "label": "Leads", "count": 409, "conversion_rate_from_previous_pct": null, "drop_off_from_previous_count": 0 },
    { "key": "appointment_booked", "label": "Booked", "count": 38, "conversion_rate_from_previous_pct": 9.29, "drop_off_from_previous_count": 371 },
    { "key": "showed", "label": "Showed", "count": 24, "conversion_rate_from_previous_pct": 63.16, "drop_off_from_previous_count": 14 },
    { "key": "qualified", "label": "Qualified", "count": 12, "conversion_rate_from_previous_pct": 50.00, "drop_off_from_previous_count": 12 },
    { "key": "closed_won", "label": "Closed Won", "count": 0, "conversion_rate_from_previous_pct": 0, "drop_off_from_previous_count": 12 }
  ],
  "drop_off_outcomes": [
    { "key": "disqualified", "label": "Disqualified", "count": 7 },
    { "key": "no_show", "label": "No Show", "count": 5 },
    { "key": "closed_lost", "label": "Closed Lost", "count": 3 }
  ],
  "totals": {
    "all_events": 498,
    "leads": 409,
    "closed_won": 0,
    "lead_to_closed_won_rate_pct": 0
  }
}

Los conteos son eventos, no clientes únicos

Un cliente puede aparecer en múltiples etapas. No calcules tasas a nivel de cliente desde estos conteos de eventos. Las tasas etapa a etapa asumen progresión lineal — en la realidad los clientes pueden saltarse etapas o ser reclasificados.

Las etapas solo muestran eventos que también son conversiones

Los conteos incluyen solo eventos cuyo event_key está mapeado en Settings → Outcomes → Conversion Definitions. Si una etapa del CRM como disqualified muestra 0 pero tu equipo la usa (ej. etiquetas "Descualificado", "Lead Abandonado"), falta la definición de conversión. Mapea la clave en Conversion Definitions para que esos eventos aparezcan en el funnel.


get_tracking_breakdown

Top valores por dimensión de tráfico (canal, país, página, navegador, dispositivo, SO, referrer, campaña, etc.) ordenados por visitantes. Devuelve hasta 6 dimensiones en una llamada.

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha
dimensionsstring[]No["channel", "country", "page", "browser"]
limitnúmeroNo10 (máx 50)

Dimensiones disponibles: channel, referrer, campaign, page, entry_page, exit_page, country, region, city, device, browser, os

Costo: 1 unidad

Devuelve:

Respuesta de ejemplo (data)
{
  "breakdowns": {
    "channel": [
      { "dimension_value_key": "paid_social", "label": "Paid Social", "visitors": 820, "visits": 1120, "pageviews": 2400, "bounce_rate_pct": 62.4, "conversions": 14, "conversion_rate_pct": 1.71, "cash_revenue": { "amount": 3200 } }
    ],
    "country": [
      { "dimension_value_key": "US", "label": "United States", "visitors": 540, "visits": 720, "pageviews": 1820, "bounce_rate_pct": 58.1, "conversions": 12, "conversion_rate_pct": 2.22, "cash_revenue": { "amount": 2800 } }
    ]
  },
  "window": { "start": "2026-04-01", "end": "2026-04-30" },
  "dimensions_requested": ["channel", "country"],
  "limit_per_dimension": 10
}

Los ingresos son solo cash

El campo cash_revenue usa únicamente revenue_type='cash' — la misma definición que usa el dashboard para el ROAS. Los valores de deals del CRM / pipeline NO se incluyen aquí.


list_conversions

Lista paginada de conversiones para una ventana de fechas, ordenada por conversion_time DESC. Cada fila lleva el cliente (PII enmascarado por defecto), canal de primer toque, tiempo hasta completar, ingresos, más los totales de vida del cliente.

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha
goalstringNopayment_received
searchstringNo
cursor_timestringNo
cursor_idstringNo
limitnúmeroNo25 (máx 100)
include_sensitivebooleanNofalse

Costo: 1 unidad

goal filtra por event_type (ej. payment_received, lead_created, appointment_booked, closed_won). Pasa all para incluir todos los tipos de conversión. Usa el next_cursor de la respuesta para la siguiente página.

Para la línea temporal completa de UN solo cliente, usa explain_customer_journey.


list_visitors

Roster paginado de visitantes (identificados + anónimos) para una ventana de fechas, ordenado por last_seen_at DESC. Cada fila lleva timestamp de última visita, conteo de sesiones, ingresos cash totales, canal/fuente de la última sesión y dispositivo/geo.

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha
searchstringNo
cursor_timestringNo
cursor_idstringNo
limitnúmeroNo25 (máx 100)
include_sensitivebooleanNofalse

Costo: 1 unidad

is_identified=true significa que el visitante tiene un customer_profile_id (vinculado vía identify() o un evento server-side). False significa solo anónimo. total_revenue es solo cash (revenue_type='cash') y refleja la suma de vida del cliente.


get_attribution_quality

Diagnóstico — ¿qué tan confiables son los datos de atribución en esta ventana de fechas? Devuelve la proporción de eventos relacionados con conversiones con UTMs completos (lo mejor), con solo fbclid (clic de Meta pero sin UTMs) y sin tracking alguno (lo peor).

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha

Costo: 1 unidad

Devuelve:

Respuesta de ejemplo (data)
{
  "window": { "start": "2026-04-01", "end": "2026-04-30" },
  "totals": {
    "total_events": 409,
    "with_full_utms": 248,
    "with_fbclid_only": 102,
    "with_no_tracking": 59
  },
  "percentages": {
    "full_utms_pct": 60.6,
    "fbclid_only_pct": 24.9,
    "no_tracking_pct": 14.4,
    "attributable_coverage_pct": 85.5
  }
}

Heurística

Un attributable_coverage_pct sobre 80% es saludable. Entre 50–80% significa que los números de atribución deben tratarse con cautela. Bajo 50% indica brechas de etiquetado UTM — recomienda una auditoría antes de confiar en reportes a nivel de campaña.


get_engagement_summary

Calidad de engagement de todo el sitio para la ventana de fechas: profundidad de scroll, tiempo en página, rage clicks, dead clicks, completación de formularios, completación de video, errores JS y Core Web Vitals (LCP/FCP/CLS/INP/TTFB). Desglose opcional por página (top N con más engagement) o por día (línea temporal).

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha
breakdown_bynone | page | dayNonone
page_limitnúmeroNo10 (máx 50)

Costo: 1 unidad

Devuelve: summary.attention (scroll, tiempo en página), summary.frustration (rage/dead clicks, errores JS), summary.forms (enviados/abandonados + tasa de completación), summary.video (reproducciones/completaciones + tasa), summary.web_vitals (promedios LCP/FCP/CLS/INP/TTFB + pct LCP bueno/malo). Con breakdown_by='page' agrega pages[]. Con breakdown_by='day' agrega daily[].

Diferente de get_tracking_breakdown

get_tracking_breakdown trata del mix de tráfico (qué canales, países, páginas traen usuarios). get_engagement_summary trata de la calidad de UX (¿los usuarios interactúan? ¿Se frustran? ¿El sitio es rápido?). Los eventos de engagement son solo de visualización — NUNCA se convierten en conversiones y nunca se incluyen en el crédito de atribución.


ad_funnel_diagnosis

Diagnóstico de funnel por anuncio — "¿dónde en el funnel de este anuncio está el problema?" Devuelve una fila por capa del funnel (delivery → attention → retention → click_intent → postclick_messaging → attributed_revenue → platform_diagnostics, las mismas capas con las que se construye el score compuesto).

ParámetroTipoRequeridoDefecto
profile_idUUIDNoSe infiere si el workspace tiene exactamente uno
ad_external_idstring
score_window7d | 14d | 28d | lifetimeNo28d

Costo: 1 unidad

Devuelve: Por capa: el percentile del anuncio dentro de su cohorte, el smoothed_metric subyacente, sample_n, is_weakest_layer (el cuello de botella — percentil más bajo cuando está bajo el 25), diagnostic_codes[] legibles por máquina, y un recommended_priority — uno de fix_offer_or_audience, fix_landing_or_offer, fix_hook, improve_creative_clarity, increase_spend, rework_offer_or_landing o maintain.

Frescura diaria

meta.data_as_of refleja el rebuild diario de scores creativos, no el tiempo de sincronización del conector — los percentiles del funnel se actualizan una vez al día aunque los datos de Meta se hayan sincronizado hace minutos.


Herramientas de mensajería

whatsapp_attribution_summary

Ingresos y conversiones atribuidos a puntos de contacto de WhatsApp (anuncios Click-to-WhatsApp o tráfico con origen WhatsApp).

ParámetroTipoRequeridoDefecto
window_startfecha
window_endfecha

Costo: 2 unidades

Requiere: Integración de WhatsApp

Devuelve: Conteo de conversaciones, conteo de conversiones, ingresos atribuidos a puntos de contacto de WhatsApp.


top_dm_ads

Ranking de anuncios de mensajería (DM Ads) para un perfil, ordenado por costo por conversación de alta intención. Cubre los canales Click-to-Message: ig_ctm, wa_ctwa, lead_dm.

ParámetroTipoRequeridoDefecto
profile_idUUID
date_fromYYYY-MM-DDNohace 28 días
date_toYYYY-MM-DDNohoy
sort_bystringNocost_per_high_intent (high_intent_rate, composite_score, spend, high_intent_conversations)
limitnúmeroNo10 (máx 50)

Costo: 1 unidad

Devuelve: Array de anuncios con high_intent_conversations (intenciones de precio / consulta / demo), high_intent_rate + high_intent_band (confianza de muestra Wilson: low / medium / high), cost_per_high_intent (la métrica estrella), cost_per_conversation, tasas de profundidad de respuesta, ingresos/ROAS atribuidos, citas agendadas, deals cerrados, data_quality_tier, desglose de intenciones y las recomendaciones abiertas que apuntan al anuncio. El PII en las conversaciones de muestra se redacta del lado del servidor.


Inteligencia creativa de workspace

Las herramientas de esta sección (y las de pronóstico y recomendaciones de más abajo) son de workspace: pasa workspace_id (se infiere cuando tienes exactamente uno) y leen todos los perfiles a los que tienes acceso en el workspace. Se apoyan en el feature store creativo, que se re-puntúa a diario — meta.data_as_of refleja el último re-scoring del workspace, no el tiempo de sincronización del conector.

top_workspace_performers

Los anuncios con mejor rendimiento en TODOS los perfiles de clientes de un workspace, puntuados contra creativos comparables (normalización por cohorte, suavizado, etapas de madurez).

ParámetroTipoRequeridoDefecto
score_window7d | 14d | 28d | lifetimeNo28d
limitnúmeroNo10 (máx 50)
profile_idsUUID[]No
objectivesstring[]No
truth_gradesstring[]No— (predicted, attributed, lift)
outcome_kindsstring[]No— (cash, pipeline, messaging, meta, none)
formatsstring[]No
min_spendnúmeroNo
has_videobooleanNo
fatigue_risk_tiersstring[]No— (low, medium, high, critical)
fatigue_statesstring[]No— (active, paused, degraded)

Costo: 1 unidad

Scope: workspace

Devuelve: Cada anuncio lleva tres medidas distintas — nunca las mezcles:

  1. composite_score (0–100) — una mezcla transparente basada en reglas de percentiles de cohorte
  2. top_performer_likelihood (0–1) — una probabilidad (una posibilidad, no una garantía): la salida calibrada del ranker ML cuando score_source='model', si no, derivada del composite_score. Nunca es ROAS.
  3. attributed_revenue / roas — atribución cash real (presente cuando truth_grade='attributed')

Además: primary_outcome_kind (qué métrica destacar por anuncio: cash → ingresos/ROAS, pipeline → outcomes de pipeline atribuidos, messaging → conversaciones iniciadas, meta → las conversiones reportadas por el propio Meta — siempre etiquetadas como atribución de Meta, none → solo el score compuesto), maturity_stage (coldearlymaturecalibrated), reason_codes[] que explican por qué rankea el anuncio, y bloques forecast + fatigue (NULL hasta que el pase de predicción haya puntuado el anuncio).


top_workspace_creative_patterns_v2

Minero de patrones creativos a nivel de workspace: qué patrones estructurales (clúster de arquetipo, arco narrativo, combo de roles del tercio dominante, presencia de roles, bucket de duración de prueba social, hook×claim×CTA) ganan MÁS que la línea base del workspace.

ParámetroTipoRequeridoDefecto
score_window7d | 14d | 28d | lifetimeNo28d
min_cluster_sizenúmeroNo3 (mín 3, máx 50)
profile_idsUUID[]No
objectivesstring[]No
truth_gradesstring[]No
outcome_kindsstring[]No
formatsstring[]No
min_spendnúmeroNo
has_videobooleanNo

Costo: 1 unidad

Scope: workspace

Devuelve: Una fila por (pattern_dim, pattern_value) con sample_n, winner_n, win_rate, workspace_baseline_win_rate, lift_vs_workspace, límites del intervalo de confianza Wilson al 95% y exemplar_ad_external_ids (los 5 anuncios que mejor encarnan el patrón). Un patrón cuyo intervalo de confianza cruza la línea base es ruido de muestreo, no señal. Esto es una señal de win-rate a nivel de patrón, NO ROAS cash — combínalo con top_workspace_performers para el impacto cash por anuncio.


top_workspace_archetype_summary

Los clústeres de arquetipos creativos del workspace — nombrados vía LLM a partir de ejemplares — ordenados por lift sobre la línea base del workspace. Úsalo como titular de "replica estos patrones"; usa top_workspace_creative_patterns_v2 para dimensiones más finas.

ParámetroTipoRequeridoDefecto
score_window7d | 14d | 28d | lifetimeNo28d

Costo: 1 unidad

Scope: workspace

Devuelve: Una fila por clúster de arquetipo con label, description, winning_signal, n_ads, n_winners, win_rate, workspace_baseline_win_rate, lift_vs_workspace, límites de CI Wilson al 95% y los top-5 anuncios ejemplares.


top_workspace_experiments

Experimentos de Meta Conversion-Lift / Split-Test rastreados para el workspace.

ParámetroTipoRequeridoDefecto
experiment_idUUIDNo— (pásalo para obtener el documento de detalle completo de un experimento)

Costo: 1 unidad

Scope: workspace

Devuelve (modo lista): Una fila por experimento con type (LIFT, CONTINUOUS_LIFT_CONFIG, GEO_LIFT, SPLIT_TEST, SPLIT_TEST_V2), derived_state (scheduled / running / observing / results_pending / complete / canceled — derivado de los timestamps de Meta), best_grade (A/B/C) y el estimado puntual de lift primario + límites de CI. El modo detalle (con experiment_id) agrega celdas, objetivos, últimos resultados y las top-10 atribuciones creativas modeladas.

El lift es a nivel de celda; los split tests los calcula Atribu

Meta devuelve lift solo a nivel de celda — el lift por creativo siempre es modelado. Los resultados de SPLIT_TEST los calcula Atribu desde sus propias tablas de hechos (Meta no expone un endpoint de resultados para split tests).


top_workspace_fatigue_risk

Qué anuncios tienen más probabilidad de pausarse en los próximos 30 días, ordenados por hazard_30d_pause × spend — el presupuesto en riesgo si el anuncio se pausa. Solo aparecen anuncios activos en los tiers de fatiga high / critical.

ParámetroTipoRequeridoDefecto
score_window7d | 14d | 28d | lifetimeNo28d
top_nnúmeroNo20 (máx 50)
min_spendnúmeroNo100 (pasa 0 para incluir todos)

Costo: 1 unidad

Scope: workspace

Devuelve: Anuncios ordenados con hazard_30d_pause y hazard_30d_degradation (probabilidades a 30 días del modelo de supervivencia Cox — posibilidades, no temporizadores deterministas), expected_lifespan_days, fatigue_risk_tier, más los totales del workspace total_budget_at_risk (gasto de los anuncios listados) y total_expected_pause_loss_30d (suma de hazard × spend — una cantidad distinta, no las confundas).


workspace_pattern_gaps

Análisis de cobertura de patrones entre perfiles: para cada patrón ganador del workspace, qué perfiles NO tienen ningún anuncio que lo exprese. Responde "¿qué prueba debería correr ahora?" con oportunidades concretas de replicación entre perfiles.

ParámetroTipoRequeridoDefecto
score_window7d | 14d | 28d | lifetimeNo28d
limitnúmeroNo10 (máx 50)
min_liftnúmeroNo0.05 (mínimo lift_vs_workspace para calificar; 0–2)

Costo: 1 unidad

Scope: workspace

Devuelve: Filas ordenadas por lift_vs_workspace DESC, cada una con pattern_dim / pattern_value, el lift + límite inferior del CI, source_profile_ids (donde vive el patrón), gap_profile_ids (perfiles a los que les falta) y anuncios ejemplares.


workspace_historical_lift_band

Distribución histórica de lift de los experimentos Conversion-Lift / Split-Test graduados en el workspace. Ancla las expectativas antes de comprometerse con un nuevo estudio de lift.

ParámetroTipoRequeridoDefecto
profile_idUUIDNo— (limitar al historial de un cliente)
lookback_daysnúmeroNo365 (mín 30, máx 1095)

Costo: 1 unidad

Scope: workspace

Devuelve: min / p25 / p50 / p75 / max de relative_uplift (% de lift sobre la celda de comparación) entre experimentos con derived_state complete o results_pending, más los 5 ejemplares más recientes. Devuelve n_experiments: 0 cuando no hay historial graduado.


experiment_power_calc

Calculadora de poder estadístico para un estudio Conversion-Lift (una celda + holdout). Matemática pura — no lee datos.

ParámetroTipoRequeridoDefecto
baseline_ratenúmero— (0 < p < 1, ej. 0.024 para 2.4%)
daily_spendnúmero
cost_per_samplenúmero
holdout_pctnúmeroNo0.2 (0.05–0.5)
days_to_runnúmeroNo14 (1–180)

Costo: 1 unidad

Scope: workspace

Devuelve: El efecto mínimo detectable (MDE) con 80% de poder / α = 0.05 a dos colas, días hasta poder leer resultados, escenarios de comparación con 0.5× y 2× el gasto, y una recomendación (mantener gasto / duplicar gasto / cohorte demasiado escasa para este diseño).


Herramientas de pronóstico

forecast_workspace_outlook

Pronóstico a nivel de portafolio para los próximos 7 días — la consulta de "¿cómo viene la semana?".

ParámetroTipoRequeridoDefecto
score_window7d | 14d | 28d | lifetimeNo28d

Costo: 1 unidad

Scope: workspace

Devuelve: Impresiones totales + outcomes atribuidos proyectados con bandas de intervalo de predicción al 80% (calibración split-conformal), costo por outcome promedio proyectado, conteos de top performers emergentes (candidatos a escalar) y en riesgo (en fatiga high/critical), un histograma de fatiga por tier, y projected_budget_at_risk (gasto total de los anuncios en fatiga high + critical).

Comportamiento cold-start

Los campos de pronóstico y fatiga vienen del cron del pase de predicción. Los anuncios bajo la puerta de cold-start (menos de 7 días de historia) no tienen pronóstico; los workspaces donde el pase no ha corrido devuelven resultados vacíos con un campo interpretation explicativo.


forecast_ad_trajectory

Detalle por anuncio: scores actuales más el pronóstico a 7 días, hazards de fatiga e historial reciente de entrega — "¿cómo se ve este anuncio la próxima semana?"

ParámetroTipoRequeridoDefecto
profile_idUUID
ad_external_idstring
score_window7d | 14d | 28d | lifetimeNo28d

Costo: 1 unidad

Scope: workspace (profile_id es requerido porque el mismo ad_external_id puede aparecer en múltiples perfiles de un workspace de agencia)

Devuelve: La última fila del feature store del anuncio (gasto, impresiones, scores), outcomes / impresiones / costo por outcome proyectados a 7 días con bandas de intervalo de predicción al 80%, los hazards de pausa + degradación a 30 días y la vida útil esperada, los últimos 14 días de entrega diaria y eventos de ciclo de vida (born / paused / revived / degraded). Los campos de pronóstico/fatiga son NULL para anuncios cold-start o sin puntuar — el campo interpretation explica cuál caso aplica.


compare_forecast_scenarios

Simulador what-if: alimenta valores modificados de gasto / frecuencia a través del forecaster para proyectar "si duplico el presupuesto de este anuncio, ¿cuál es el conteo esperado de outcomes a 7 días?"

ParámetroTipoRequeridoDefecto
profile_idUUID
ad_external_idstring
score_window7d | 14d | 28d | lifetimeNo28d
scenariosobject[]1–5 de { name, spend_7d_override?, frequency_override? }

Costo: 2 unidades

Scope: workspace (profile_id requerido)

Devuelve: La predicción base más, por escenario, el estimado puntual + banda de intervalo de predicción al 80% + delta vs base + un flag out_of_range — true cuando el gasto del escenario es más de 2× o menos de 0.5× el gasto trailing-7d actual del anuncio (el modelo está extrapolando; trata el resultado solo como direccional). Devuelve base null + gated_reason por escenario cuando el anuncio está en cold-start / pausado / degradado.


Herramientas de recomendaciones

list_workspace_recommendations

Las recomendaciones del media buyer de IA en todos los perfiles de un workspace, ordenadas por impacto esperado.

ParámetroTipoRequeridoDefecto
profile_idsUUID[]No
statusesstring[]No["open"] (open, applied, dismissed, superseded, expired, rolled_back)
kindsstring[]No— (scale_winner, pause_underperformer, budget_reallocate_winners, creative_refresh_pre_fatigue)
risk_tiersstring[]No— (safe, medium, manual_only)
cohort_objectivestringNo— (messaging, sales, leads, traffic, awareness)
score_window7d | 14d | 28d | lifetimeNo28d
limitnúmeroNo20 (máx 100)

Costo: 1 unidad

Scope: workspace

Devuelve: Recomendaciones con kind, risk_tier (safe = auto-aplicable si el workspace lo activó, medium = siempre requiere confirmación explícita, manual_only = sin llamada a Meta — handoff a Ads Lab), rationale_text + rationale_jsonb estructurado, suggested_modifications (acción + parámetros), expected_impact_dollars (proyección direccional, no un pronóstico), confidence (0–1) y timestamps de ciclo de vida.


diagnose_recommendation

Diagnóstico completo de una sola recomendación — "¿qué pasó con esta recomendación?" Úsala antes de apply_recommendation para entender intentos previos.

ParámetroTipoRequeridoDefecto
recommendation_idUUID

Costo: 1 unidad

Scope: workspace

Devuelve: La fila de la recomendación (kind / risk tier / status / rationale / suggested modifications / target / impacto / confianza / ciclo de vida), la aplicación más reciente si existe (con el estado de Meta pre-cambio y post-cambio, el resultado de la API de Meta, timestamps de verificación y rollback) y la cadena de auditoría de write-back relacionada, de más reciente a más antigua.


apply_recommendation

Aplica una recomendación contra Meta. Es una herramienta de escritura con el mismo flujo de seguridad de tres pasos y las mismas puertas que send_meta_conversions — consulta la guía de Write-Back.

ParámetroTipoRequeridoDefecto
recommendation_idUUID
modepreview | dry_run | confirm
idempotency_keystringNoSe auto-deriva por (usuario, recomendación, día) cuando se omite
applied_byUUIDNo

Costo: 10 unidades

Scope: workspace

Requiere (para dry_run y confirm): scope mcp:write, write-back del workspace habilitado, rol de propietario/administrador del workspace. preview no necesita ninguno. confirm además requiere que la recomendación esté open y sin expirar.

preview muestra lo que el worker haría (anuncio/ad-set objetivo, llamadas a Meta planeadas, % de cambio de presupuesto) sin efectos secundarios. dry_run registra una fila de auditoría capturando la intención. confirm encola el trabajo para el pipeline worker, que captura el estado de Meta pre-cambio, ejecuta la escritura y verifica que el cambio se aplicó ~5 minutos después. Repetir confirm con la misma clave de idempotencia devuelve la aplicación existente — sin doble escritura.


Herramientas de write-back

send_meta_conversions

Envía conversiones atribuidas a la API de Conversiones de Meta (CAPI) para optimización de entrega de anuncios. Esta herramienta tiene un flujo de seguridad de tres pasos: preview, dry-run, confirm.

Consulta la guía dedicada de Write-Back para el flujo completo, controles de seguridad y ejemplos. apply_recommendation (arriba) es la segunda herramienta de escritura — mismas puertas, mismo rastro de auditoría.

ParámetroTipoRequeridoDefecto
modepreview | dry_run | confirm
window_startfecha
window_endfecha
event_typesstring[]
pixel_idstringPara dry_run/confirm
idempotency_keystringPara confirm
test_event_codestringNo
max_eventsnúmeroNo500 (máx 500)

Costo: 10 unidades

Requiere: Scope mcp:write, conexión de Meta Ads, write-back del workspace habilitado, rol de administrador del workspace.


Envelope de respuesta

Cada herramienta devuelve un envelope consistente:

Estructura de respuesta
{
  "data": { },
  "meta": {
    "request_id": "01968a3b-...",
    "workspace_id": "...",
    "profile_id": "...",
    "window_start": "2026-04-01",
    "window_end": "2026-04-14",
    "attribution_model": "last_touch",
    "currency": "USD",
    "data_as_of": "2026-04-14T18:30:00Z",
    "freshness_by_provider": {
      "meta": "2026-04-14T18:30:00Z",
      "ghl": "2026-04-14T17:00:00Z"
    },
    "data_freshness_warning": null,
    "record_count": 12,
    "pii_level_applied": "masked"
  }
}
Campo metaDescripción
request_idID único para depuración y soporte
data_as_ofTimestamp de sincronización más antiguo entre los proveedores requeridos
freshness_by_providerTiempo de última sincronización por proveedor
data_freshness_warningAdvertencia legible si los datos están obsoletos (>6 horas)
pii_level_appliedmasked o full -- qué nivel de PII se usó realmente

Relacionado

En esta página