Referencia de Herramientas MCP
Esta página documenta todas las 77 herramientas MCP disponibles a través del servidor de análisis de Zenovay. Cada herramienta incluye sus parámetros, una solicitud JSON-RPC de ejemplo y una respuesta de ejemplo.
URL del servidor: https://api.zenovay.com/mcp
Transporte: HTTP transmisible (JSON-RPC 2.0)
Encabezado de autenticación: Authorization: Bearer zv_YOUR_API_KEY
Todas las herramientas requieren una clave de API válida con MCP habilitado. Las herramientas de escritura (marcadas con requiere read_write) devuelven un error en modo de solo lectura. Consulte Permisos y límites para la lista completa.
Referencia Rápida para Asistentes de IA
Utilice esta sección para comprender rápidamente el servidor MCP de Zenovay. Cada solicitud usa este sobre JSON-RPC:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "TOOL_NAME",
"arguments": { ... }
}
}Primer paso en cada sesión: Llame a list_websites (sin argumentos) para descubrir IDs de sitios web. Casi toda herramienta requiere un parámetro website_id.
Las 77 herramientas de un vistazo:
| # | Herramienta | Categoría | Costo | Descripción |
|---|---|---|---|---|
| 1 | query_analytics | analytics | 3 | Consulta de análisis en lenguaje natural |
| 2 | get_visitors | analytics | 1 | Estadísticas de visitantes con comparación de período opcional |
| 3 | get_top_pages | analytics | 1 | Páginas más visitadas clasificadas por recuento de visitantes |
| 4 | get_traffic_sources | analytics | 1 | Desglose de fuentes de tráfico / referencias |
| 5 | get_geographic_data | analytics | 1 | Desglose de país + ciudad opcional |
| 6 | get_technology_breakdown | analytics | 1 | Dispositivos, navegadores, sistemas operativos |
| 7 | get_realtime_visitors | analytics | 1 | Visitantes actualmente activos (últimos 5 min) |
| 8 | compare_periods | analytics | 1 | Comparar métricas entre dos períodos de tiempo |
| 9 | get_funnel_analysis | advanced | 1 | Datos de conversión paso a paso del embudo |
| 10 | get_goals | advanced | 1 | Objetivos activos con tasas de finalización |
| 11 | get_session_replays | advanced | 1 | Lista de grabaciones de reproducción de sesión (Pro+) |
| 12 | get_heatmap_data | advanced | 1 | Datos de interacción de mapa de calor por página (Pro+) |
| 13 | get_errors | advanced | 1 | Seguimiento de errores de JavaScript |
| 14 | get_b2b_companies | advanced | 1 | Identificación de empresa B2B mediante búsqueda inversa de IP |
| 15 | get_revenue | advanced | 1 | Totales de ingresos + desgloses (Pro+) |
| 16 | get_performance_metrics | advanced | 1 | Core Web Vitals (LCP, CLS, INP, FCP, TTFB) |
| 17 | get_insights | ai_insights | 1 | Perspectivas accionables generadas por IA |
| 18 | get_anomalies | ai_insights | 1 | Anomalías de métrica detectadas |
| 19 | get_weekly_digest | ai_insights | 1 | Resumen de rendimiento semanal (esta vs última semana) |
| 20 | get_recommendations | ai_insights | 1 | Recomendaciones de optimización impulsadas por IA |
| 21 | list_websites | management | 1 | Sitios web accesibles de lista (¡llame primero!) |
| 22 | create_goal | management | 1 | Crear objetivo personalizado (requiere read_write) |
| 23 | manage_funnel | management | 1 | Crear/actualizar embudo (requiere read_write) |
| 24 | export_data | management | 1 | Exportar análisis en JSON o CSV (Scale+) |
| 25 | get_api_usage | management | 1 | Verificar cuota diaria restante |
| 26 | get_website_settings | management | 1 | Obtener configuración del sitio web |
| 27 | update_website_settings | management | 1 | Actualizar configuración del sitio web (requiere read_write) |
| 28 | toggle_public_dashboard | management | 1 | Habilitar/deshabilitar panel público (requiere read_write) |
| 29 | toggle_cookieless_tracking | management | 1 | Habilitar/deshabilitar modo sin cookies (requiere read_write, Pro+) |
| 30 | get_tracking_code | management | 1 | Obtener el fragmento de código de seguimiento para un sitio web |
| 31 | regenerate_tracking_code | management | 1 | Generar un nuevo código de seguimiento (requiere read_write) |
| 32 | list_goals | management | 1 | Enumerar todos los objetivos de un sitio web |
| 33 | update_goal | management | 1 | Actualizar un objetivo existente (requiere read_write) |
| 34 | delete_goal | management | 1 | Eliminar un objetivo (requiere read_write) |
| 35 | toggle_goal | management | 1 | Habilitar o deshabilitar un objetivo (requiere read_write) |
| 36 | list_funnels | management | 1 | Enumerar todos los embudos para un sitio web |
| 37 | delete_funnel | management | 1 | Eliminar un embudo (requiere read_write) |
| 38 | delete_website | management | 1 | Eliminar permanentemente un sitio web (requiere read_write, full_access) |
| 39 | add_ip_exclusion | settings | 1 | Agregar IP a lista de exclusión (requiere read_write) |
| 40 | remove_ip_exclusion | settings | 1 | Eliminar IP de lista de exclusión (requiere read_write) |
| 41 | add_path_exclusion | settings | 1 | Agregar patrón de ruta a exclusiones (requiere read_write) |
| 42 | remove_path_exclusion | settings | 1 | Eliminar ruta de exclusiones (requiere read_write) |
| 43 | list_exclusions | settings | 1 | Enumerar todas las exclusiones de IP y ruta |
| 44 | get_notification_settings | settings | 1 | Obtener preferencias de notificación |
| 45 | update_notification_settings | settings | 1 | Actualizar preferencias de notificación (requiere read_write) |
| 46 | get_team_members | team | 1 | Enumerar miembros del equipo (requiere full_access) |
| 47 | invite_team_member | team | 1 | Invitar a un nuevo miembro del equipo (requiere read_write, full_access, Pro+) |
| 48 | remove_team_member | team | 1 | Eliminar un miembro del equipo (requiere read_write, full_access) |
| 49 | create_website | management | 1 | Crear un nuevo sitio web (requiere read_write, full_access) |
| 50 | list_api_keys | api_keys | 1 | Enumerar todas las claves de API para el equipo |
| 51 | create_api_key | api_keys | 1 | Crear una nueva clave de API (requiere read_write) |
| 52 | revoke_api_key | api_keys | 1 | Revocar una clave de API (requiere read_write) |
| 53 | get_api_key_details | api_keys | 1 | Obtener detalles para una clave de API específica |
| 54 | update_api_key_permissions | api_keys | 1 | Actualizar permisos de clave de API (requiere read_write) |
| 55 | list_uptime_monitors | uptime | 1 | Enumerar todos los monitores de tiempo de actividad |
| 56 | get_uptime_status | uptime | 1 | Obtener estado actual de un monitor |
| 57 | create_uptime_monitor | uptime | 1 | Crear un nuevo monitor de tiempo de actividad (requiere read_write) |
| 58 | delete_uptime_monitor | uptime | 1 | Eliminar un monitor de tiempo de actividad (requiere read_write) |
| 59 | get_uptime_history | uptime | 1 | Obtener historial de tiempo de actividad y registro de incidentes |
| 60 | update_website_name | management | 1 | Actualizar nombre para mostrar del sitio web (requiere read_write) |
| 61 | update_website_timezone | management | 1 | Actualizar zona horaria del sitio web (requiere read_write) |
| 62 | update_website_domain | management | 1 | Actualizar dominio del sitio web (requiere read_write) |
| 63 | pause_tracking | management | 1 | Pausar seguimiento de análisis (requiere read_write) |
| 64 | resume_tracking | management | 1 | Reanudar seguimiento de análisis (requiere read_write) |
| 65 | schedule_report | management | 1 | Programar informe de análisis recurrente (requiere read_write) |
| 66 | get_report_schedule | management | 1 | Obtener configuración de informe programado |
| 67 | cancel_report | management | 1 | Cancelar informe programado (requiere read_write) |
| 68 | get_export_history | management | 1 | Obtener historial de exportación de datos |
| 69 | get_data_retention | management | 1 | Obtener política de retención de datos para el sitio web |
| 70 | set_revenue_currency | settings | 1 | Establecer moneda de ingresos (requiere read_write) |
| 71 | get_revenue_settings | settings | 1 | Obtener configuración de ingresos (moneda, asignación de campos) |
| 72 | add_allowed_domain | settings | 1 | Agregar dominio a lista blanca CORS (requiere read_write) |
| 73 | remove_allowed_domain | settings | 1 | Eliminar dominio de lista blanca CORS (requiere read_write) |
| 74 | list_allowed_domains | settings | 1 | Enumerar dominios en lista blanca CORS |
| 75 | request_data_deletion | settings | 1 | Eliminar datos de visitantes para GDPR (requiere read_write) |
| 76 | get_retention_data | advanced | 1 | Análisis de cohorte de retención (Pro+) |
| 77 | get_user_profiles | analytics | 1 | Perfiles de visitantes con historial de sesión |
Valores comunes de time_range: 24h, 7d, 30d, 90d, 1y (predeterminado: 7d para la mayoría de herramientas)
Patrones Comunes
Antes de sumergirse en herramientas individuales, aquí hay flujos de trabajo comunes de múltiples herramientas:
Descubrimiento de sitios web + análisis:
list_websites— encontrar sus IDs de sitios webget_visitors— obtener descripción general del tráficoget_top_pages— ver qué páginas funcionan mejorget_traffic_sources— entender de dónde viene el tráfico
Auditoría de rendimiento:
list_websites— obtener ID de sitio webget_performance_metrics— verificar Core Web Vitalsget_errors— encontrar errores de JavaScriptget_insights— ver recomendaciones generadas por IA
Revisión semanal:
get_weekly_digest— comparación automatizada de semana a semanaget_anomalies— comprobar patrones inusualescompare_periods— inmersión profunda en métricas específicas
Herramientas de Análisis
Todas las herramientas de análisis aplican la ventana de retención de datos de su plan. Las consultas que solicitan datos más allá de su límite de retención se fijan automáticamente, y la respuesta incluye un campo retention_note. Consulte Aplicación de plan para límites de retención por plan.
1. query_analytics
Realice una pregunta en lenguaje natural sobre sus datos de análisis. Esta es la herramienta más flexible — úsela cuando otras herramientas específicas no encajen.
Costo: 3 consultas
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
question | string | Sí | Pregunta en lenguaje natural (máx 500 caracteres) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "query_analytics",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"question": "How many visitors did I have this week?"
}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [{
"type": "text",
"text": {
"intent": "visitor_count",
"confidence": 0.95,
"time_range": "7d",
"results": { "total_visitors": 1250, "unique_visitors": 980 },
"summary": "You had 1,250 total visitors (980 unique) in the last 7 days.",
"suggestions": [
"How many visitors did I have this week?",
"What are my top pages?",
"Where are my visitors from?",
"What devices do visitors use?"
]
}
}]
}
}2. get_visitors
Obtenga estadísticas de visitantes para un sitio web con comparación de período opcional.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
time_range | string | No | 7d | Rango de tiempo: 24h, 7d, 30d, 90d, 1y |
compare_with_previous | boolean | No | false | Incluir comparación con período anterior |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_visitors",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"time_range": "7d",
"compare_with_previous": true
}
}
}{
"summary": {
"total_visitors": 1250,
"unique_visitors": 980,
"page_views": 3400,
"bounce_rate": 42.5,
"avg_session_duration": 185.3
},
"daily_stats": [
{ "date": "2026-02-27", "visitors": 180, "unique_visitors": 140, "page_views": 490, "bounce_rate": 41.2 },
{ "date": "2026-02-28", "visitors": 195, "unique_visitors": 155, "page_views": 510, "bounce_rate": 43.1 }
],
"comparison": {
"previous_period": { "start": "2026-02-20", "end": "2026-02-26" },
"previous_summary": {
"total_visitors": 1100,
"unique_visitors": 870,
"page_views": 3100,
"bounce_rate": 44.8
},
"changes": {
"visitors_pct": 13.64,
"unique_visitors_pct": 12.64,
"page_views_pct": 9.68,
"bounce_rate_pct": -5.13
}
}
}3. get_top_pages
Obtenga las páginas más visitadas clasificadas por recuento de visitantes.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
time_range | string | No | 7d | Rango de tiempo: 24h, 7d, 30d, 90d, 1y |
limit | number | No | 20 | Máx páginas a devolver (1-100) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_top_pages",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"time_range": "30d",
"limit": 5
}
}
}{
"pages": [
{ "url": "/", "visitors": 520, "percentage": 41.6 },
{ "url": "/pricing", "visitors": 180, "percentage": 14.4 },
{ "url": "/features", "visitors": 145, "percentage": 11.6 },
{ "url": "/docs", "visitors": 110, "percentage": 8.8 },
{ "url": "/blog/analytics-guide", "visitors": 95, "percentage": 7.6 }
],
"total_pages": 47
}4. get_traffic_sources
Obtenga fuentes de tráfico que muestren de dónde vienen los visitantes.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
time_range | string | No | 7d | Rango de tiempo: 24h, 7d, 30d, 90d, 1y |
limit | number | No | 20 | Máx fuentes a devolver (1-100) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_traffic_sources",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"time_range": "30d"
}
}
}{
"sources": [
{ "source": "Direct", "visitors": 450, "percentage": 36.0 },
{ "source": "google.com", "visitors": 320, "percentage": 25.6 },
{ "source": "twitter.com", "visitors": 85, "percentage": 6.8 },
{ "source": "github.com", "visitors": 60, "percentage": 4.8 }
],
"total_sources": 23
}5. get_geographic_data
Obtenga desglose geográfico por país con detalle a nivel de ciudad opcional.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
time_range | string | No | 7d | Rango de tiempo: 24h, 7d, 30d, 90d, 1y |
limit | number | No | 20 | Máx entradas (1-100) |
include_cities | boolean | No | false | Incluir desglose a nivel de ciudad por país |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_geographic_data",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"include_cities": true,
"limit": 3
}
}
}{
"countries": [
{
"country_code": "US",
"country_name": "United States",
"visitors": 520,
"percentage": 41.6,
"cities": [
{ "city": "San Francisco", "visitors": 85 },
{ "city": "New York", "visitors": 72 }
]
},
{
"country_code": "DE",
"country_name": "Germany",
"visitors": 180,
"percentage": 14.4,
"cities": [
{ "city": "Berlin", "visitors": 45 },
{ "city": "Munich", "visitors": 32 }
]
}
],
"total_countries": 28
}6. get_technology_breakdown
Obtenga desglose de tecnología del visitante: dispositivos, navegadores y sistemas operativos.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
time_range | string | No | 7d | Rango de tiempo: 24h, 7d, 30d, 90d, 1y |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_technology_breakdown",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"devices": [
{ "name": "desktop", "visitors": 780, "percentage": 62.4 },
{ "name": "mobile", "visitors": 390, "percentage": 31.2 },
{ "name": "tablet", "visitors": 80, "percentage": 6.4 }
],
"browsers": [
{ "name": "Chrome", "visitors": 625, "percentage": 50.0 },
{ "name": "Safari", "visitors": 300, "percentage": 24.0 },
{ "name": "Firefox", "visitors": 150, "percentage": 12.0 }
],
"operating_systems": [
{ "name": "Windows", "visitors": 450, "percentage": 36.0 },
{ "name": "macOS", "visitors": 350, "percentage": 28.0 },
{ "name": "iOS", "visitors": 250, "percentage": 20.0 },
{ "name": "Android", "visitors": 140, "percentage": 11.2 }
],
"total_visitors": 1250
}7. get_realtime_visitors
Obtenga visitantes actualmente activos (visitados en los últimos 5 minutos).
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_realtime_visitors",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"active_visitors": 12,
"recent_visitors": [
{
"country_name": "United States",
"page_url": "/pricing",
"device_type": "desktop",
"browser": "Chrome"
},
{
"country_name": "Germany",
"page_url": "/",
"device_type": "mobile",
"browser": "Safari"
}
]
}8. compare_periods
Compare métricas de análisis entre dos períodos de tiempo.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
current_period | string | No | 7d | Período actual: 24h, 7d, 30d, 90d |
comparison_period | string | No | previous | Comparación: previous, same_period_last_month, same_period_last_year |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "compare_periods",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"current_period": "30d",
"comparison_period": "same_period_last_month"
}
}
}{
"current": {
"period": { "start": "2026-02-04", "end": "2026-03-06" },
"visitors": 3800,
"unique_visitors": 2900,
"page_views": 10200,
"bounce_rate": 42.5,
"avg_session_duration": 185.3,
"days": 30
},
"comparison": {
"period": { "start": "2026-01-05", "end": "2026-02-04" },
"type": "same_period_last_month",
"visitors": 3200,
"unique_visitors": 2500,
"page_views": 8800,
"bounce_rate": 45.1,
"avg_session_duration": 170.8,
"days": 30
},
"changes": {
"visitors_pct": 18.75,
"unique_visitors_pct": 16.0,
"pageviews_pct": 15.91,
"bounce_rate_pct": -5.76,
"avg_session_duration_pct": 8.49
}
}Herramientas Avanzadas
9. get_funnel_analysis
Obtenga datos de análisis de embudo. Sin un funnel_id, enumera todos los embudos. Con uno, devuelve datos de conversión paso a paso.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
funnel_id | string | No | — | UUID de embudo para análisis detallado de pasos |
time_range | string | No | 30d | Rango de tiempo: 24h, 7d, 30d, 90d, 1y |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_funnel_analysis",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"funnels": [
{ "id": "f1a2b3c4-...", "name": "Signup Flow", "created_at": "2026-01-15T10:00:00Z" },
{ "id": "f5d6e7f8-...", "name": "Checkout Flow", "created_at": "2026-02-01T14:30:00Z" }
]
}{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_funnel_analysis",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"funnel_id": "f1a2b3c4-..."
}
}
}{
"funnel": { "id": "f1a2b3c4-...", "name": "Signup Flow" },
"steps": [
{ "name": "Landing Page", "order": 1, "visitors": 500, "conversion_rate": 100 },
{ "name": "Signup Form", "order": 2, "visitors": 320, "conversion_rate": 64 },
{ "name": "Email Verification", "order": 3, "visitors": 280, "conversion_rate": 56 },
{ "name": "Onboarding Complete", "order": 4, "visitors": 210, "conversion_rate": 42 }
]
}10. get_goals
Obtenga objetivos activos con recuentos de finalización y tasas de conversión.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
time_range | string | No | 30d | Rango de tiempo: 24h, 7d, 30d, 90d, 1y |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_goals",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"goals": [
{ "id": "g1...", "name": "Newsletter Signup", "goal_type": "url_match", "is_active": true, "completions": 145, "conversion_rate": 3.82 },
{ "id": "g2...", "name": "Pricing Click", "goal_type": "element_click", "is_active": true, "completions": 89, "conversion_rate": 2.34 }
]
}11. get_session_replays
Enumere grabaciones de reproducción de sesión. Filtrar por dispositivo o país.
Costo: 1 consulta | Requiere: Pro+ (marca de característica sessionReplay)
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
limit | number | No | 20 | Sesiones a devolver (1-50) |
device_type | string | No | — | Filtro: desktop, mobile, tablet |
country_code | string | No | — | Código de país ISO (ej. US, DE) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_session_replays",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"device_type": "mobile",
"limit": 5
}
}
}{
"sessions": [
{
"id": "sr1...",
"session_id": "sess_abc123",
"visitor_id": "v1...",
"duration_ms": 45200,
"page_count": 4,
"had_interaction": true,
"started_at": "2026-03-05T14:22:00Z"
}
],
"total": 23
}12. get_heatmap_data
Obtenga datos de interacción de mapa de calor por página.
Costo: 1 consulta | Requiere: Pro+ (marca de característica heatmaps)
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
page_url | string | No | — | Filtrar a una URL de página específica |
limit | number | No | 20 | Páginas a devolver (1-50) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_heatmap_data",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"pages": [
{ "page_url": "/", "total_interactions": 2340, "unique_visitors": 890, "last_updated": "2026-03-05T18:00:00Z" },
{ "page_url": "/pricing", "total_interactions": 1560, "unique_visitors": 620, "last_updated": "2026-03-05T17:45:00Z" }
]
}13. get_errors
Obtenga errores de JavaScript rastreados para un sitio web.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
status | string | No | open | Filtro: open, resolved, ignored |
limit | number | No | 50 | Errores a devolver (1-100) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_errors",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"status": "open"
}
}
}{
"errors": [
{
"id": "e1...",
"message": "TypeError: Cannot read property 'map' of undefined",
"type": "TypeError",
"occurrence_count": 45,
"first_seen": "2026-02-28T10:15:00Z",
"last_seen": "2026-03-05T22:30:00Z",
"is_resolved": false
}
],
"total": 8
}14. get_b2b_companies
Identifique empresas B2B que visitan su sitio web mediante búsqueda inversa de IP.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
limit | number | No | 20 | Empresas a devolver (1-100) |
sort_by | string | No | last_seen | Ordenar: visits, last_seen, confidence |
industry | string | No | — | Filtrar por industria (ej. Technology) |
min_visits | number | No | 1 | Recuento mínimo de visitas |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_b2b_companies",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"sort_by": "visits",
"min_visits": 3
}
}
}{
"companies": [
{
"name": "Acme Corp",
"domain": "acme.com",
"industry": "Technology",
"employee_count": 500,
"visit_count": 12,
"last_visit": "2026-03-05T16:00:00Z",
"confidence_score": 0.92
}
]
}15. get_revenue
Obtenga análisis de ingresos con totales y desgloses.
Costo: 1 consulta | Requiere: Pro+ (marca de característica revenueAttribution)
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
time_range | string | No | 30d | Rango de tiempo: 24h, 7d, 30d, 90d, 1y |
group_by | string | No | day | Agrupación: day, week, month, source |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_revenue",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"group_by": "source"
}
}
}{
"total_revenue": 12450.00,
"transaction_count": 89,
"avg_order_value": 139.89,
"currency": "USD",
"breakdown": [
{ "source": "google.com", "revenue": 5200.00, "transactions": 38 },
{ "source": "Direct", "revenue": 4100.00, "transactions": 30 },
{ "source": "twitter.com", "revenue": 1850.00, "transactions": 12 }
]
}16. get_performance_metrics
Obtenga Core Web Vitals y métricas de rendimiento con desgloses de percentiles.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
time_range | string | No | 7d | Rango de tiempo: 24h, 7d, 30d, 90d, 1y |
page_url | string | No | — | Filtrar a una página específica |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_performance_metrics",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"lcp": { "p50": 1800, "p75": 2200, "p90": 3100, "rating": "good", "sample_count": 450 },
"cls": { "p50": 0.05, "p75": 0.08, "p90": 0.15, "rating": "good", "sample_count": 450 },
"inp": { "p50": 120, "p75": 180, "p90": 280, "rating": "good", "sample_count": 420 },
"fcp": { "p50": 1200, "p75": 1600, "p90": 2400, "rating": "good", "sample_count": 450 },
"ttfb": { "p50": 350, "p75": 600, "p90": 950, "rating": "good", "sample_count": 450 }
}Umbrales de calificación:
| Métrica | Bueno | Necesita Mejora | Deficiente |
|---|---|---|---|
| LCP | ≤ 2500ms | ≤ 4000ms | > 4000ms |
| CLS | ≤ 0.1 | ≤ 0.25 | > 0.25 |
| INP | ≤ 200ms | ≤ 500ms | > 500ms |
| FCP | ≤ 1800ms | ≤ 3000ms | > 3000ms |
| TTFB | ≤ 800ms | ≤ 1800ms | > 1800ms |
Herramientas de Perspectivas de IA
17. get_insights
Recupere perspectivas generadas por IA sobre el rendimiento del sitio web.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
severity | string | No | — | Filtro: critical, warning, info |
status | string | No | active | Filtro: active, acknowledged, resolved |
limit | number | No | 10 | Máx perspectivas (1-50) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_insights",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"severity": "critical"
}
}
}{
"website": { "id": "2ea8af07-...", "domain": "example.com" },
"insights": [
{
"id": "i1...",
"title": "Bounce rate spike on /pricing",
"description": "Bounce rate on the pricing page increased by 35% compared to last week. Consider reviewing recent changes.",
"severity": "critical",
"type": "bounce_rate",
"created_at": "2026-03-05T08:00:00Z"
}
],
"summary": { "total": 3, "critical": 1, "warning": 1, "info": 1 }
}18. get_anomalies
Recupere anomalías detectadas — desviaciones inusuales en métricas.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
severity | string | No | — | Filtro: critical, warning, info |
metric | string | No | — | Filtrar por métrica (ej. visitors, bounce_rate) |
limit | number | No | 10 | Máx anomalías (1-50) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_anomalies",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"website": { "id": "2ea8af07-...", "domain": "example.com" },
"anomalies": [
{
"id": "a1...",
"metric_name": "visitors",
"expected_value": 180,
"actual_value": 45,
"deviation_pct": -75.0,
"severity": "critical",
"detected_at": "2026-03-04T00:00:00Z",
"is_resolved": false
}
],
"total": 2
}19. get_weekly_digest
Genere un resumen de rendimiento semanal comparando esta semana vs la semana pasada.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_weekly_digest",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"website": { "id": "2ea8af07-...", "domain": "example.com" },
"this_week": { "visitors": 1250, "pageviews": 3400, "sessions": 980, "bounce_rate": 42.5, "avg_duration": 185 },
"last_week": { "visitors": 1100, "pageviews": 3100, "sessions": 870, "bounce_rate": 44.8, "avg_duration": 170 },
"changes": {
"visitors": 13.64,
"pageviews": 9.68,
"sessions": 12.64,
"bounce_rate": -5.13,
"avg_duration": 8.82
},
"top_pages": [
{ "path": "/", "views": 520 },
{ "path": "/pricing", "views": 180 }
],
"top_countries": [
{ "country": "US", "visitors": 520 },
{ "country": "DE", "visitors": 180 }
]
}20. get_recommendations
Obtenga recomendaciones de optimización impulsadas por IA.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
category | string | No | — | Filtro: performance, engagement, conversion, seo |
limit | number | No | 5 | Máx recomendaciones (1-20) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_recommendations",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"category": "performance"
}
}
}{
"website": { "id": "2ea8af07-...", "domain": "example.com" },
"recommendations": [
{
"id": "r1...",
"title": "Optimize Largest Contentful Paint",
"description": "Your LCP p75 is 3200ms (needs improvement). Consider lazy-loading below-fold images and preloading critical assets.",
"category": "performance",
"priority": "high",
"impact": "Improving LCP to under 2500ms could reduce bounce rate by ~10%"
}
],
"total": 3
}Herramientas de Gestión
21. list_websites
Enumera todos los sitios web accesibles por la clave API actual.
Costo: 1 consulta
Esta herramienta no toma parámetros. Las claves de acceso completo ven todos los sitios web del equipo; las claves de alcance de sitio ven solo su sitio web asignado.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_websites",
"arguments": {}
}
}{
"websites": [
{
"id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"domain": "example.com",
"name": "My Website",
"tracking_code": "zv_abc123",
"is_active": true,
"created_at": "2025-06-15T10:00:00Z"
}
],
"total": 1
}22. create_goal
Crea un objetivo de conversión personalizado. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
name | string | Sí | Nombre del objetivo (máx. 100 caracteres) |
goal_type | string | Sí | url_match, element_click, o custom_event |
url_pattern | string | Para url_match | Patrón de URL a coincidir |
url_match_type | string | No | exact, contains, starts_with, ends_with, regex (por defecto: contains) |
css_selector | string | Para element_click | Selector CSS del elemento |
event_name | string | Para custom_event | Nombre de evento personalizado a rastrear |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_goal",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Newsletter Signup",
"goal_type": "url_match",
"url_pattern": "/thank-you",
"url_match_type": "contains"
}
}
}{
"goal": {
"id": "g1a2b3c4-...",
"name": "Newsletter Signup",
"goal_type": "url_match",
"is_active": true,
"created_at": "2026-03-06T12:00:00Z"
}
}23. manage_funnel
Crea o actualiza un embudo de conversión. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
name | string | Sí | Nombre del embudo |
steps | array | Sí | 2-10 pasos ordenados (ver abajo) |
funnel_id | string | No | UUID del embudo existente a actualizar |
Objeto de paso:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
step_name | string | Sí | Nombre de visualización |
step_type | string | Sí | url_match, element_click, custom_event |
url_pattern | string | No | Patrón de URL (para url_match) |
url_match_type | string | No | exact, contains, starts_with, ends_with, regex |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "manage_funnel",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Checkout Flow",
"steps": [
{ "step_name": "Product Page", "step_type": "url_match", "url_pattern": "/products" },
{ "step_name": "Add to Cart", "step_type": "custom_event", "url_pattern": "add_to_cart" },
{ "step_name": "Checkout", "step_type": "url_match", "url_pattern": "/checkout" },
{ "step_name": "Purchase Complete", "step_type": "url_match", "url_pattern": "/order-confirmation" }
]
}
}
}{
"funnel": {
"id": "f1a2b3c4-...",
"name": "Checkout Flow",
"steps_count": 4,
"created_at": "2026-03-06T12:00:00Z"
}
}24. export_data
Exporta datos analíticos en formato JSON o CSV.
Costo: 1 consulta | Requiere: Scale+ (indicador de función dataExport)
| Parámetro | Tipo | Obligatorio | Por defecto | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | UUID del sitio web |
format | string | No | json | Formato de salida: csv, json |
metrics | array | No | ["visitors","pageviews","unique_visitors"] | Métricas a incluir |
time_range | string | No | 30d | Rango de tiempo: 7d, 30d, 90d, 1y |
Métricas disponibles: visitors, pageviews, unique_visitors, bounce_rate, avg_session_duration
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "export_data",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"format": "csv",
"metrics": ["visitors", "pageviews", "bounce_rate"],
"time_range": "30d"
}
}
}{
"format": "csv",
"time_range": "30d",
"data": "date,visitors,page_views,bounce_rate\n2026-02-04,120,340,42.5\n2026-02-05,135,380,41.2\n...",
"total_rows": 30
}25. get_api_usage
Verifica el uso actual de la clave API y la cuota restante.
Costo: 1 consulta
Esta herramienta no toma parámetros.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_api_usage",
"arguments": {}
}
}{
"api_key": {
"id": "key_abc123",
"name": "Production Key",
"permission": "full_access"
},
"usage": {
"monthly_requests": 1250,
"total_requests": 8400
},
"mcp": {
"queries_today": 15,
"queries_limit": 500,
"reset_at": "2026-03-07T00:00:00Z"
},
"subscription": {
"tier": "Scale"
}
}26. get_website_settings
Obtiene la configuración y ajustes de un sitio web.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_website_settings",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"website": {
"id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"domain": "example.com",
"name": "My Website",
"is_active": true,
"created_at": "2025-06-15T10:00:00Z"
},
"settings": {
"public_dashboard_enabled": false,
"public_dashboard_url": null,
"cookieless_tracking": false,
"tracking_code": "zv_abc123",
"timezone": "America/New_York",
"data_retention_days": 730,
"allowed_domains": ["example.com", "www.example.com"]
}
}27. update_website_settings
Actualiza los ajustes de configuración del sitio web. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
name | string | No | Nombre de visualización del sitio web |
timezone | string | No | Zona horaria IANA (por ej. America/New_York) |
allowed_domains | array | No | Lista de dominios permitidos para el script de rastreo |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_website_settings",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "My Updated Website",
"timezone": "Europe/Berlin",
"allowed_domains": ["example.com", "www.example.com", "staging.example.com"]
}
}
}{
"website": {
"id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "My Updated Website",
"timezone": "Europe/Berlin",
"allowed_domains": ["example.com", "www.example.com", "staging.example.com"],
"updated_at": "2026-03-15T10:00:00Z"
}
}28. toggle_public_dashboard
Habilita o deshabilita el uso compartido del panel público para un sitio web. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
enabled | boolean | Sí | true para habilitar, false para deshabilitar |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "toggle_public_dashboard",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"enabled": true
}
}
}{
"public_dashboard": {
"enabled": true,
"url": "https://app.zenovay.com/public/2ea8af07-xxxx",
"globe_url": "https://app.zenovay.com/globe/2ea8af07-xxxx"
}
}29. toggle_cookieless_tracking
Habilita o deshabilita el modo de rastreo sin cookies. Requiere modo read_write. Plan Pro o superior.
Cuando está habilitado, el rastreador usa SHA-256(IP_subnet + UA + daily_salt) para la identificación del visitante en lugar de cookies o localStorage.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
enabled | boolean | Sí | true para habilitar, false para deshabilitar |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "toggle_cookieless_tracking",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"enabled": true
}
}
}{
"cookieless_tracking": {
"enabled": true,
"method": "server_side_hashing",
"updated_at": "2026-03-15T10:00:00Z"
}
}El rastreo sin cookies es totalmente compatible con GDPR. No se utilizan cookies ni localStorage. La identificación del visitante se calcula del lado del servidor usando una sal rotatoria diaria.
30. get_tracking_code
Obtiene el fragmento de código de rastreo para un sitio web. Úsalo para recuperar la etiqueta de script para instalar en tu sitio.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_tracking_code",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"tracking_code": "zv_abc123",
"script_tag": "<script defer data-website-id=\"zv_abc123\" src=\"https://api.zenovay.com/tracker.js\"></script>",
"cookieless_script_tag": "<script defer data-website-id=\"zv_abc123\" data-cookieless=\"true\" src=\"https://api.zenovay.com/tracker.js\"></script>"
}31. regenerate_tracking_code
Genera un nuevo código de rastreo para un sitio web. Requiere modo read_write.
Esto invalida el código de rastreo anterior. Debes actualizar la etiqueta de script en tu sitio web después de regenerar.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "regenerate_tracking_code",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"tracking_code": "zv_def456",
"previous_code": "zv_abc123",
"script_tag": "<script defer data-website-id=\"zv_def456\" src=\"https://api.zenovay.com/tracker.js\"></script>",
"regenerated_at": "2026-03-15T10:00:00Z"
}32. list_goals
Enumera todos los objetivos de un sitio web con su estado actual y tasas de conversión.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Por defecto | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | UUID del sitio web |
include_inactive | boolean | No | false | Incluir objetivos deshabilitados |
time_range | string | No | 30d | Rango de tiempo para estadísticas de conversión: 7d, 30d, 90d, 1y |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_goals",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"include_inactive": true
}
}
}{
"goals": [
{
"id": "g1a2b3c4-...",
"name": "Newsletter Signup",
"goal_type": "url_match",
"url_pattern": "/thank-you",
"is_active": true,
"completions": 145,
"conversion_rate": 3.82,
"created_at": "2026-01-15T10:00:00Z"
},
{
"id": "g5d6e7f8-...",
"name": "Old Promo Banner",
"goal_type": "element_click",
"css_selector": "#promo-cta",
"is_active": false,
"completions": 0,
"conversion_rate": 0,
"created_at": "2025-11-01T08:00:00Z"
}
],
"total": 2
}33. update_goal
Actualiza la configuración de un objetivo existente. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
goal_id | string | Sí | UUID del objetivo |
name | string | No | Nombre del objetivo actualizado |
url_pattern | string | No | Patrón de URL actualizado |
url_match_type | string | No | exact, contains, starts_with, ends_with, regex |
css_selector | string | No | Selector CSS actualizado |
event_name | string | No | Nombre de evento actualizado |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_goal",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"goal_id": "g1a2b3c4-...",
"name": "Newsletter Signup v2",
"url_pattern": "/signup-complete"
}
}
}{
"goal": {
"id": "g1a2b3c4-...",
"name": "Newsletter Signup v2",
"goal_type": "url_match",
"url_pattern": "/signup-complete",
"is_active": true,
"updated_at": "2026-03-15T10:00:00Z"
}
}34. delete_goal
Elimina permanentemente un objetivo. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
goal_id | string | Sí | UUID del objetivo a eliminar |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_goal",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"goal_id": "g5d6e7f8-..."
}
}
}{
"deleted": true,
"goal_id": "g5d6e7f8-..."
}35. toggle_goal
Habilita o deshabilita un objetivo sin eliminarlo. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
goal_id | string | Sí | UUID del objetivo |
is_active | boolean | Sí | true para habilitar, false para deshabilitar |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "toggle_goal",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"goal_id": "g1a2b3c4-...",
"is_active": false
}
}
}{
"goal": {
"id": "g1a2b3c4-...",
"name": "Newsletter Signup v2",
"is_active": false,
"updated_at": "2026-03-15T10:00:00Z"
}
}36. list_funnels
Enumera todos los embudos de un sitio web.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_funnels",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"funnels": [
{
"id": "f1a2b3c4-...",
"name": "Signup Flow",
"steps_count": 4,
"created_at": "2026-01-15T10:00:00Z"
},
{
"id": "f5d6e7f8-...",
"name": "Checkout Flow",
"steps_count": 5,
"created_at": "2026-02-01T14:30:00Z"
}
],
"total": 2
}37. delete_funnel
Elimina permanentemente un embudo. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
funnel_id | string | Sí | UUID del embudo a eliminar |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_funnel",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"funnel_id": "f5d6e7f8-..."
}
}
}{
"deleted": true,
"funnel_id": "f5d6e7f8-..."
}38. delete_website
Elimina permanentemente un sitio web y todos sus datos analíticos. Requiere modo read_write y clave full_access.
Esta acción es irreversible. Todos los datos analíticos, objetivos, embudos y ajustes para este sitio web se eliminarán permanentemente.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web a eliminar |
confirm | boolean | Sí | Debe ser true para confirmar la eliminación |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_website",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"confirm": true
}
}
}{
"deleted": true,
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"domain": "example.com"
}49. create_website
Crea un nuevo sitio web para rastrear. Requiere modo read_write y clave full_access.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
domain | string | Sí | Dominio del sitio web (p. ej. docs.example.com) |
name | string | No | Nombre de visualización (por defecto: el dominio) |
timezone | string | No | Zona horaria IANA (por defecto: UTC) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_website",
"arguments": {
"domain": "docs.example.com",
"name": "Documentation Site",
"timezone": "America/New_York"
}
}
}{
"website": {
"id": "3fb9bg08-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"domain": "docs.example.com",
"name": "Documentation Site",
"tracking_code": "zv_ghi789",
"is_active": true,
"created_at": "2026-03-15T10:00:00Z"
},
"script_tag": "<script defer data-website-id=\"zv_ghi789\" src=\"https://api.zenovay.com/tracker.js\"></script>"
}Herramientas de Configuración
39. add_ip_exclusion
Añade una dirección IP o rango CIDR a la lista de exclusión. Los visitantes de IPs excluidas no serán rastreados. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
ip_address | string | Sí | Dirección IP o rango CIDR (p. ej. 192.168.1.0/24) |
label | string | No | Etiqueta descriptiva (p. ej. "Red de oficina") |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "add_ip_exclusion",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"ip_address": "203.0.113.0/24",
"label": "Office network"
}
}
}{
"exclusion": {
"id": "exc_ip_1...",
"type": "ip",
"ip_address": "203.0.113.0/24",
"label": "Office network",
"created_at": "2026-03-15T10:00:00Z"
}
}40. remove_ip_exclusion
Elimina una dirección IP de la lista de exclusión. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
exclusion_id | string | Sí | UUID de exclusión a eliminar |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "remove_ip_exclusion",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"exclusion_id": "exc_ip_1..."
}
}
}{
"deleted": true,
"exclusion_id": "exc_ip_1..."
}41. add_path_exclusion
Añade un patrón de ruta URL a excluir del rastreo. Las páginas que coincidan con el patrón no generarán eventos analíticos. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
path_pattern | string | Sí | Patrón de ruta URL a excluir (p. ej. /admin/*, /internal/health) |
match_type | string | No | exact, starts_with, contains, regex (por defecto: starts_with) |
label | string | No | Etiqueta descriptiva |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "add_path_exclusion",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"path_pattern": "/admin",
"match_type": "starts_with",
"label": "Admin panel"
}
}
}{
"exclusion": {
"id": "exc_path_1...",
"type": "path",
"path_pattern": "/admin",
"match_type": "starts_with",
"label": "Admin panel",
"created_at": "2026-03-15T10:00:00Z"
}
}42. remove_path_exclusion
Elimina una exclusión de ruta. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
exclusion_id | string | Sí | UUID de exclusión a eliminar |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "remove_path_exclusion",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"exclusion_id": "exc_path_1..."
}
}
}{
"deleted": true,
"exclusion_id": "exc_path_1..."
}43. list_exclusions
Enumera todas las exclusiones de IP y ruta para un sitio web.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_exclusions",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"ip_exclusions": [
{
"id": "exc_ip_1...",
"ip_address": "203.0.113.0/24",
"label": "Office network",
"created_at": "2026-03-15T10:00:00Z"
}
],
"path_exclusions": [
{
"id": "exc_path_1...",
"path_pattern": "/admin",
"match_type": "starts_with",
"label": "Admin panel",
"created_at": "2026-03-15T10:00:00Z"
}
],
"total_ip": 1,
"total_path": 1
}44. get_notification_settings
Obtiene las preferencias de notificación del equipo actual.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_notification_settings",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"notifications": {
"weekly_digest_email": true,
"anomaly_alerts": true,
"anomaly_threshold": "warning",
"goal_completion_alerts": false,
"uptime_alerts": true,
"email_recipients": ["[email protected]"]
}
}45. update_notification_settings
Actualiza las preferencias de notificación. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | UUID del sitio web |
weekly_digest_email | boolean | No | Habilitar/deshabilitar resumen semanal |
anomaly_alerts | boolean | No | Habilitar/deshabilitar alertas de anomalías |
anomaly_threshold | string | No | Severidad mínima: info, warning, critical |
goal_completion_alerts | boolean | No | Habilitar/deshabilitar notificaciones de finalización de objetivos |
uptime_alerts | boolean | No | Habilitar/deshabilitar alertas de monitoreo de disponibilidad |
email_recipients | array | No | Lista de direcciones de correo a notificar |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_notification_settings",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"anomaly_alerts": true,
"anomaly_threshold": "critical",
"goal_completion_alerts": true,
"email_recipients": ["[email protected]", "[email protected]"]
}
}
}{
"notifications": {
"weekly_digest_email": true,
"anomaly_alerts": true,
"anomaly_threshold": "critical",
"goal_completion_alerts": true,
"uptime_alerts": true,
"email_recipients": ["[email protected]", "[email protected]"],
"updated_at": "2026-03-15T10:00:00Z"
}
}Herramientas de Equipo
46. get_team_members
Enumera todos los miembros de tu equipo. Requiere clave full_access.
Costo: 1 consulta
Esta herramienta no toma parámetros.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_team_members",
"arguments": {}
}
}{
"team": {
"id": "team_abc123",
"name": "Acme Corp"
},
"members": [
{
"id": "usr_1...",
"email": "[email protected]",
"name": "Jane Admin",
"role": "owner",
"joined_at": "2025-06-01T10:00:00Z"
},
{
"id": "usr_2...",
"email": "[email protected]",
"name": "John Dev",
"role": "member",
"joined_at": "2025-08-15T14:00:00Z"
}
],
"total": 2
}47. invite_team_member
Invita a un nuevo miembro a tu equipo por correo electrónico. Requiere modo read_write, clave full_access, y plan Pro o superior.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
email | string | Sí | Dirección de correo a invitar |
role | string | No | Rol: member (por defecto) o admin |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "invite_team_member",
"arguments": {
"email": "[email protected]",
"role": "member"
}
}
}{
"invitation": {
"id": "inv_1...",
"email": "[email protected]",
"role": "member",
"status": "pending",
"invited_at": "2026-03-15T10:00:00Z",
"expires_at": "2026-03-22T10:00:00Z"
}
}48. remove_team_member
Elimina un miembro de tu equipo. Requiere modo read_write y clave full_access.
No puedes eliminar al propietario del equipo. El miembro perderá inmediatamente el acceso a todos los sitios web del equipo.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
member_id | string | Sí | ID de usuario del miembro a eliminar |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "remove_team_member",
"arguments": {
"member_id": "usr_2..."
}
}
}{
"removed": true,
"member_id": "usr_2...",
"email": "[email protected]"
}Herramientas de Clave API
50. list_api_keys
Enumera todas las claves API del equipo actual. Devuelve metadatos de clave (no los valores de clave mismos).
Costo: 1 consulta
Esta herramienta no toma parámetros.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_api_keys",
"arguments": {}
}
}{
"api_keys": [
{
"id": "key_1...",
"name": "Production Key",
"prefix": "zv_prod_",
"type": "full_access",
"mcp_enabled": true,
"mcp_mode": "read_write",
"created_at": "2026-01-15T10:00:00Z",
"last_used_at": "2026-03-15T09:30:00Z"
}
],
"total": 1
}51. create_api_key
Crea una nueva clave API. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name | string | Sí | Nombre de visualización para la clave |
type | string | Sí | full_access o site_access |
website_id | string | No | Obligatorio para claves site_access |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_api_key",
"arguments": {
"name": "Staging Key",
"type": "site_access",
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"api_key": {
"id": "key_2...",
"name": "Staging Key",
"key": "zv_stg_xxxxxxxxxxxxxxxx",
"type": "site_access",
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"created_at": "2026-03-15T10:00:00Z"
},
"message": "Save this key — it will not be shown again."
}El valor completo de la clave API se devuelve solo una vez en el momento de creación. Guárdalo de forma segura.
52. revoke_api_key
Revoca (elimina) una clave API. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
key_id | string | Sí | ID de clave API a revocar |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "revoke_api_key",
"arguments": {
"key_id": "key_2..."
}
}
}{
"revoked": true,
"key_id": "key_2...",
"name": "Staging Key"
}53. get_api_key_details
Obtiene información detallada sobre una clave API específica.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
key_id | string | Sí | ID de clave API |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_api_key_details",
"arguments": {
"key_id": "key_1..."
}
}
}{
"api_key": {
"id": "key_1...",
"name": "Production Key",
"prefix": "zv_prod_",
"type": "full_access",
"mcp_enabled": true,
"mcp_mode": "read_write",
"mcp_permissions": {
"analytics": true,
"advanced": true,
"ai_insights": true,
"management": true,
"settings": true,
"api_keys": false,
"uptime": true
},
"created_at": "2026-01-15T10:00:00Z",
"last_used_at": "2026-03-15T09:30:00Z",
"total_requests": 1247
}
}54. update_api_key_permissions
Actualiza los permisos MCP para una clave API. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
key_id | string | Sí | ID de clave API |
mcp_enabled | boolean | No | Habilitar o deshabilitar acceso MCP |
mcp_mode | string | No | read_only o read_write |
permissions | object | No | Alternancias de grupos de características (p. ej. {"analytics": true, "management": false}) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_api_key_permissions",
"arguments": {
"key_id": "key_1...",
"mcp_mode": "read_write",
"permissions": {
"analytics": true,
"advanced": true,
"ai_insights": true,
"management": true,
"settings": false
}
}
}
}{
"updated": true,
"key_id": "key_1...",
"mcp_mode": "read_write",
"mcp_permissions": {
"analytics": true,
"advanced": true,
"ai_insights": true,
"management": true,
"settings": false
}
}Herramientas de Tiempo de Actividad
55. list_uptime_monitors
Enumera todos los monitores de tiempo de actividad del equipo actual.
Costo: 1 consulta
Esta herramienta no toma parámetros.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_uptime_monitors",
"arguments": {}
}
}{
"monitors": [
{
"id": "mon_1...",
"url": "https://example.com",
"name": "Production Site",
"interval": 300,
"status": "up",
"uptime_30d": 99.98,
"last_checked_at": "2026-03-15T09:55:00Z"
}
],
"total": 1
}56. get_uptime_status
Obtiene el estado actual y el tiempo de respuesta de un monitor específico.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
monitor_id | string | Sí | El UUID del monitor |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_uptime_status",
"arguments": {
"monitor_id": "mon_1..."
}
}
}{
"monitor": {
"id": "mon_1...",
"url": "https://example.com",
"status": "up",
"response_time_ms": 142,
"status_code": 200,
"uptime_24h": 100.0,
"uptime_7d": 99.99,
"uptime_30d": 99.98,
"last_checked_at": "2026-03-15T09:55:00Z",
"last_incident_at": "2026-03-10T03:22:00Z"
}
}57. create_uptime_monitor
Crea un nuevo monitor de tiempo de actividad. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
url | string | Sí | La URL a monitorear |
name | string | No | Nombre para mostrar (por defecto: el nombre de host de la URL) |
interval | number | No | Intervalo de verificación en segundos (por defecto: 300) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_uptime_monitor",
"arguments": {
"url": "https://api.example.com/health",
"name": "API Health",
"interval": 60
}
}
}{
"monitor": {
"id": "mon_2...",
"url": "https://api.example.com/health",
"name": "API Health",
"interval": 60,
"status": "pending",
"created_at": "2026-03-15T10:00:00Z"
}
}58. delete_uptime_monitor
Elimina un monitor de tiempo de actividad. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
monitor_id | string | Sí | El UUID del monitor a eliminar |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "delete_uptime_monitor",
"arguments": {
"monitor_id": "mon_2..."
}
}
}{
"deleted": true,
"monitor_id": "mon_2..."
}59. get_uptime_history
Obtiene el historial de tiempo de actividad y el registro de incidentes de un monitor.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
monitor_id | string | Sí | El UUID del monitor |
time_range | string | No | Rango de tiempo: 24h, 7d, 30d, 90d (por defecto: 30d) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_uptime_history",
"arguments": {
"monitor_id": "mon_1...",
"time_range": "7d"
}
}
}{
"monitor_id": "mon_1...",
"uptime_percentage": 99.99,
"total_checks": 2016,
"failed_checks": 1,
"incidents": [
{
"id": "inc_1...",
"started_at": "2026-03-10T03:22:00Z",
"resolved_at": "2026-03-10T03:27:00Z",
"duration_seconds": 300,
"status_code": 503,
"reason": "Service Unavailable"
}
],
"avg_response_time_ms": 156
}Herramientas de Gestión de Sitios Web (60-64)
60. update_website_name
Actualiza el nombre para mostrar de un sitio web. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
name | string | Sí | Nuevo nombre para mostrar |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_website_name",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Production Website"
}
}
}{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"name": "Production Website",
"updated_at": "2026-03-15T10:00:00Z"
}61. update_website_timezone
Actualiza la zona horaria de un sitio web. Afecta cómo se agregan las analíticas diarias. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
timezone | string | Sí | Zona horaria IANA (p. ej. America/New_York, Europe/London) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_website_timezone",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"timezone": "Europe/London"
}
}
}{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"timezone": "Europe/London",
"updated_at": "2026-03-15T10:00:00Z"
}62. update_website_domain
Actualiza el dominio de un sitio web. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
domain | string | Sí | Nuevo dominio (p. ej. example.com) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "update_website_domain",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"domain": "new.example.com"
}
}
}{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"domain": "new.example.com",
"updated_at": "2026-03-15T10:00:00Z"
}63. pause_tracking
Pausa temporalmente el seguimiento de analíticas de un sitio web. No se registrarán eventos nuevos. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "pause_tracking",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tracking_active": false,
"paused_at": "2026-03-15T10:00:00Z"
}64. resume_tracking
Reanuda el seguimiento de analíticas de un sitio web pausado. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "resume_tracking",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"tracking_active": true,
"resumed_at": "2026-03-15T10:00:00Z"
}Herramientas de Informes (65-69)
65. schedule_report
Programa un informe de analíticas recurrente que se envíe por correo electrónico. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
frequency | string | Sí | daily, weekly, o monthly |
recipients | array | Sí | Lista de direcciones de correo electrónico |
metrics | array | No | Métricas específicas a incluir (por defecto: todas) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "schedule_report",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"frequency": "weekly",
"recipients": ["[email protected]", "[email protected]"]
}
}
}{
"report": {
"id": "rpt_1...",
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"frequency": "weekly",
"recipients": ["[email protected]", "[email protected]"],
"next_send_at": "2026-03-22T08:00:00Z",
"created_at": "2026-03-15T10:00:00Z"
}
}66. get_report_schedule
Obtiene la configuración del informe programado de un sitio web.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_report_schedule",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"reports": [
{
"id": "rpt_1...",
"frequency": "weekly",
"recipients": ["[email protected]", "[email protected]"],
"next_send_at": "2026-03-22T08:00:00Z",
"last_sent_at": "2026-03-15T08:00:00Z"
}
],
"total": 1
}67. cancel_report
Cancela un informe programado. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
report_id | string | Sí | El ID de programación del informe a cancelar |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "cancel_report",
"arguments": {
"report_id": "rpt_1..."
}
}
}{
"cancelled": true,
"report_id": "rpt_1..."
}68. get_export_history
Obtiene el historial de exportaciones de datos de un sitio web.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
limit | number | No | Máximo de resultados (por defecto: 20) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_export_history",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"limit": 5
}
}
}{
"exports": [
{
"id": "exp_1...",
"format": "csv",
"time_range": "30d",
"status": "completed",
"file_size_bytes": 245760,
"created_at": "2026-03-14T15:00:00Z"
}
],
"total": 1
}69. get_data_retention
Obtiene la política de retención de datos de un sitio web según el plan actual.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_data_retention",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"plan": "pro",
"analytics_retention_days": 730,
"heatmap_retention_days": 60,
"session_replay_retention_days": 60,
"oldest_data_at": "2024-03-15T00:00:00Z"
}Herramientas de Ingresos y Datos (70-75)
70. set_revenue_currency
Establece la moneda predeterminada de ingresos para un sitio web. Utiliza códigos de moneda ISO 4217. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
currency | string | Sí | Código de moneda ISO 4217 (p. ej. USD, EUR, GBP, CHF, JPY) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "set_revenue_currency",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"currency": "EUR"
}
}
}{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"currency": "EUR",
"message": "Revenue currency set to EUR"
}71. get_revenue_settings
Obtiene la configuración relacionada con ingresos de un sitio web, incluida la moneda configurada y cualquier asignación de campos.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_revenue_settings",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"currency": "EUR",
"revenue_field_mappings": null
}72. add_allowed_domain
Añade un dominio a la lista blanca de CORS. Solo los dominios en la lista blanca pueden enviar datos de seguimiento a este sitio web. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
domain | string | Sí | Dominio a añadir a la lista blanca (p. ej. example.com, staging.example.com) |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "add_allowed_domain",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"domain": "staging.example.com"
}
}
}{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"domain": "staging.example.com",
"allowed_domains": ["example.com", "staging.example.com"],
"total": 2
}73. remove_allowed_domain
Elimina un dominio de la lista blanca de CORS. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
domain | string | Sí | Dominio a eliminar de la lista blanca |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "remove_allowed_domain",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"domain": "staging.example.com"
}
}
}{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"removed": "staging.example.com",
"allowed_domains": ["example.com"],
"total": 1
}74. list_allowed_domains
Enumera todos los dominios en la lista blanca de CORS para un sitio web.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_allowed_domains",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}
}
}{
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"allowed_domains": ["example.com", "staging.example.com"],
"total": 2
}75. request_data_deletion
Elimina todos los datos de un visitante específico de un sitio web. Se utiliza para cumplimiento de GDPR (derecho al olvido). Esta acción es irreversible. Requiere modo read_write.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
website_id | string | Sí | El UUID del sitio web |
visitor_id | string | Sí | El UUID del visitante cuyos datos deben eliminarse |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "request_data_deletion",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"visitor_id": "vis_abc123..."
}
}
}{
"message": "Visitor data deleted successfully",
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"visitor_id": "vis_abc123...",
"records_deleted": 47,
"deleted_at": "2026-03-15T10:00:00Z"
}Esto elimina permanentemente todos los datos del visitante, incluidas las vistas de página, sesiones y eventos. Esto no se puede deshacer.
Ejemplos de Flujos de Trabajo Multistep
Estos ejemplos muestran cadenas completas de solicitud/respuesta para tareas comunes. Cada paso utiliza el formato JSON-RPC anterior.
Informe de Tráfico Semanal
Un flujo de trabajo típico de informes: descubrir sitios web y luego extraer estadísticas de visitantes, páginas principales y fuentes de tráfico.
Paso 1 — Descubre tus sitios web:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_websites",
"arguments": {}
}
}{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [{
"type": "text",
"text": "[{"id": "ws_abc123", "domain": "zenovay.com", "name": "Zenovay"}]"
}]
}
}Paso 2 — Obtiene información general de visitantes:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_visitors",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d"
}
}
}Paso 3 — Obtiene páginas principales:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_top_pages",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d",
"limit": 10
}
}
}Paso 4 — Obtiene fuentes de tráfico:
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_traffic_sources",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d"
}
}
}Costo total: 4 consultas (1 + 1 + 1 + 1)
Auditoría de Rendimiento
Identifica problemas de rendimiento, errores y obtiene recomendaciones de IA.
Paso 1 — Enumera sitios web (igual que arriba, obtén website_id)
Paso 2 — Comprueba Core Web Vitals:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_performance_metrics",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d"
}
}
}Paso 3 — Comprueba errores:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_errors",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d",
"limit": 20
}
}
}Paso 4 — Obtiene recomendaciones de IA:
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_recommendations",
"arguments": {
"website_id": "ws_abc123"
}
}
}Costo total: 4 consultas (1 + 1 + 1 + 1)
Verificación de Salud Rápida
Verificación rápida de cuota restante y visitantes en vivo actuales, ideal al inicio de una sesión.
Paso 1 — Comprueba la cuota restante:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_api_usage",
"arguments": {}
}
}Paso 2 — Comprueba visitantes en tiempo real:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_realtime_visitors",
"arguments": {
"website_id": "ws_abc123"
}
}
}Costo total: 2 consultas (1 + 1)
Comparación Semana Tras Semana
Compara las métricas de esta semana con la semana pasada para identificar tendencias.
Paso 1 — Enumera sitios web (obtén website_id)
Paso 2 — Compara períodos:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "compare_periods",
"arguments": {
"website_id": "ws_abc123",
"current_period": "7d",
"previous_period": "7d"
}
}
}Paso 3 — Detecta anomalías:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_anomalies",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d"
}
}
}Costo total: 3 consultas (1 + 1 + 1)
Configuración e Instalación de Sitio Web
Configura un nuevo sitio web con exclusiones y seguimiento sin cookies.
Paso 1 — Crea el sitio web:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_website",
"arguments": {
"domain": "docs.example.com",
"name": "Documentation"
}
}
}Paso 2 — Habilita el seguimiento sin cookies:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "toggle_cookieless_tracking",
"arguments": {
"website_id": "NEW_WEBSITE_ID",
"enabled": true
}
}
}Paso 3 — Excluye IP de oficina:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "add_ip_exclusion",
"arguments": {
"website_id": "NEW_WEBSITE_ID",
"ip_address": "203.0.113.0/24",
"label": "Office network"
}
}
}Paso 4 — Obtiene el código de seguimiento para instalar:
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_tracking_code",
"arguments": {
"website_id": "NEW_WEBSITE_ID"
}
}
}Costo total: 4 consultas (1 + 1 + 1 + 1)
Nuevas Herramientas
76. get_retention_data
Obtiene análisis de cohort de retención que muestra qué tan bien tu sitio web retiene visitantes a lo largo del tiempo. Devuelve datos de cohort agrupados por el período de primera visita del visitante.
Costo: 1 consulta | Requiere: Pro+ (flag de característica retentionAnalysis)
| Parámetro | Tipo | Obligatorio | Por defecto | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
time_range | string | No | 30d | Rango de tiempo: 7d, 30d, 90d, 1y |
cohort_size | string | No | week | Agrupación de cohort: day, week, month |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_retention_data",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"time_range": "30d",
"cohort_size": "week"
}
}
}{
"cohorts": [
{
"period": "2026-02-17",
"visitors": 320,
"retention": [100, 42.5, 28.1, 18.4]
},
{
"period": "2026-02-24",
"visitors": 285,
"retention": [100, 38.9, 25.3]
},
{
"period": "2026-03-03",
"visitors": 310,
"retention": [100, 41.0]
},
{
"period": "2026-03-10",
"visitors": 295,
"retention": [100]
}
],
"cohort_size": "week",
"time_range": "30d",
"summary": {
"avg_week1_retention": 40.8,
"avg_week2_retention": 26.7,
"total_cohort_visitors": 1210
}
}77. get_user_profiles
Obtiene perfiles de visitantes con historial de sesiones y datos de comportamiento. Devuelve registros de visitante individual con su historial de visitas, páginas vistas y métricas de engagement.
Costo: 1 consulta
| Parámetro | Tipo | Obligatorio | Por defecto | Descripción |
|---|---|---|---|---|
website_id | string | Sí | — | El UUID del sitio web |
limit | number | No | 20 | Perfiles a devolver (1-50) |
country_code | string | No | — | Filtrar por código de país ISO (p. ej. US, DE) |
min_sessions | number | No | — | Número mínimo de sesiones |
time_range | string | No | 30d | Rango de tiempo: 7d, 30d, 90d, 1y |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_user_profiles",
"arguments": {
"website_id": "2ea8af07-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"min_sessions": 3,
"limit": 10
}
}
}{
"profiles": [
{
"visitor_id": "v_abc123",
"first_seen": "2026-02-15T09:30:00Z",
"last_seen": "2026-03-14T16:45:00Z",
"total_sessions": 8,
"total_pageviews": 34,
"avg_session_duration_ms": 185000,
"country": "US",
"city": "San Francisco",
"device_type": "desktop",
"browser": "Chrome",
"os": "macOS",
"top_pages": ["/", "/pricing", "/docs"],
"referrer": "google.com"
}
],
"total": 156
}Referencia del Protocolo JSON-RPC
Todas las solicitudes de MCP utilizan el formato JSON-RPC 2.0:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "tool_name",
"arguments": { ... }
}
}Métodos disponibles:
| Método | Descripción |
|---|---|
initialize | Handshake — devuelve información del servidor y capacidades |
tools/list | Enumera todas las herramientas disponibles con esquemas |
tools/call | Ejecuta una herramienta |
ping | Verificación de estado |
Formato de respuesta de error:
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32003,
"message": "Daily query limit exceeded. Upgrade at https://app.zenovay.com/settings"
}
}Consulta Permisos y Límites para la referencia completa de códigos de error.