Skip to main content
Glama
interhub

nana800-mcp-server

Official
by interhub

analytics_export_status

Check an analytics export's progress and retrieve its download link. Poll until DONE or FAILED, then download the file while the link is valid.

Instructions

Get the status of an analytics export and its download link. Returns export_job (export_status, rows_count, is_truncated, file_name, file_size_bytes, error_text, expires_time), download_url and download_url_expires_time. download_url is null until export_status is DONE. 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
export_idYesThe export ID (_id returned by analytics_export_create)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.2.1

TDQS

A4.7/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden and does so: background execution model, the QUEUED -> RUNNING -> DONE|FAILED state machine, download_url being null until DONE, 15-minute link lifetime, 7-day file retention, and the gzip/Content-Encoding behavior with a concrete curl invocation. This is precisely the operational context an agent cannot infer from the one-parameter schema.

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

Conciseness5/5

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

Front-loaded with purpose and return shape, then lifecycle, polling cadence, download mechanics, and retention, each in its own compact sentence. The gzip/curl sentence is long but is actionable operational detail rather than filler.

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?

With no annotations and no output schema, the description fully compensates by enumerating the response fields (export_job sub-fields, download_url and its expiry) and describing async behavior. Nothing an agent needs to call and correctly interpret this tool is missing.

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

Parameters3/5

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

Only one parameter and schema description coverage is 100%, so the schema already documents export_id as the _id returned by analytics_export_create. The description adds no further parameter-level detail, but none is needed; baseline 3 applies.

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?

States a specific verb and resource ('Get the status of an analytics export and its download link') and immediately enumerates the returned fields. An agent can distinguish it from analytics_export_create and analytics_exports_list without opening any 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?

Gives explicit operating instructions: poll until DONE or FAILED, no more often than once per ~10 seconds, call again for a fresh link once the 15-minute URL expires. It also confirms no rows come through MCP, only status and link, which prevents the agent from attempting a data-fetch path that doesn't exist.

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