Skip to main content
Glama
interhub

nana800-mcp-server

Official
by interhub

analytics_export_create

Start a background export of organization analytics data (events, one user's events, or user properties) to CSV or JSONL, then poll status and download the file via a time-limited link.

Instructions

Start a file export of analytics data of an org (org_id from analytics_orgs_list or MCP_ANALYTICS_ORG_ID): EVENTS (events of the org or project), USER_EVENTS (events of one user, user_filter.analytics_user_ids must have exactly one ID) or USERS (users with their properties). Up to 1,000,000 rows per file, is_truncated is true when more rows matched. Limits per org: one active export at a time (HTTP 409 analytics_export_already_running), 10 exports per hour (HTTP 429 analytics_export_hourly_limit), exports started with an API key: one per 10 minutes (HTTP 429 analytics_export_api_key_interval). HTTP 400 analytics_export_invalid_filter means the filter does not fit the export kind, HTTP 403 means the API key user is not a member of the org. The export runs in the background: export_status goes QUEUED -> RUNNING -> DONE or FAILED. Poll analytics_export_status until DONE or FAILED, not more often than once per ~10 seconds. When DONE, download_url is a direct link valid for 15 minutes (call analytics_export_status again for a fresh one). The file is served gzipped with Content-Encoding: gzip: a browser saves plain CSV or JSONL, from a shell use curl --compressed -o file.csv "<download_url>". Files are deleted 7 days after creation. No rows are returned through MCP, only the status and the link.

Input Schema

NameRequiredDescriptionDefault
org_idNoThe analytics org ID from analytics_orgs_list (uses MCP_ANALYTICS_ORG_ID env if not provided)
time_toNoEVENTS and USER_EVENTS only: events up to this time, ISO 8601 date-time with a timezone (e.g. 2026-10-08T00:00:00.000Z)
time_fromNoEVENTS and USER_EVENTS only: events from this time, ISO 8601 date-time with a timezone (e.g. 2026-10-01T00:00:00.000Z)
export_kindYesWhat to export
file_formatNoFile format, CSV by default. JSONL is one JSON object per line
user_filterNoFor EVENTS: only events of the matching users. For USER_EVENTS: required, analytics_user_ids with exactly one user ID. For USERS: which users to export, all users if not provided
csv_delimiterNoCSV column delimiter, comma by default
app_project_idNoThe analytics app project ID, all projects of the org if not provided
event_types_filterNoEVENTS and USER_EVENTS only: events of any of these types, each type with its own property conditions. All event types if not provided

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.2.1

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so thoroughly: concurrency limit (one active export, HTTP 409), hourly cap (HTTP 429), API-key interval (429), filter mismatch (400) and membership (403) errors, plus the QUEUED->RUNNING->DONE/FAILED lifecycle. It also discloses that nothing is returned through MCP, that the download link is valid 15 minutes, that files are gzipped (Content-Encoding) with a curl --compressed recipe, and that files are deleted after 7 days.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence carries operational information — purpose, limits, errors, lifecycle, download mechanics — with the purpose front-loaded. It is a single dense paragraph rather than being broken into scannable segments, which is the only reason it falls short of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter asynchronous export tool with nested filters and no output schema, the description supplies everything an agent needs: where org_id comes from, kind-specific requirements, error meanings, polling cadence, and how the result is actually retrieved. Nothing material is left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter semantics the schema cannot express: USER_EVENTS requires exactly one ID in user_filter.analytics_user_ids, time_from/time_to apply only to EVENTS and USER_EVENTS, and the 1,000,000-row cap with is_truncated semantics. It does not explain app_project_id or csv_delimiter beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ("Start a file export of analytics data of an org") and immediately enumerates the three export kinds with their scope. It also names the sibling analytics_export_status as the polling tool, so an agent can distinguish it from analytics_exports_list without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance on when to use it and what to do next: poll analytics_export_status until DONE or FAILED, no more often than every ~10 seconds, and call it again if the download link expires. It also states prerequisites (org_id from analytics_orgs_list or MCP_ANALYTICS_ORG_ID) and constraint cases per export kind.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.