Referência de Ferramentas MCP
Esta página documenta todas as 77 ferramentas MCP disponíveis através do servidor de análises da Zenovay. Cada ferramenta inclui seus parâmetros, um exemplo de solicitação JSON-RPC e uma resposta de exemplo.
URL do servidor: https://api.zenovay.com/mcp
Transporte: HTTP transmissível (JSON-RPC 2.0)
Cabeçalho de autenticação: Authorization: Bearer zv_YOUR_API_KEY
Todas as ferramentas requerem uma chave de API válida com MCP ativado. Ferramentas de escrita (marcadas com requires read_write) retornam um erro no modo Somente Leitura. Consulte Permissões e Limites para a lista completa.
Referência Rápida para Assistentes de IA
Use esta seção para entender rapidamente o servidor MCP da Zenovay. Cada solicitação usa este envelope JSON-RPC:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "TOOL_NAME",
"arguments": { ... }
}
}Primeiro passo em cada sessão: Chame list_websites (sem argumentos) para descobrir IDs de websites. Quase todas as ferramentas exigem um parâmetro website_id.
Todas as 77 ferramentas em um relance:
| # | Ferramenta | Categoria | Custo | Descrição |
|---|---|---|---|---|
| 1 | query_analytics | análises | 3 | Consulta de análises em linguagem natural |
| 2 | get_visitors | análises | 1 | Estatísticas de visitantes com comparação de período opcional |
| 3 | get_top_pages | análises | 1 | Páginas mais visitadas classificadas por contagem de visitantes |
| 4 | get_traffic_sources | análises | 1 | Breakdown de fontes de tráfego / referenciadores |
| 5 | get_geographic_data | análises | 1 | Breakdown por país + cidade opcional |
| 6 | get_technology_breakdown | análises | 1 | Dispositivos, navegadores, sistemas operacionais |
| 7 | get_realtime_visitors | análises | 1 | Visitantes ativos no momento (últimos 5 min) |
| 8 | compare_periods | análises | 1 | Comparar métricas entre dois períodos de tempo |
| 9 | get_funnel_analysis | avançado | 1 | Dados de conversão passo a passo do funil |
| 10 | get_goals | avançado | 1 | Metas ativas com taxas de conclusão |
| 11 | get_session_replays | avançado | 1 | Lista de gravações de reprodução de sessão (Pro+) |
| 12 | get_heatmap_data | avançado | 1 | Dados de interação de mapa de calor por página (Pro+) |
| 13 | get_errors | avançado | 1 | Rastreamento de erros JavaScript |
| 14 | get_b2b_companies | avançado | 1 | Identificação de empresa B2B via IP reverso |
| 15 | get_revenue | avançado | 1 | Totais de receita + breakdowns (Pro+) |
| 16 | get_performance_metrics | avançado | 1 | Core Web Vitals (LCP, CLS, INP, FCP, TTFB) |
| 17 | get_insights | insights_ia | 1 | Insights acionáveis gerados por IA |
| 18 | get_anomalies | insights_ia | 1 | Anomalias de métricas detectadas |
| 19 | get_weekly_digest | insights_ia | 1 | Resumo de desempenho semanal (esta vs semana passada) |
| 20 | get_recommendations | insights_ia | 1 | Recomendações de otimização alimentadas por IA |
| 21 | list_websites | gerenciamento | 1 | Listar websites acessíveis (chame primeiro!) |
| 22 | create_goal | gerenciamento | 1 | Criar meta personalizada (requer read_write) |
| 23 | manage_funnel | gerenciamento | 1 | Criar/atualizar funil (requer read_write) |
| 24 | export_data | gerenciamento | 1 | Exportar análises em JSON ou CSV (Scale+) |
| 25 | get_api_usage | gerenciamento | 1 | Verificar quota diária restante |
| 26 | get_website_settings | gerenciamento | 1 | Obter configuração e definições do website |
| 27 | update_website_settings | gerenciamento | 1 | Atualizar configurações do website (requer read_write) |
| 28 | toggle_public_dashboard | gerenciamento | 1 | Ativar/desativar painel público (requer read_write) |
| 29 | toggle_cookieless_tracking | gerenciamento | 1 | Ativar/desativar modo sem cookies (requer read_write, Pro+) |
| 30 | get_tracking_code | gerenciamento | 1 | Obter snippet de código de rastreamento para um website |
| 31 | regenerate_tracking_code | gerenciamento | 1 | Gerar novo código de rastreamento (requer read_write) |
| 32 | list_goals | gerenciamento | 1 | Listar todas as metas de um website |
| 33 | update_goal | gerenciamento | 1 | Atualizar uma meta existente (requer read_write) |
| 34 | delete_goal | gerenciamento | 1 | Deletar uma meta (requer read_write) |
| 35 | toggle_goal | gerenciamento | 1 | Ativar ou desativar uma meta (requer read_write) |
| 36 | list_funnels | gerenciamento | 1 | Listar todos os funis de um website |
| 37 | delete_funnel | gerenciamento | 1 | Deletar um funil (requer read_write) |
| 38 | delete_website | gerenciamento | 1 | Deletar permanentemente um website (requer read_write, full_access) |
| 39 | add_ip_exclusion | configurações | 1 | Adicionar IP à lista de exclusão (requer read_write) |
| 40 | remove_ip_exclusion | configurações | 1 | Remover IP da lista de exclusão (requer read_write) |
| 41 | add_path_exclusion | configurações | 1 | Adicionar padrão de caminho às exclusões (requer read_write) |
| 42 | remove_path_exclusion | configurações | 1 | Remover caminho das exclusões (requer read_write) |
| 43 | list_exclusions | configurações | 1 | Listar todas as exclusões de IP e caminho |
| 44 | get_notification_settings | configurações | 1 | Obter preferências de notificação |
| 45 | update_notification_settings | configurações | 1 | Atualizar preferências de notificação (requer read_write) |
| 46 | get_team_members | equipe | 1 | Listar membros da equipe (requer full_access) |
| 47 | invite_team_member | equipe | 1 | Convidar novo membro da equipe (requer read_write, full_access, Pro+) |
| 48 | remove_team_member | equipe | 1 | Remover membro da equipe (requer read_write, full_access) |
| 49 | create_website | gerenciamento | 1 | Criar novo website (requer read_write, full_access) |
| 50 | list_api_keys | chaves_api | 1 | Listar todas as chaves de API da equipe |
| 51 | create_api_key | chaves_api | 1 | Criar nova chave de API (requer read_write) |
| 52 | revoke_api_key | chaves_api | 1 | Revogar uma chave de API (requer read_write) |
| 53 | get_api_key_details | chaves_api | 1 | Obter detalhes de uma chave de API específica |
| 54 | update_api_key_permissions | chaves_api | 1 | Atualizar permissões de chave de API (requer read_write) |
| 55 | list_uptime_monitors | tempo_atividade | 1 | Listar todos os monitores de tempo de atividade |
| 56 | get_uptime_status | tempo_atividade | 1 | Obter status atual de um monitor |
| 57 | create_uptime_monitor | tempo_atividade | 1 | Criar novo monitor de tempo de atividade (requer read_write) |
| 58 | delete_uptime_monitor | tempo_atividade | 1 | Deletar monitor de tempo de atividade (requer read_write) |
| 59 | get_uptime_history | tempo_atividade | 1 | Obter histórico de tempo de atividade e log de incidentes |
| 60 | update_website_name | gerenciamento | 1 | Atualizar nome do website (requer read_write) |
| 61 | update_website_timezone | gerenciamento | 1 | Atualizar fuso horário do website (requer read_write) |
| 62 | update_website_domain | gerenciamento | 1 | Atualizar domínio do website (requer read_write) |
| 63 | pause_tracking | gerenciamento | 1 | Pausar rastreamento de análises (requer read_write) |
| 64 | resume_tracking | gerenciamento | 1 | Retomar rastreamento de análises (requer read_write) |
| 65 | schedule_report | gerenciamento | 1 | Agendar relatório de análises recorrente (requer read_write) |
| 66 | get_report_schedule | gerenciamento | 1 | Obter configuração de relatório agendado |
| 67 | cancel_report | gerenciamento | 1 | Cancelar relatório agendado (requer read_write) |
| 68 | get_export_history | gerenciamento | 1 | Obter histórico de exportação de dados |
| 69 | get_data_retention | gerenciamento | 1 | Obter política de retenção de dados do website |
| 70 | set_revenue_currency | configurações | 1 | Definir moeda de receita (requer read_write) |
| 71 | get_revenue_settings | configurações | 1 | Obter configurações de receita (moeda, mapeamentos de campo) |
| 72 | add_allowed_domain | configurações | 1 | Adicionar domínio à lista branca de CORS (requer read_write) |
| 73 | remove_allowed_domain | configurações | 1 | Remover domínio da lista branca de CORS (requer read_write) |
| 74 | list_allowed_domains | configurações | 1 | Listar domínios na lista branca de CORS |
| 75 | request_data_deletion | configurações | 1 | Deletar dados de visitantes para GDPR (requer read_write) |
| 76 | get_retention_data | avançado | 1 | Análise de coorte de retenção (Pro+) |
| 77 | get_user_profiles | análises | 1 | Perfis de visitantes com histórico de sessão |
Valores comuns de time_range: 24h, 7d, 30d, 90d, 1y (padrão: 7d para a maioria das ferramentas)
Padrões Comuns
Antes de mergulhar em ferramentas individuais, aqui estão fluxos de trabalho comuns de múltiplas ferramentas:
Descoberta de website + análise:
list_websites— encontre seus IDs de websiteget_visitors— obtenha visão geral de tráfegoget_top_pages— veja quais páginas têm melhor desempenhoget_traffic_sources— entenda de onde vem o tráfego
Auditoria de desempenho:
list_websites— obtenha ID do websiteget_performance_metrics— verifique Core Web Vitalsget_errors— encontre erros JavaScriptget_insights— veja recomendações geradas por IA
Revisão semanal:
get_weekly_digest— comparação semana contra semana automatizadaget_anomalies— procure por padrões incomunscompare_periods— aprofunde métricas específicas
Ferramentas de Análises
Todas as ferramentas de análises aplicam a janela de retenção de dados do seu plano. Consultas solicitando dados além do seu limite de retenção são automaticamente limitadas, e a resposta inclui um campo retention_note. Consulte Aplicação de Plano para limites de retenção por plano.
1. query_analytics
Faça uma pergunta em linguagem natural sobre seus dados de análises. Esta é a ferramenta mais flexível — use-a quando outras ferramentas específicas não se encaixarem.
Custo: 3 consultas
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
question | string | Sim | Pergunta em linguagem 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
Obtenha estatísticas de visitantes para um website com comparação de período opcional.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
time_range | string | Não | 7d | Intervalo de tempo: 24h, 7d, 30d, 90d, 1y |
compare_with_previous | boolean | Não | false | Incluir comparação com 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
Obtenha as páginas mais visitadas classificadas por contagem de visitantes.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
time_range | string | Não | 7d | Intervalo de tempo: 24h, 7d, 30d, 90d, 1y |
limit | number | Não | 20 | Máx páginas a retornar (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
Obtenha fontes de tráfego mostrando de onde os visitantes vêm.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
time_range | string | Não | 7d | Intervalo de tempo: 24h, 7d, 30d, 90d, 1y |
limit | number | Não | 20 | Máx fontes a retornar (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
Obtenha breakdown geográfico por país com detalhe de nível de cidade opcional.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
time_range | string | Não | 7d | Intervalo de tempo: 24h, 7d, 30d, 90d, 1y |
limit | number | Não | 20 | Máx entradas (1-100) |
include_cities | boolean | Não | false | Incluir breakdown de nível de cidade 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
Obtenha breakdown de tecnologia do visitante: dispositivos, navegadores e sistemas operacionais.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
time_range | string | Não | 7d | Intervalo de tempo: 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
Obtenha visitantes ativos no momento (visitaram nos últimos 5 minutos).
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
{
"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álises entre dois períodos de tempo.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
current_period | string | Não | 7d | Período atual: 24h, 7d, 30d, 90d |
comparison_period | string | Não | previous | Comparação: 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
}
}Ferramentas Avançadas
9. get_funnel_analysis
Obtenha dados de análise de funil. Sem um funnel_id, lista todos os funis. Com um, retorna dados de conversão passo a passo.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
funnel_id | string | Não | — | UUID do funil para análise detalhada de etapas |
time_range | string | Não | 30d | Intervalo de tempo: 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
Obtenha metas ativas com contagens de conclusão e taxas de conversão.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
time_range | string | Não | 30d | Intervalo de tempo: 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
Liste gravações de reprodução de sessão. Filtre por dispositivo ou país.
Custo: 1 consulta | Requer: Pro+ (flag de recurso sessionReplay)
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
limit | number | Não | 20 | Sessões a retornar (1-50) |
device_type | string | Não | — | Filtro: desktop, mobile, tablet |
country_code | string | Não | — | Código de país ISO (p.ex. 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
Obtenha dados de interação de mapa de calor por página.
Custo: 1 consulta | Requer: Pro+ (flag de recurso heatmaps)
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
page_url | string | Não | — | Filtro para URL de página específica |
limit | number | Não | 20 | Páginas a retornar (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
Obtenha erros JavaScript rastreados para um website.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
status | string | Não | open | Filtro: open, resolved, ignored |
limit | number | Não | 50 | Erros a retornar (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 visitando seu website via busca reversa de IP.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
limit | number | Não | 20 | Empresas a retornar (1-100) |
sort_by | string | Não | last_seen | Ordenar por: visits, last_seen, confidence |
industry | string | Não | — | Filtro por setor (p.ex. Technology) |
min_visits | number | Não | 1 | Contagem mínima 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
Obtenha análises de receita com totais e breakdowns.
Custo: 1 consulta | Requer: Pro+ (flag de recurso revenueAttribution)
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
time_range | string | Não | 30d | Intervalo de tempo: 24h, 7d, 30d, 90d, 1y |
group_by | string | Não | day | Agrupamento: 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
Obtenha Core Web Vitals e métricas de desempenho com breakdowns de percentil.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
time_range | string | Não | 7d | Intervalo de tempo: 24h, 7d, 30d, 90d, 1y |
page_url | string | Não | — | Filtro para 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 }
}Limiares de classificação:
| Métrica | Bom | Precisa de Melhoria | Ruim |
|---|---|---|---|
| LCP | ≤ 2500ms | ≤ 4000ms | > 4000ms |
| CLS | ≤ 0.1 | ≤ 0.25 | > 0.25 |
| INP | ≤ 200ms | ≤ 500ms | > 500ms |
| FCP | ≤ 1800ms | ≤ 3000ms | > 3000ms |
| TTFB | ≤ 800ms | ≤ 1800ms | > 1800ms |
Ferramentas de Insights de IA
17. get_insights
Recupere insights acionáveis gerados por IA sobre desempenho do website.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
severity | string | Não | — | Filtro: critical, warning, info |
status | string | Não | active | Filtro: active, acknowledged, resolved |
limit | number | Não | 10 | Máx insights (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 anomalias detectadas — desvios incomuns em métricas.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
severity | string | Não | — | Filtro: critical, warning, info |
metric | string | Não | — | Filtro por métrica (p.ex. visitors, bounce_rate) |
limit | number | Não | 10 | Máx anomalias (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
Gere um resumo de desempenho semanal comparando esta semana vs semana passada.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
{
"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
Obtenha recomendações de otimização alimentadas por IA.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
category | string | Não | — | Filtro: performance, engagement, conversion, seo |
limit | number | Não | 5 | Máx recomendações (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
}Ferramentas de Gerenciamento
21. list_websites
Liste todos os websites acessíveis pela chave de API atual.
Custo: 1 consulta
Esta ferramenta não recebe parâmetros. Chaves de acesso completo veem todos os websites do time; chaves com escopo de site veem apenas seu website atribuído.
{
"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
Crie um objetivo de conversão personalizado. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
name | string | Sim | Nome do objetivo (máx. 100 caracteres) |
goal_type | string | Sim | url_match, element_click ou custom_event |
url_pattern | string | Para url_match | Padrão de URL para corresponder |
url_match_type | string | Não | exact, contains, starts_with, ends_with, regex (padrão: contains) |
css_selector | string | Para element_click | Seletor CSS do elemento |
event_name | string | Para custom_event | Nome do evento personalizado para 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
Crie ou atualize um funil de conversão. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
name | string | Sim | Nome do funil |
steps | array | Sim | 2-10 passos ordenados (veja abaixo) |
funnel_id | string | Não | UUID do funil existente para atualizar |
Objeto de passo:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
step_name | string | Sim | Nome para exibição |
step_type | string | Sim | url_match, element_click, custom_event |
url_pattern | string | Não | Padrão de URL (para url_match) |
url_match_type | string | Não | 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
Exporte dados de análise em formato JSON ou CSV.
Custo: 1 consulta | Requer: Scale+ (flag de recurso dataExport)
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
format | string | Não | json | Formato de saída: csv, json |
metrics | array | Não | ["visitors","pageviews","unique_visitors"] | Métricas a incluir |
time_range | string | Não | 30d | Período de tempo: 7d, 30d, 90d, 1y |
Métricas disponíveis: 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
Verifique o uso atual da chave de API e a cota restante.
Custo: 1 consulta
Esta ferramenta não recebe 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
Obtenha a configuração e as definições de um website.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
{
"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
Atualize as definições de configuração do website. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
name | string | Não | Nome para exibição do website |
timezone | string | Não | Fuso horário IANA (ex: America/New_York) |
allowed_domains | array | Não | Lista de domínios permitidos para o script de rastreamento |
{
"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
Ative ou desative o compartilhamento do painel público para um website. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
enabled | boolean | Sim | true para ativar, false para desativar |
{
"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
Ative ou desative o modo de rastreamento sem cookies. Requer modo read_write. Plano Pro ou superior.
Quando ativado, o rastreador usa SHA-256(IP_subnet + UA + daily_salt) para identificação do visitante em vez de cookies ou localStorage.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
enabled | boolean | Sim | true para ativar, false para desativar |
{
"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"
}
}O rastreamento sem cookies é totalmente compatível com GDPR. Nenhum cookie ou localStorage é utilizado. A identificação do visitante é calculada no servidor usando um salt que gira diariamente.
30. get_tracking_code
Obtenha o snippet de código de rastreamento para um website. Use isso para recuperar a tag de script para instalar em seu site.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
{
"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
Gere um novo código de rastreamento para um website. Requer modo read_write.
Isso invalida o código de rastreamento anterior. Você deve atualizar a tag de script em seu website após regenerar.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
{
"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
Liste todos os objetivos de um website com seu status atual e taxas de conversão.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
include_inactive | boolean | Não | false | Incluir objetivos desativados |
time_range | string | Não | 30d | Período de tempo para estatísticas de conversão: 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
Atualize a configuração de um objetivo existente. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
goal_id | string | Sim | O UUID do objetivo |
name | string | Não | Nome do objetivo atualizado |
url_pattern | string | Não | Padrão de URL atualizado |
url_match_type | string | Não | exact, contains, starts_with, ends_with, regex |
css_selector | string | Não | Seletor CSS atualizado |
event_name | string | Não | Nome do evento atualizado |
{
"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
Exclua permanentemente um objetivo. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
goal_id | string | Sim | O UUID do objetivo a excluir |
{
"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
Ative ou desative um objetivo sem excluí-lo. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
goal_id | string | Sim | O UUID do objetivo |
is_active | boolean | Sim | true para ativar, false para desativar |
{
"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
Liste todos os funis de um website.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
{
"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
Exclua permanentemente um funil. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
funnel_id | string | Sim | O UUID do funil a excluir |
{
"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
Exclua permanentemente um website e todos os seus dados de análise. Requer modo read_write e chave de full_access.
Esta ação é irreversível. Todos os dados de análise, objetivos, funis e definições deste website serão permanentemente excluídos.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website a excluir |
confirm | boolean | Sim | Deve ser true para confirmar a exclusão |
{
"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
Crie um novo website para rastrear. Requer modo read_write e chave de full_access.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
domain | string | Sim | O domínio do website (ex: docs.example.com) |
name | string | Não | Nome para exibição (padrão: o domínio) |
timezone | string | Não | Fuso horário IANA (padrão: 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>"
}Ferramentas de Configuração
39. add_ip_exclusion
Adicione um endereço IP ou intervalo CIDR à lista de exclusão. Visitantes de IPs excluídos não serão rastreados. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
ip_address | string | Sim | Endereço IP ou intervalo CIDR (ex: 192.168.1.0/24) |
label | string | Não | Rótulo descritivo (ex: "Rede do escritório") |
{
"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
Remova um endereço IP da lista de exclusão. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
exclusion_id | string | Sim | O UUID da exclusão a remover |
{
"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
Adicione um padrão de caminho de URL para excluir do rastreamento. Páginas que corresponderem ao padrão não gerarão eventos de análise. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
path_pattern | string | Sim | Padrão de caminho de URL a excluir (ex: /admin/*, /internal/health) |
match_type | string | Não | exact, starts_with, contains, regex (padrão: starts_with) |
label | string | Não | Rótulo descritivo |
{
"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
Remova uma exclusão de caminho. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
exclusion_id | string | Sim | O UUID da exclusão a remover |
{
"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
Liste todas as exclusões de IP e caminho para um website.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
{
"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
Obtenha as preferências de notificação do time atual.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
{
"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
Atualize as preferências de notificação. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
weekly_digest_email | boolean | Não | Ativar/desativar resumo semanal |
anomaly_alerts | boolean | Não | Ativar/desativar alertas de anomalia |
anomaly_threshold | string | Não | Severidade mínima: info, warning, critical |
goal_completion_alerts | boolean | Não | Ativar/desativar notificações de conclusão de objetivo |
uptime_alerts | boolean | Não | Ativar/desativar alertas de monitoramento de tempo de atividade |
email_recipients | array | Não | Lista de endereços de email para 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"
}
}Ferramentas de Time
46. get_team_members
Liste todos os membros do seu time. Requer chave de full_access.
Custo: 1 consulta
Esta ferramenta não recebe 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
Convide um novo membro para seu time por email. Requer modo read_write, chave de full_access e plano Pro ou superior.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email | string | Sim | Endereço de email a convidar |
role | string | Não | Função: member (padrão) ou 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
Remova um membro do seu time. Requer modo read_write e chave de full_access.
Você não pode remover o proprietário do time. O membro perderá imediatamente o acesso a todos os websites do time.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
member_id | string | Sim | O ID do usuário do membro a remover |
{
"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]"
}Ferramentas de Chave de API
50. list_api_keys
Liste todas as chaves de API do time atual. Retorna metadados das chaves (não os valores das chaves).
Custo: 1 consulta
Esta ferramenta não recebe 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
Crie uma nova chave de API. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
name | string | Sim | Nome para exibição da chave |
type | string | Sim | full_access ou site_access |
website_id | string | Não | Obrigatório para chaves de 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."
}O valor completo da chave de API é retornado apenas uma vez no momento da criação. Armazene-o com segurança.
52. revoke_api_key
Revogue (exclua) uma chave de API. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
key_id | string | Sim | O ID da chave de API a revogar |
{
"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
Obtenha informações detalhadas sobre uma chave de API específica.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
key_id | string | Sim | O ID da chave de 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
Atualize as permissões de MCP de uma chave de API. Requer modo read_write.
Custo: 1 consulta
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
key_id | string | Sim | O ID da chave de API |
mcp_enabled | boolean | Não | Ativar ou desativar acesso ao MCP |
mcp_mode | string | Não | read_only ou read_write |
permissions | object | Não | Alternâncias de grupos de recursos (ex: {"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
}
}Ferramentas de Uptime
55. list_uptime_monitors
Listar todos os monitores de uptime para o time atual.
Custo: 1 query
Esta ferramenta não aceita nenhum parâmetro.
{
"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
Obter status atual e tempo de resposta para um monitor específico.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
monitor_id | string | Sim | O UUID do 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
Criar um novo monitor de uptime. Requer modo read_write.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
url | string | Sim | A URL a ser monitorada |
name | string | Não | Nome de exibição (padrão: hostname da URL) |
interval | number | Não | Intervalo de verificação em segundos (padrão: 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
Deletar um monitor de uptime. Requer modo read_write.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
monitor_id | string | Sim | O UUID do monitor a ser deletado |
{
"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
Obter histórico de uptime e registro de incidentes para um monitor.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
monitor_id | string | Sim | O UUID do monitor |
time_range | string | Não | Intervalo de tempo: 24h, 7d, 30d, 90d (padrão: 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
}Ferramentas de Gerenciamento de Website (60-64)
60. update_website_name
Atualizar o nome de exibição para um website. Requer modo read_write.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
name | string | Sim | Novo nome de exibição |
{
"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
Atualizar o fuso horário para um website. Afeta como as análises diárias são agregadas. Requer modo read_write.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
timezone | string | Sim | Fuso horário IANA (ex: 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
Atualizar o domínio para um website. Requer modo read_write.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
domain | string | Sim | Novo domínio (ex: 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
Pausar temporariamente o rastreamento de análises para um website. Nenhum evento novo será registrado. Requer modo read_write.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
{
"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
Retomar o rastreamento de análises para um website pausado. Requer modo read_write.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
{
"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"
}Ferramentas de Relatórios (65-69)
65. schedule_report
Agendar um relatório de análises recorrente para ser enviado por email. Requer modo read_write.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
frequency | string | Sim | daily, weekly, ou monthly |
recipients | array | Sim | Lista de endereços de email |
metrics | array | Não | Métricas específicas a incluir (padrão: 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
Obter a configuração de relatório agendado para um website.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
{
"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
Cancelar um relatório agendado. Requer modo read_write.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
report_id | string | Sim | O ID do agendamento de relatório a ser cancelado |
{
"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
Obter o histórico de exportações de dados para um website.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
limit | number | Não | Máximo de resultados (padrão: 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
Obter a política de retenção de dados para um website baseada no plano atual.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
{
"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"
}Ferramentas de Receita e Dados (70-75)
70. set_revenue_currency
Definir a moeda padrão de exibição de receita para um website. Usa códigos de moeda ISO 4217. Requer modo read_write.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
currency | string | Sim | Código de moeda ISO 4217 (ex: 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
Obter as configurações relacionadas a receita para um website, incluindo a moeda configurada e qualquer mapeamento de campos.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
{
"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
Adicionar um domínio à lista de permissão CORS. Apenas domínios na lista de permissão podem enviar dados de rastreamento para este website. Requer modo read_write.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
domain | string | Sim | Domínio a adicionar à lista de permissão (ex: 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
Remover um domínio da lista de permissão CORS. Requer modo read_write.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
domain | string | Sim | Domínio a remover da lista de permissão |
{
"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
Listar todos os domínios na lista de permissão CORS para um website.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
{
"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
Deletar todos os dados de um visitante específico de um website. Usado para conformidade com GDPR (direito ao esquecimento). Esta ação é irreversível. Requer modo read_write.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
website_id | string | Sim | O UUID do website |
visitor_id | string | Sim | O UUID do visitante cujos dados devem ser deletados |
{
"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"
}Isto deleta permanentemente todos os dados do visitante incluindo visualizações de página, sessões e eventos. Isto não pode ser desfeito.
Exemplos de Fluxo Multi-Etapas
Estes exemplos mostram cadeias completas de requisição/resposta para tarefas comuns. Cada etapa usa o formato JSON-RPC acima.
Relatório de Tráfego Semanal
Um fluxo de trabalho de relatório típico: descobrir websites, depois extrair estatísticas de visitantes, páginas principais e fontes de tráfego.
Etapa 1 — Descobrir seus websites:
{
"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"}]"
}]
}
}Etapa 2 — Obter visão geral de visitantes:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_visitors",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d"
}
}
}Etapa 3 — Obter páginas principais:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_top_pages",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d",
"limit": 10
}
}
}Etapa 4 — Obter fontes de tráfego:
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_traffic_sources",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d"
}
}
}Custo total: 4 queries (1 + 1 + 1 + 1)
Auditoria de Desempenho
Identificar problemas de desempenho, erros e obter recomendações de IA.
Etapa 1 — Listar websites (igual ao acima, obter website_id)
Etapa 2 — Verificar Core Web Vitals:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_performance_metrics",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d"
}
}
}Etapa 3 — Verificar erros:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_errors",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d",
"limit": 20
}
}
}Etapa 4 — Obter recomendações de IA:
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_recommendations",
"arguments": {
"website_id": "ws_abc123"
}
}
}Custo total: 4 queries (1 + 1 + 1 + 1)
Verificação Rápida de Saúde
Verificação rápida de cota restante e visitantes ao vivo atuais — ideal no início de uma sessão.
Etapa 1 — Verificar cota restante:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_api_usage",
"arguments": {}
}
}Etapa 2 — Verificar visitantes em tempo real:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_realtime_visitors",
"arguments": {
"website_id": "ws_abc123"
}
}
}Custo total: 2 queries (1 + 1)
Comparação Semana-sobre-Semana
Comparar métricas desta semana contra a semana passada para identificar tendências.
Etapa 1 — Listar websites (obter website_id)
Etapa 2 — Comparar 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"
}
}
}Etapa 3 — Detectar anomalias:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_anomalies",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d"
}
}
}Custo total: 3 queries (1 + 1 + 1)
Configuração e Personalização de Website
Configurar um novo website com exclusões e rastreamento sem cookies.
Etapa 1 — Criar o website:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_website",
"arguments": {
"domain": "docs.example.com",
"name": "Documentation"
}
}
}Etapa 2 — Ativar rastreamento sem cookies:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "toggle_cookieless_tracking",
"arguments": {
"website_id": "NEW_WEBSITE_ID",
"enabled": true
}
}
}Etapa 3 — Excluir IP do escritório:
{
"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"
}
}
}Etapa 4 — Obter código de rastreamento a instalar:
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_tracking_code",
"arguments": {
"website_id": "NEW_WEBSITE_ID"
}
}
}Custo total: 4 queries (1 + 1 + 1 + 1)
Novas Ferramentas
76. get_retention_data
Obter análise de coorte de retenção mostrando como seu website retém visitantes ao longo do tempo. Retorna dados de coorte agrupados pelo período da primeira visita do visitante.
Custo: 1 query | Requer: Pro+ (flag de recurso retentionAnalysis)
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
time_range | string | Não | 30d | Intervalo de tempo: 7d, 30d, 90d, 1y |
cohort_size | string | Não | week | Agrupamento de coorte: 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
Obter perfis de visitantes com histórico de sessão e dados comportamentais. Retorna registros de visitantes individuais com seu histórico de visitas, páginas visualizadas e métricas de engajamento.
Custo: 1 query
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
website_id | string | Sim | — | O UUID do website |
limit | number | Não | 20 | Perfis a retornar (1-50) |
country_code | string | Não | — | Filtrar por código de país ISO (ex: US, DE) |
min_sessions | number | Não | — | Número mínimo de sessões |
time_range | string | Não | 30d | Intervalo de tempo: 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
}Referência do Protocolo JSON-RPC
Todas as requisições MCP usam o formato JSON-RPC 2.0:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "tool_name",
"arguments": { ... }
}
}Métodos disponíveis:
| Método | Descrição |
|---|---|
initialize | Handshake — retorna informações do servidor e capacidades |
tools/list | Listar todas as ferramentas disponíveis com esquemas |
tools/call | Executar uma ferramenta |
ping | Verificação de saúde |
Formato de resposta de erro:
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32003,
"message": "Daily query limit exceeded. Upgrade at https://app.zenovay.com/settings"
}
}Veja Permissões e Limites para a referência completa de códigos de erro.