MCP-Tools Referenz
Diese Seite dokumentiert alle 77 MCP-Tools, die über den Zenovay-Analytics-Server verfügbar sind. Jedes Tool enthält seine Parameter, ein Beispiel-JSON-RPC-Request und eine Beispielantwort.
Server-URL: https://api.zenovay.com/mcp
Transport: Streamable HTTP (JSON-RPC 2.0)
Auth-Header: Authorization: Bearer zv_YOUR_API_KEY
Alle Tools erfordern einen gültigen API-Schlüssel mit aktiviertem MCP. Schreib-Tools (gekennzeichnet mit requires read_write) geben einen Fehler im Read-Only-Modus zurück. Siehe Permissions & Limits für die vollständige Liste.
Schnellreferenz für KI-Assistenten
Use this section to quickly understand the Zenovay MCP server. Every request uses this JSON-RPC envelope:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "TOOL_NAME",
"arguments": { ... }
}
}Erster Schritt in jeder Sitzung: Rufen Sie list_websites (keine Argumente) auf, um Website-IDs zu entdecken. Fast jedes Tool erfordert einen website_id-Parameter.
Alle 77 Tools auf einen Blick:
| # | Tool | Category | Cost | Description |
|---|---|---|---|---|
| 1 | query_analytics | analytics | 3 | Natural language analytics query |
| 2 | get_visitors | analytics | 1 | Visitor stats with optional period comparison |
| 3 | get_top_pages | analytics | 1 | Most visited pages ranked by visitor count |
| 4 | get_traffic_sources | analytics | 1 | Traffic sources / referrers breakdown |
| 5 | get_geographic_data | analytics | 1 | Country + optional city breakdown |
| 6 | get_technology_breakdown | analytics | 1 | Devices, browsers, operating systems |
| 7 | get_realtime_visitors | analytics | 1 | Currently active visitors (last 5 min) |
| 8 | compare_periods | analytics | 1 | Compare metrics between two time periods |
| 9 | get_funnel_analysis | advanced | 1 | Funnel step-by-step conversion data |
| 10 | get_goals | advanced | 1 | Active goals with completion rates |
| 11 | get_session_replays | advanced | 1 | Session replay recordings list (Pro+) |
| 12 | get_heatmap_data | advanced | 1 | Heatmap interaction data per page (Pro+) |
| 13 | get_errors | advanced | 1 | JavaScript error tracking |
| 14 | get_b2b_companies | advanced | 1 | B2B company identification via reverse IP |
| 15 | get_revenue | advanced | 1 | Revenue totals + breakdowns (Pro+) |
| 16 | get_performance_metrics | advanced | 1 | Core Web Vitals (LCP, CLS, INP, FCP, TTFB) |
| 17 | get_insights | ai_insights | 1 | AI-generated actionable insights |
| 18 | get_anomalies | ai_insights | 1 | Detected metric anomalies |
| 19 | get_weekly_digest | ai_insights | 1 | Weekly performance digest (this vs last week) |
| 20 | get_recommendations | ai_insights | 1 | AI-powered optimization recommendations |
| 21 | list_websites | management | 1 | List accessible websites (call first!) |
| 22 | create_goal | management | 1 | Create custom goal (requires read_write) |
| 23 | manage_funnel | management | 1 | Create/update funnel (requires read_write) |
| 24 | export_data | management | 1 | Export analytics in JSON or CSV (Scale+) |
| 25 | get_api_usage | management | 1 | Check remaining daily quota |
| 26 | get_website_settings | management | 1 | Get website configuration and settings |
| 27 | update_website_settings | management | 1 | Update website settings (requires read_write) |
| 28 | toggle_public_dashboard | management | 1 | Enable/disable public dashboard (requires read_write) |
| 29 | toggle_cookieless_tracking | management | 1 | Enable/disable cookieless mode (requires read_write, Pro+) |
| 30 | get_tracking_code | management | 1 | Get the tracking code snippet for a website |
| 31 | regenerate_tracking_code | management | 1 | Generate a new tracking code (requires read_write) |
| 32 | list_goals | management | 1 | List all goals for a website |
| 33 | update_goal | management | 1 | Update an existing goal (requires read_write) |
| 34 | delete_goal | management | 1 | Delete a goal (requires read_write) |
| 35 | toggle_goal | management | 1 | Enable or disable a goal (requires read_write) |
| 36 | list_funnels | management | 1 | List all funnels for a website |
| 37 | delete_funnel | management | 1 | Delete a funnel (requires read_write) |
| 38 | delete_website | management | 1 | Permanently delete a website (requires read_write, full_access) |
| 39 | add_ip_exclusion | settings | 1 | Add IP to exclusion list (requires read_write) |
| 40 | remove_ip_exclusion | settings | 1 | Remove IP from exclusion list (requires read_write) |
| 41 | add_path_exclusion | settings | 1 | Add path pattern to exclusions (requires read_write) |
| 42 | remove_path_exclusion | settings | 1 | Remove path from exclusions (requires read_write) |
| 43 | list_exclusions | settings | 1 | List all IP and path exclusions |
| 44 | get_notification_settings | settings | 1 | Get notification preferences |
| 45 | update_notification_settings | settings | 1 | Update notification preferences (requires read_write) |
| 46 | get_team_members | team | 1 | List team members (requires full_access) |
| 47 | invite_team_member | team | 1 | Invite a new team member (requires read_write, full_access, Pro+) |
| 48 | remove_team_member | team | 1 | Remove a team member (requires read_write, full_access) |
| 49 | create_website | management | 1 | Create a new website (requires read_write, full_access) |
| 50 | list_api_keys | api_keys | 1 | List all API keys for the team |
| 51 | create_api_key | api_keys | 1 | Create a new API key (requires read_write) |
| 52 | revoke_api_key | api_keys | 1 | Revoke an API key (requires read_write) |
| 53 | get_api_key_details | api_keys | 1 | Get details for a specific API key |
| 54 | update_api_key_permissions | api_keys | 1 | Update API key permissions (requires read_write) |
| 55 | list_uptime_monitors | uptime | 1 | List all uptime monitors |
| 56 | get_uptime_status | uptime | 1 | Get current status for a monitor |
| 57 | create_uptime_monitor | uptime | 1 | Create a new uptime monitor (requires read_write) |
| 58 | delete_uptime_monitor | uptime | 1 | Delete an uptime monitor (requires read_write) |
| 59 | get_uptime_history | uptime | 1 | Get uptime history and incident log |
| 60 | update_website_name | management | 1 | Update website display name (requires read_write) |
| 61 | update_website_timezone | management | 1 | Update website timezone (requires read_write) |
| 62 | update_website_domain | management | 1 | Update website domain (requires read_write) |
| 63 | pause_tracking | management | 1 | Pause analytics tracking (requires read_write) |
| 64 | resume_tracking | management | 1 | Resume analytics tracking (requires read_write) |
| 65 | schedule_report | management | 1 | Schedule a recurring analytics report (requires read_write) |
| 66 | get_report_schedule | management | 1 | Get scheduled report configuration |
| 67 | cancel_report | management | 1 | Cancel a scheduled report (requires read_write) |
| 68 | get_export_history | management | 1 | Get data export history |
| 69 | get_data_retention | management | 1 | Get data retention policy for the website |
| 70 | set_revenue_currency | settings | 1 | Set revenue currency (requires read_write) |
| 71 | get_revenue_settings | settings | 1 | Get revenue settings (currency, field mappings) |
| 72 | add_allowed_domain | settings | 1 | Add domain to CORS whitelist (requires read_write) |
| 73 | remove_allowed_domain | settings | 1 | Remove domain from CORS whitelist (requires read_write) |
| 74 | list_allowed_domains | settings | 1 | List CORS whitelisted domains |
| 75 | request_data_deletion | settings | 1 | Delete visitor data for GDPR (requires read_write) |
| 76 | get_retention_data | advanced | 1 | Retention cohort analysis (Pro+) |
| 77 | get_user_profiles | analytics | 1 | Visitor profiles with session history |
Häufige time_range-Werte: 24h, 7d, 30d, 90d, 1y (Standard: 7d für die meisten Tools)
Häufige Muster
Bevor Sie sich einzelnen Tools widmen, finden Sie hier häufige Multi-Tool-Workflows:
Website-Erkennung + Analyse:
list_websites— Website-IDs findenget_visitors— Traffic-Übersicht abrufenget_top_pages— sehen, welche Seiten am besten abschneidenget_traffic_sources— verstehen, woher der Traffic kommt
Performance-Audit:
list_websites— Website-ID abrufenget_performance_metrics— Core Web Vitals prüfenget_errors— JavaScript-Fehler findenget_insights— KI-generierte Empfehlungen anzeigen
Wöchentliche Überprüfung:
get_weekly_digest— automatisierter Vergleich Woche zu Wocheget_anomalies— auf ungewöhnliche Muster überprüfencompare_periods— Deep-Dive in spezifische Metriken
Analytics-Tools
Alle Analytics-Tools erzwingen das Datenspeicherfenster Ihres Plans. Abfragen, die Daten über Ihr Aufbewahrungslimit hinaus anfordern, werden automatisch begrenzt, und die Antwort enthält ein retention_note-Feld. Siehe Plan Enforcement für Aufbewahrungslimits nach Plan.
1. query_analytics
Stellen Sie eine Frage in natürlicher Sprache zu Ihren Analysedaten. Dies ist das flexibelste Tool — verwenden Sie es, wenn andere spezifische Tools nicht passen.
Kosten: 3 Abfragen
| Parameter | Type | Required | Description |
|---|---|---|---|
website_id | string | Yes | The UUID of the website |
question | string | Yes | Natural language question (max 500 characters) |
{
"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
Rufen Sie Besucherstatistiken für eine Website mit optionalem Zeitraumvergleich ab.
Kosten: 1 Abfrage
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The UUID of the website |
time_range | string | No | 7d | Time range: 24h, 7d, 30d, 90d, 1y |
compare_with_previous | boolean | No | false | Include comparison with previous period |
{
"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
Rufen Sie die am häufigsten besuchten Seiten nach Besucherzahl ab.
Kosten: 1 Abfrage
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The UUID of the website |
time_range | string | No | 7d | Time range: 24h, 7d, 30d, 90d, 1y |
limit | number | No | 20 | Max pages to return (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
Rufen Sie Traffic-Quellen ab und zeigen Sie an, woher Besucher kommen.
Kosten: 1 Abfrage
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The UUID of the website |
time_range | string | No | 7d | Time range: 24h, 7d, 30d, 90d, 1y |
limit | number | No | 20 | Max sources to return (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
Rufen Sie geografische Aufschlüsselung nach Land mit optionalem City-Level-Detail ab.
Kosten: 1 Abfrage
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The UUID of the website |
time_range | string | No | 7d | Time range: 24h, 7d, 30d, 90d, 1y |
limit | number | No | 20 | Max entries (1-100) |
include_cities | boolean | No | false | Include city-level breakdown per country |
{
"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
Rufen Sie die Aufschlüsselung der Besuchertechnologie ab: Geräte, Browser und Betriebssysteme.
Kosten: 1 Abfrage
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The UUID of the website |
time_range | string | No | 7d | Time range: 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
Rufen Sie derzeit aktive Besucher ab (besucht in den letzten 5 Minuten).
Kosten: 1 Abfrage
| Parameter | Type | Required | Description |
|---|---|---|---|
website_id | string | Yes | The UUID of the 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
Vergleichen Sie Analysemetriken zwischen zwei Zeiträumen.
Kosten: 1 Abfrage
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The UUID of the website |
current_period | string | No | 7d | Current period: 24h, 7d, 30d, 90d |
comparison_period | string | No | previous | Comparison: 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
}
}Erweiterte Tools
9. get_funnel_analysis
Rufen Sie Funnelanalysedaten ab. Ohne funnel_id werden alle Funnels aufgelistet. Mit einem werden Schritt-für-Schritt-Konversionsdaten zurückgegeben.
Kosten: 1 Abfrage
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The website UUID |
funnel_id | string | No | — | Funnel UUID for detailed step analysis |
time_range | string | No | 30d | Time range: 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
Rufen Sie aktive Ziele mit Abschlussangaben und Konversionsraten ab.
Kosten: 1 Abfrage
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The website UUID |
time_range | string | No | 30d | Time range: 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
Listet Session-Replay-Aufzeichnungen auf. Filtern Sie nach Gerätetyp oder Land.
Kosten: 1 Abfrage | Requires: Pro+ (sessionReplay feature flag)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The website UUID |
limit | number | No | 20 | Sessions to return (1-50) |
device_type | string | No | — | Filter: desktop, mobile, tablet |
country_code | string | No | — | ISO country code (e.g. 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
Rufen Sie Heatmap-Interaktionsdaten pro Seite ab.
Kosten: 1 Abfrage | Requires: Pro+ (heatmaps feature flag)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The website UUID |
page_url | string | No | — | Filter to a specific page URL |
limit | number | No | 20 | Pages to return (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
Rufen Sie nachverfolgten JavaScript-Fehler für eine Website ab.
Kosten: 1 Abfrage
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The website UUID |
status | string | No | open | Filter: open, resolved, ignored |
limit | number | No | 50 | Errors to return (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
Identifizieren Sie B2B-Unternehmen, die Ihre Website durch umgekehrte IP-Suche besuchen.
Kosten: 1 Abfrage
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The website UUID |
limit | number | No | 20 | Companies to return (1-100) |
sort_by | string | No | last_seen | Sort: visits, last_seen, confidence |
industry | string | No | — | Filter by industry (e.g. Technology) |
min_visits | number | No | 1 | Minimum visit count |
{
"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
Rufen Sie Umsatzanalytics mit Gesamtsummen und Aufschlüsselungen ab.
Kosten: 1 Abfrage | Requires: Pro+ (revenueAttribution feature flag)
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The website UUID |
time_range | string | No | 30d | Time range: 24h, 7d, 30d, 90d, 1y |
group_by | string | No | day | Grouping: 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
Rufen Sie Core Web Vitals und Leistungsmetriken mit Perzentil-Aufschlüsselungen ab.
Kosten: 1 Abfrage
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The website UUID |
time_range | string | No | 7d | Time range: 24h, 7d, 30d, 90d, 1y |
page_url | string | No | — | Filter to a specific page |
{
"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 }
}Bewertungsschwellen:
| Metric | Good | Needs Improvement | Poor |
|---|---|---|---|
| LCP | ≤ 2500ms | ≤ 4000ms | > 4000ms |
| CLS | ≤ 0.1 | ≤ 0.25 | > 0.25 |
| INP | ≤ 200ms | ≤ 500ms | > 500ms |
| FCP | ≤ 1800ms | ≤ 3000ms | > 3000ms |
| TTFB | ≤ 800ms | ≤ 1800ms | > 1800ms |
KI-Insights-Tools
17. get_insights
Rufen Sie KI-generierte praktische Erkenntnisse über die Websiteleistung ab.
Kosten: 1 Abfrage
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The website UUID |
severity | string | No | — | Filter: critical, warning, info |
status | string | No | active | Filter: active, acknowledged, resolved |
limit | number | No | 10 | Max 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
Rufen Sie erkannte Anomalien ab — ungewöhnliche Abweichungen in Metriken.
Kosten: 1 Abfrage
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The website UUID |
severity | string | No | — | Filter: critical, warning, info |
metric | string | No | — | Filter by metric (e.g. visitors, bounce_rate) |
limit | number | No | 10 | Max anomalies (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
Erstellen Sie eine wöchentliche Leistungszusammenfassung, die diese Woche mit der letzten Woche vergleicht.
Kosten: 1 Abfrage
| Parameter | Type | Required | Description |
|---|---|---|---|
website_id | string | Yes | The website UUID |
{
"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
Erhalten Sie KI-gestützte Optimierungsempfehlungen.
Kosten: 1 Abfrage
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
website_id | string | Yes | — | The website UUID |
category | string | No | — | Filter: performance, engagement, conversion, seo |
limit | number | No | 5 | Max recommendations (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
}Verwaltungs-Tools
21. list_websites
Listet alle Websites auf, auf die der aktuelle API-Schlüssel zugreifen kann.
Kosten: 1 Abfrage
Dieses Tool benötigt keine Parameter. Schlüssel mit Vollzugriff sehen alle Team-Websites; seiten-begrenzte Schlüssel sehen nur ihre zugewiesene Website.
{
"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
Erstellt ein benutzerdefiniertes Konversionsziel. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
name | string | Ja | Zielname (max. 100 Zeichen) |
goal_type | string | Ja | url_match, element_click oder custom_event |
url_pattern | string | Für url_match | URL-Muster zum Abgleich |
url_match_type | string | Nein | exact, contains, starts_with, ends_with, regex (Standard: contains) |
css_selector | string | Für element_click | CSS-Selektor des Elements |
event_name | string | Für custom_event | Name des benutzerdefinierten Ereignisses zum Nachverfolgung |
{
"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
Erstellt oder aktualisiert einen Konversionstrichter. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
name | string | Ja | Trichter-Name |
steps | array | Ja | 2–10 geordnete Schritte (siehe unten) |
funnel_id | string | Nein | UUID des bestehenden Trichters zum Aktualisieren |
Schritt-Objekt:
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
step_name | string | Ja | Anzeigename |
step_type | string | Ja | url_match, element_click, custom_event |
url_pattern | string | Nein | URL-Muster (für url_match) |
url_match_type | string | Nein | 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
Exportiert Analysedaten im JSON- oder CSV-Format.
Kosten: 1 Abfrage | Erfordert: Scale+ (dataExport Feature-Flag)
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
website_id | string | Ja | — | Die Website-UUID |
format | string | Nein | json | Ausgabeformat: csv, json |
metrics | array | Nein | ["visitors","pageviews","unique_visitors"] | Metriken zum Einschließen |
time_range | string | Nein | 30d | Zeitbereich: 7d, 30d, 90d, 1y |
Verfügbare Metriken: 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
Überprüft die aktuelle API-Schlüssel-Nutzung und das verbleibende Kontingent.
Kosten: 1 Abfrage
Dieses Tool benötigt keine Parameter.
{
"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
Ruft die Konfiguration und Einstellungen einer Website ab.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
{
"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
Aktualisiert Website-Konfigurationseinstellungen. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
name | string | Nein | Website-Anzeigename |
timezone | string | Nein | IANA-Zeitzone (z. B. America/New_York) |
allowed_domains | array | Nein | Liste der zulässigen Domänen für das Tracking-Skript |
{
"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
Aktiviert oder deaktiviert die Freigabe des öffentlichen Dashboards für eine Website. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
enabled | boolean | Ja | true zum Aktivieren, false zum Deaktivieren |
{
"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
Aktiviert oder deaktiviert den Cookie-losen Tracking-Modus. Erfordert read_write-Modus. Pro-Plan oder höher.
Wenn aktiviert, verwendet das Tracking-Skript SHA-256(IP_subnet + UA + daily_salt) zur Besucheridentifikation anstelle von Cookies oder localStorage.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
enabled | boolean | Ja | true zum Aktivieren, false zum Deaktivieren |
{
"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"
}
}Cookie-loses Tracking ist datenschutzfreundlich. Es werden keine Cookies oder localStorage verwendet. Die Besucheridentifikation wird serverseitig mit einem täglich rotierenden Salt berechnet.
30. get_tracking_code
Ruft das Tracking-Code-Snippet für eine Website ab. Verwenden Sie dies, um das Script-Tag zum Installieren auf Ihrer Website abzurufen.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
{
"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
Generiert einen neuen Tracking-Code für eine Website. Erfordert read_write-Modus.
Dies macht den vorherigen Tracking-Code ungültig. Sie müssen das Script-Tag auf Ihrer Website nach der Regenerierung aktualisieren.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
{
"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
Listet alle Ziele für eine Website mit ihrem aktuellen Status und Konversionsraten auf.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
website_id | string | Ja | — | Die Website-UUID |
include_inactive | boolean | Nein | false | Deaktivierte Ziele einschließen |
time_range | string | Nein | 30d | Zeitbereich für Konversionsstatistiken: 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
Aktualisiert die Konfiguration eines bestehenden Ziels. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
goal_id | string | Ja | Die Ziel-UUID |
name | string | Nein | Aktualisierter Zielname |
url_pattern | string | Nein | Aktualisiertes URL-Muster |
url_match_type | string | Nein | exact, contains, starts_with, ends_with, regex |
css_selector | string | Nein | Aktualisierter CSS-Selektor |
event_name | string | Nein | Aktualisierter Ereignisname |
{
"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
Löscht ein Ziel dauerhaft. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
goal_id | string | Ja | Die zu löschende Ziel-UUID |
{
"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
Aktiviert oder deaktiviert ein Ziel, ohne es zu löschen. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
goal_id | string | Ja | Die Ziel-UUID |
is_active | boolean | Ja | true zum Aktivieren, false zum Deaktivieren |
{
"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
Listet alle Trichter für eine Website auf.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
{
"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
Löscht einen Trichter dauerhaft. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
funnel_id | string | Ja | Die zu löschende Trichter-UUID |
{
"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
Löscht eine Website und alle ihre Analysedaten dauerhaft. Erfordert read_write-Modus und full_access-Schlüssel.
Diese Aktion ist nicht rückgängig zu machen. Alle Analysedaten, Ziele, Trichter und Einstellungen für diese Website werden dauerhaft gelöscht.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die zu löschende Website-UUID |
confirm | boolean | Ja | Muss true sein, um die Löschung zu bestätigen |
{
"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
Erstellt eine neue Website zum Tracking. Erfordert read_write-Modus und full_access-Schlüssel.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
domain | string | Ja | Die Website-Domäne (z. B. docs.example.com) |
name | string | Nein | Anzeigename (Standardeinstellung: die Domäne) |
timezone | string | Nein | IANA-Zeitzone (Standard: 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>"
}Einstellungs-Tools
39. add_ip_exclusion
Fügt eine IP-Adresse oder einen CIDR-Bereich zur Ausschlussliste hinzu. Besucher von ausgeschlossenen IPs werden nicht nachverfolgt. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
ip_address | string | Ja | IP-Adresse oder CIDR-Bereich (z. B. 192.168.1.0/24) |
label | string | Nein | Beschreibende Bezeichnung (z. B. „Büronetzwerk") |
{
"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
Entfernt eine IP-Adresse aus der Ausschlussliste. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
exclusion_id | string | Ja | Die zu entfernende Ausschluss-UUID |
{
"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
Fügt ein URL-Pfad-Muster hinzu, das von der Nachverfolgung ausgeschlossen werden soll. Seiten, die dem Muster entsprechen, generieren keine Analyseereignisse. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
path_pattern | string | Ja | URL-Pfad-Muster zum Ausschließen (z. B. /admin/*, /internal/health) |
match_type | string | Nein | exact, starts_with, contains, regex (Standard: starts_with) |
label | string | Nein | Beschreibende Bezeichnung |
{
"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
Entfernt einen Pfad-Ausschluss. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
exclusion_id | string | Ja | Die zu entfernende Ausschluss-UUID |
{
"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
Listet alle IP- und Pfad-Ausschlüsse für eine Website auf.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
{
"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
Ruft die Benachrichtigungseinstellungen für das aktuelle Team ab.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
{
"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
Aktualisiert die Benachrichtigungseinstellungen. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
weekly_digest_email | boolean | Nein | Wöchentliche Zusammenfassung aktivieren/deaktivieren |
anomaly_alerts | boolean | Nein | Anomaliebewachung aktivieren/deaktivieren |
anomaly_threshold | string | Nein | Minimaler Schweregrad: info, warning, critical |
goal_completion_alerts | boolean | Nein | Zielabschlussbenachrichtigungen aktivieren/deaktivieren |
uptime_alerts | boolean | Nein | Verfügbarkeitswarnungen aktivieren/deaktivieren |
email_recipients | array | Nein | Liste der zu benachrichtigenden E-Mail-Adressen |
{
"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"
}
}Team-Tools
46. get_team_members
Listet alle Mitglieder des Teams auf. Erfordert full_access-Schlüssel.
Kosten: 1 Abfrage
Dieses Tool benötigt keine Parameter.
{
"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
Laden Sie ein neues Mitglied per E-Mail zu Ihrem Team ein. Erfordert read_write-Modus, full_access-Schlüssel und Pro-Plan oder höher.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
email | string | Ja | E-Mail-Adresse zum Einladen |
role | string | Nein | Rolle: member (Standard) oder 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
Entfernt ein Mitglied aus dem Team. Erfordert read_write-Modus und full_access-Schlüssel.
Sie können den Team-Eigentümer nicht entfernen. Das Mitglied verliert sofort den Zugriff auf alle Team-Websites.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
member_id | string | Ja | Die Benutzer-ID des zu entfernenden Mitglieds |
{
"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]"
}API-Schlüssel-Tools
50. list_api_keys
Listet alle API-Schlüssel für das aktuelle Team auf. Gibt Schlüssel-Metadaten zurück (nicht die Schlüsselwerte selbst).
Kosten: 1 Abfrage
Dieses Tool benötigt keine Parameter.
{
"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
Erstellt einen neuen API-Schlüssel. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
name | string | Ja | Anzeigename für den Schlüssel |
type | string | Ja | full_access oder site_access |
website_id | string | Nein | Erforderlich für site_access-Schlüssel |
{
"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."
}Der vollständige API-Schlüsselwert wird nur einmal zum Zeitpunkt der Erstellung zurückgegeben. Speichern Sie ihn sicher.
52. revoke_api_key
Widerruft (löscht) einen API-Schlüssel. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key_id | string | Ja | Die zu widerrufende API-Schlüssel-ID |
{
"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
Ruft detaillierte Informationen zu einem bestimmten API-Schlüssel ab.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key_id | string | Ja | Die API-Schlüssel-ID |
{
"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
Aktualisiert die MCP-Berechtigungen für einen API-Schlüssel. Erfordert read_write-Modus.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
key_id | string | Ja | Die API-Schlüssel-ID |
mcp_enabled | boolean | Nein | MCP-Zugriff aktivieren oder deaktivieren |
mcp_mode | string | Nein | read_only oder read_write |
permissions | object | Nein | Schalter für Funktionsgruppen (z. B. {"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
}
}Uptime-Tools
55. list_uptime_monitors
Listet alle Uptime-Monitore des aktuellen Teams auf.
Kosten: 1 Abfrage
Dieses Tool nimmt keine Parameter an.
{
"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
Ruft aktuellen Status und Antwortzeit für einen bestimmten Monitor ab.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
monitor_id | string | Ja | Die Monitor-UUID |
{
"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
Erstellt einen neuen Uptime-Monitor. Erfordert Schreibzugriff.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
url | string | Ja | Die zu überwachende URL |
name | string | Nein | Anzeigename (Standard: URL-Hostname) |
interval | number | Nein | Prüfintervall in Sekunden (Standard: 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
Löscht einen Uptime-Monitor. Erfordert Schreibzugriff.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
monitor_id | string | Ja | Die zu löschende Monitor-UUID |
{
"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
Ruft Uptime-Verlauf und Ereignisprotokoll für einen Monitor ab.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
monitor_id | string | Ja | Die Monitor-UUID |
time_range | string | Nein | Zeitspanne: 24h, 7d, 30d, 90d (Standard: 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
}Website-Verwaltungstools (60-64)
60. update_website_name
Aktualisiert den Anzeigenamen einer Website. Erfordert Schreibzugriff.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
name | string | Ja | Neuer Anzeigename |
{
"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
Aktualisiert die Zeitzone einer Website. Wirkt sich auf die Aggregation täglicher Analysen aus. Erfordert Schreibzugriff.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
timezone | string | Ja | IANA-Zeitzone (z. B. 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
Aktualisiert die Domain einer Website. Erfordert Schreibzugriff.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
domain | string | Ja | Neue Domain (z. B. 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
Setzt die Analysenerfassung für eine Website vorübergehend aus. Es werden keine neuen Ereignisse aufgezeichnet. Erfordert Schreibzugriff.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
{
"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
Setzt die Analysenerfassung für eine angehaltene Website fort. Erfordert Schreibzugriff.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
{
"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"
}Berichtstools (65-69)
65. schedule_report
Zeitplant einen wiederkehrenden Analysebericht zum Versand per E-Mail. Erfordert Schreibzugriff.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
frequency | string | Ja | daily, weekly oder monthly |
recipients | array | Ja | Liste der E-Mail-Adressen |
metrics | array | Nein | Spezifische einzubeziehende Kennzahlen (Standard: alle) |
{
"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
Ruft die Konfiguration des geplanten Berichts für eine Website ab.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
{
"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
Bricht einen geplanten Bericht ab. Erfordert Schreibzugriff.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
report_id | string | Ja | Die Bericht-Zeitplan-ID zum Abbrechen |
{
"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
Ruft den Verlauf der Datenexporte für eine Website ab.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
limit | number | Nein | Max. Ergebnisse (Standard: 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
Ruft die Datenspeicherungsrichtlinie für eine Website auf Grundlage des aktuellen Plans ab.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
{
"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"
}Umsatz- & Datentools (70-75)
70. set_revenue_currency
Legt die Standard-Anzeigewährung für Umsätze einer Website fest. Verwendet ISO-4217-Währungscodes. Erfordert Schreibzugriff.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
currency | string | Ja | ISO-4217-Währungscode (z. B. 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
Ruft umsatzbezogene Einstellungen für eine Website ab, einschließlich der konfigurierten Währung und Feldzuordnungen.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
{
"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
Fügt eine Domain zur CORS-Whitelist hinzu. Nur auf der Whitelist eingetragene Domains können Verfolgungsdaten an diese Website senden. Erfordert Schreibzugriff.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
domain | string | Ja | Domain zum Eintrag auf Whitelist (z. B. 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
Entfernt eine Domain aus der CORS-Whitelist. Erfordert Schreibzugriff.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
domain | string | Ja | Domain, die aus der Whitelist entfernt wird |
{
"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
Listet alle Domains in der CORS-Whitelist für eine Website auf.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
{
"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
Löscht alle Daten eines bestimmten Besuchers von einer Website. Wird für die DSGVO-Compliance verwendet (Recht auf Löschung). Diese Aktion ist nicht rückgängig zu machen. Erfordert Schreibzugriff.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
website_id | string | Ja | Die Website-UUID |
visitor_id | string | Ja | Die Besucher-UUID, deren Daten gelöscht werden sollen |
{
"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"
}Dies löscht dauerhaft alle Besucherdaten einschließlich Seitenaufrufe, Sitzungen und Ereignisse. Dies kann nicht rückgängig gemacht werden.
Beispiele für mehrstufige Arbeitsabläufe
Diese Beispiele zeigen komplette Request-Response-Ketten für häufige Aufgaben. Jeder Schritt verwendet das oben beschriebene JSON-RPC-Format.
Wöchentlicher Verkehrsbericht
Ein typischer Berichtsablauf: Websites entdecken, dann Besucherstatistiken, Top-Seiten und Verkehrsquellen abrufen.
Schritt 1 — Websites entdecken:
{
"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"}]"
}]
}
}Schritt 2 — Besucherübersicht abrufen:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_visitors",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d"
}
}
}Schritt 3 — Top-Seiten abrufen:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_top_pages",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d",
"limit": 10
}
}
}Schritt 4 — Verkehrsquellen abrufen:
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_traffic_sources",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d"
}
}
}Gesamtkosten: 4 Abfragen (1 + 1 + 1 + 1)
Performance Audit
Identifizieren Sie Performance-Probleme, Fehler und erhalten Sie KI-Empfehlungen.
Schritt 1 — Websites auflisten (wie oben, website_id abrufen)
Schritt 2 — Core Web Vitals prüfen:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_performance_metrics",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d"
}
}
}Schritt 3 — Fehler prüfen:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_errors",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d",
"limit": 20
}
}
}Schritt 4 — KI-Empfehlungen abrufen:
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_recommendations",
"arguments": {
"website_id": "ws_abc123"
}
}
}Gesamtkosten: 4 Abfragen (1 + 1 + 1 + 1)
Schnelle Zustandsprüfung
Schnelle Prüfung der verbleibenden Quote und aktuellen Live-Besucher — ideal am Anfang einer Sitzung.
Schritt 1 — Verbleibende Quote prüfen:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_api_usage",
"arguments": {}
}
}Schritt 2 — Live-Besucher prüfen:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_realtime_visitors",
"arguments": {
"website_id": "ws_abc123"
}
}
}Gesamtkosten: 2 Abfragen (1 + 1)
Woche-zu-Woche-Vergleich
Vergleichen Sie die Kennzahlen dieser Woche mit der letzten Woche, um Trends zu ermitteln.
Schritt 1 — Websites auflisten (website_id abrufen)
Schritt 2 — Zeiträume vergleichen:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "compare_periods",
"arguments": {
"website_id": "ws_abc123",
"current_period": "7d",
"previous_period": "7d"
}
}
}Schritt 3 — Anomalien erkennen:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "get_anomalies",
"arguments": {
"website_id": "ws_abc123",
"time_range": "7d"
}
}
}Gesamtkosten: 3 Abfragen (1 + 1 + 1)
Website-Einrichtung & Konfiguration
Richten Sie eine neue Website mit Ausschlüssen und Cookie-freier Verfolgung ein.
Schritt 1 — Website erstellen:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_website",
"arguments": {
"domain": "docs.example.com",
"name": "Documentation"
}
}
}Schritt 2 — Cookie-freie Verfolgung aktivieren:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "toggle_cookieless_tracking",
"arguments": {
"website_id": "NEW_WEBSITE_ID",
"enabled": true
}
}
}Schritt 3 — Büro-IP ausschließen:
{
"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"
}
}
}Schritt 4 — Verfolgungscode zum Installieren abrufen:
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_tracking_code",
"arguments": {
"website_id": "NEW_WEBSITE_ID"
}
}
}Gesamtkosten: 4 Abfragen (1 + 1 + 1 + 1)
Neue Tools
76. get_retention_data
Ruft Kohorten-Retentionsanalyse ab, die zeigt, wie gut Ihre Website Besucher im Laufe der Zeit behält. Gibt Kohortendaten gruppiert nach dem Besuch-Zeitraum des Besuchers zurück.
Kosten: 1 Abfrage | Erfordert: Pro+ (retentionAnalysis Feature-Flag)
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
website_id | string | Ja | — | Die Website-UUID |
time_range | string | Nein | 30d | Zeitspanne: 7d, 30d, 90d, 1y |
cohort_size | string | Nein | week | Kohortengrupierung: 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
Ruft Besucherprofile mit Sitzungsverlauf und Verhaltensdaten ab. Gibt einzelne Besucherdatensätze mit ihrem Besuchsverlauf, angesehenen Seiten und Engagement-Kennzahlen zurück.
Kosten: 1 Abfrage
| Parameter | Typ | Erforderlich | Standard | Beschreibung |
|---|---|---|---|---|
website_id | string | Ja | — | Die Website-UUID |
limit | number | Nein | 20 | Zurückzugebende Profile (1-50) |
country_code | string | Nein | — | Filterung nach ISO-Ländercode (z. B. US, DE) |
min_sessions | number | Nein | — | Minimale Anzahl von Sitzungen |
time_range | string | Nein | 30d | Zeitspanne: 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
}JSON-RPC-Protokollreferenz
Alle MCP-Anfragen verwenden das JSON-RPC 2.0-Format:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "tool_name",
"arguments": { ... }
}
}Verfügbare Methoden:
| Methode | Beschreibung |
|---|---|
initialize | Handshake — gibt Serverinfo und Fähigkeiten zurück |
tools/list | Listet alle verfügbaren Tools mit Schemas auf |
tools/call | Führt ein Tool aus |
ping | Zustandsprüfung |
Fehler-Antwortformat:
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32003,
"message": "Daily query limit exceeded. Upgrade at https://app.zenovay.com/settings"
}
}Siehe Berechtigungen & Limits für die vollständige Fehlercod-Referenz.