Skip to main content
6 min read

Permissions & Limits

This page covers how access control, rate limiting, and error handling work for the Zenovay MCP integration.


OAuth Scopes

When you authorize an MCP client, you choose permission levels for each tool category. These are represented as OAuth scopes in the format {category}:{level}.

Permission Levels

LevelDescription
NoneNo access — tools in this category are hidden and blocked
ReadQuery data, view analytics, export reports
WriteRead access plus creating, updating, and deleting resources

Available Scopes

ScopeDescription
analytics:readQuery visitors, pages, traffic, geo, tech, real-time data
advanced:readQuery funnels, sessions, heatmaps, errors, revenue, uptime
advanced:writeCreate/delete uptime checks
ai_insights:readQuery AI insights, anomalies, digests, recommendations
management:readList websites, goals, funnels, settings, reports
management:writeCreate/update/delete goals, funnels, websites, API keys
settings:readView exclusions, notifications, team members, domains
settings:writeManage exclusions, notifications, team members, domains
webhooks:readList webhooks, deliveries, automation rules
webhooks:writeCreate/delete/test webhooks

Shorthand scopes:

  • read — All categories at read level
  • write — All categories at write level (includes read)

Analytics and AI Insights are read-only categories — they have no write tools. The Write button is disabled for these during authorization.


Write-Protected Tools

The following tools require Write permission for their category. If you authorized with Read-only access, these tools return error code -32007:

Management (Write)

create_goal, update_goal, delete_goal, toggle_goal, manage_funnel, delete_funnel, update_website_settings, toggle_public_dashboard, toggle_cookieless_tracking, regenerate_tracking_code, update_website_name, update_website_timezone, update_website_domain, pause_tracking, resume_tracking, schedule_report, cancel_report, create_api_key, delete_api_key, update_api_key_settings

Settings (Write)

add_ip_exclusion, remove_ip_exclusion, add_path_exclusion, remove_path_exclusion, update_notification_settings, invite_team_member, remove_team_member, set_revenue_currency, add_allowed_domain, remove_allowed_domain, request_data_deletion

Advanced (Write)

create_uptime_check, delete_uptime_check

Webhooks (Write)

create_webhook, delete_webhook, test_webhook

All other tools work with Read access.


Changing Permissions

To change the permissions granted to an MCP client:

  1. Revoke the existing token — In Settings > Usage, find the connected application and revoke it
  2. Re-authorize — Your MCP client will prompt for authorization again
  3. Select new permissions — Choose different Read/Write levels on the consent page

You cannot modify permissions for an existing OAuth token. You must revoke and re-authorize.


Plan-Gated Features

Certain tools are tied to features that require specific subscription plans:

ToolRequired PlanFeature
get_session_replaysPro+Session Replay
get_heatmap_dataPro+Heatmaps
get_revenuePro+Revenue Attribution
get_retention_dataPro+Retention Analysis
export_dataScale+Data Export

Calling a plan-gated tool on an unsupported plan returns error code -32002.

Data Retention Limits

Analytics queries are automatically clamped to your plan's data retention window:

PlanMax History
Free1 year (365 days)
Pro2 years (730 days)
Scale4 years (1,460 days)
EnterpriseCustom

Rate Limits

Daily Query Limit

Each team has a daily MCP query budget. All connected applications share the same quota.

PlanQueries / DayPer-Minute Limit
Free2510 req/min
Pro10030 req/min
Scale50060 req/min
Enterprise10,000120 req/min

Usage resets at 00:00 UTC every day.

Query Cost

ToolCostReason
query_analytics3Natural language AI processing
get_session_replays2Heavy data retrieval
get_heatmap_data2Heavy data retrieval
All other tools1Standard queries

Checking Usage

Use the get_api_usage tool or check Settings > Usage in the dashboard:

Check remaining quotaJSON
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
  "name": "get_api_usage",
  "arguments": {}
}
}

Error Codes

Standard JSON-RPC Errors

CodeNameDescription
-32700Parse ErrorInvalid JSON in request body
-32601Method Not FoundUnknown method or tool name
-32602Invalid ParamsMissing or invalid tool parameters
-32603Internal ErrorServer-side error

Zenovay MCP Errors

CodeNameDescriptionResolution
-32001Auth FailedInvalid or expired OAuth tokenRe-authorize your MCP client
-32002Tier RequiredFeature requires a higher planUpgrade at app.zenovay.com/plans
-32003Rate LimitedDaily query limit exceededWait until 00:00 UTC or upgrade
-32004Not FoundResource not foundCheck the ID parameter
-32005Feature UnavailableFeature not available on your planUpgrade your plan
-32006MCP Not EnabledLegacy error (API keys no longer accepted)Use OAuth 2.1 to connect
-32007Write RequiredTool requires write permissionRe-authorize with Write access
-32008Category DisabledTool category not enabledRe-authorize and enable the category

Error Response Format

Error responseJSON
{
"jsonrpc": "2.0",
"id": 1,
"error": {
  "code": -32007,
  "message": "Tool 'create_goal' requires write permission for the 'management' category. Re-authorize with management:write scope."
}
}

Security

OAuth 2.1 provides several security advantages over API keys:

  1. No secrets to manage — Tokens are issued automatically, no key to copy/paste
  2. Granular scopes — Grant only the permissions each client needs
  3. Token expiration — Access tokens expire after 1 hour and refresh automatically
  4. Instant revocation — Revoke a client's access immediately from the dashboard
  5. PKCE protection — Authorization codes can't be intercepted
  6. Audit trail — See which clients are connected and when they last made requests

API keys (zv_*) are no longer accepted for MCP connections. All MCP clients must use OAuth 2.1. API keys continue to work for the REST API.

Was this page helpful?