Connect your AI assistant to Whatagraph and ask questions about your marketing data in plain language — no code, no exports, no dashboards to dig through.
The Model Context Protocol (MCP) is an open standard that lets AI assistants like Claude connect directly to the tools you already use. This server gives your AI assistant secure, read-only access to your Whatagraph marketing data — so you can ask questions and get answers without leaving your conversation.
To connect your AI assistant to Whatagraph, copy the server URL below and paste it into your AI client's MCP settings:
https://mcp.whatagraph.com/mcp
Works with Claude, Cursor, and any MCP-compatible client. Just paste this URL into the MCP server settings — no API keys needed.
If your client uses a configuration file, add this:
{
"mcpServers": {
"whatagraph": {
"type": "streamable-http",
"url": "https://mcp.whatagraph.com/mcp"
}
}
}
The first time your AI assistant connects, you will need to authorize it to access your Whatagraph data. If you are already logged in to Whatagraph, this takes just a few clicks — no passwords or API keys to manage.
Your AI client will open a Whatagraph authorization page. If you are already logged in, you will go straight to team selection.
Choose which Whatagraph team you want the AI assistant to access. If you belong to multiple teams, pick the one you want to work with.
Click approve and you are all set. Your AI assistant now has access to the marketing data for your selected team.
Here are some real-world examples of what you can ask your AI assistant once connected to Whatagraph:
Ask your AI assistant to compare campaign performance across date ranges and channels:
Pull data from Google Analytics to understand where your traffic is coming from:
Compare ad performance across Facebook, Google Ads, and other paid channels:
Get a high-level overview across all your connected data sources:
Behind the scenes, your AI assistant uses the following tools to access your data. You do not need to call these yourself — just ask a question in plain language and the assistant will pick the right tools automatically.
CALL THIS FIRST — before any other tool — on the first turn of every
new conversation. Discovers available workflow skills: step-by-step
playbooks for common Whatagraph tasks. The index is small, cached, and
read-only. Use load-skill to read the full content of a skill. Call
again when entering a new domain.
Use action to choose the operation:
list — all available skillssearch — find skills matching a query (requires query parameter).
Supports natural language queries (e.g. "how to create a report")
and keyword searches.Load a workflow skill — a step-by-step playbook for a Whatagraph task.
Use list-skills first to discover available skills.
Use action to choose the operation:
show — full skill content (markdown)header — description + first 200 characters previewBrowse data sources connected to your team. Data sources are specific accounts/properties
connected from integrations (e.g. a specific Google Ads account, a specific GA4 property).
Use action to choose the operation:
list — list all connected data sources (cursor-paginated, pass cursor from page.cursor for next page)show — full details for one source (requires source_id)list_metadata — list metadata for source management; use scope to fetch only what you need (integrations, accounts, spaces, users, tags, categories, or all)list_report_types — list available report types for a source (requires source_id)list_dimensions_and_metrics — list available dimensions and metrics (cursor-paginated, requires source_id, optionally report_type, filter, is_universal)list_usage — list usage counts for sources across reports, blends, transfers, source groups, and overviews (requires source_ids)Start here when you need to understand what data is available before fetching it.
Tip: If you haven't already this conversation, consider calling list-skills first to check for a workflow playbook (e.g. report digests, metric fetching, blends). Skip if nothing relevant exists.
Fetch marketing data from a connected source. Returns rows of metric values optionally
grouped by dimensions for a date range. Use the list-sources tool first to discover available
sources, report types, and field names. Important: if the response indicates data is not
yet ready (rate-limited or processing), wait the indicated retry_after seconds and call
again with the same parameters.
Field IDs come in three families, and the valid set depends on the source AND report type:
native dotted IDs (e.g. metrics.cost_micros on Google Ads), bare IDs (e.g. sessions on GA4),
and custom-field IDs (universal_metric_{id} / universal_dimension_{id}). Never guess the
family — copy the external_id verbatim from list-sources action=list_dimensions_and_metrics
for the same source_id and report_type you pass here.
Tip: If you haven't already this conversation, consider calling list-skills first to check for a workflow playbook (e.g. report digests, metric fetching, blends). Skip if nothing relevant exists.
Browse spaces (also known as "client folders"). Spaces are the top-level containers
that organize reports and data sources. If a user says "space", "folder", or "client",
they mean a space.
Use action to choose the operation:
list — cursor-paginated list of spaces the user can access (pass cursor from page.cursor for next page)show — full details for one space (report/measurement counts)children — list sub-spaces under one spaceBrowse reports within spaces (client folders). Reports contain pages of data
visualization widgets. Use the list-spaces tool first to find the right space,
then this tool to explore reports inside it.
Use action to choose the operation:
list — cursor-paginated list of reports, filterable by name, space, integration, or source (pass cursor from page.cursor for next page)show — full report details: pages with widgets, date range, share settingslist_sources — list data sources and sample integrations used in a reportresolve — resolve a live-report URL, share URL, or hash to a report_id. Pass the URL or hash in url_or_hashTip: If you haven't already this conversation, consider calling list-skills first to check for a workflow playbook (e.g. report digests, metric fetching, blends). Skip if nothing relevant exists.
Browse tabs (pages) within a report. Each report has one or more tabs, each
containing widgets (data visualizations). Called "tabs" in the UI, stored as
"report_pages" in the backend. Use the list-reports tool first to find the report,
then this tool to explore its tabs.
Use action to choose the operation:
list — list all tabs in a report (id, name, position, widget count)show — full tab details with all widgets and their typesTip: If you haven't already this conversation, consider calling list-skills first to check for a workflow playbook (e.g. report digests, metric fetching, blends). Skip if nothing relevant exists.
Browse widgets on report tabs. Widgets are visual data components — charts,
tables, single values, funnels, media, goals, etc. — that display marketing data
from connected sources. If a user says "chart", "graph", "table", "KPI card",
or "visualization", they mean a widget.
Use action to choose the operation:
list — list all widgets in a report (summaries grouped by tab)show — full widget details: type, configs with metrics/dimensions/source, layoutcsv_export — export widget data as CSV rows. Check data_status in the response: ready (data loaded), warning (data source error or still warming up — check warning_message for details, retry later), no_data (no data for the date range)list_premade — cursor-paginated list of premade/template widgets (no report_id needed, pass cursor from page.cursor for next page). Requires channel_id to scope results to a specific integrationTip: If you haven't already this conversation, consider calling list-skills first to check for a workflow playbook (e.g. report digests, metric fetching, blends). Skip if nothing relevant exists.
Export all widgets in a report (or a single tab) as CSV in one call. Use this
instead of calling list-widgets with action=csv_export once per widget — one
export-report call returns every widget's CSV plus metadata (title, source,
date range, widget type), grouped by tab.
Parameters:
report_id (required) — report to exporttab_id (optional) — limit to a single tabwidget_ids (optional) — limit to specific widgetsfrom / till (optional, YYYY-MM-DD) — fallback date range for widgets that don't have one configuredComment, calendar, image, and filter control widgets are skipped (no tabular data).
Tip: If you haven't already this conversation, consider calling list-skills first to check for a workflow playbook (e.g. report digests, metric fetching, blends). Skip if nothing relevant exists.
Browse available integrations (channels) and connected accounts. If a user says
"channel" or "integration", they mean this tool.
Use action to choose the operation:
list — all implemented integrationslist_grouped — integrations grouped by category with source countslist_accounts — connected accounts for a specific integration (requires channel_id)list_available_sources — available sources for an account (requires account_id)Browse report visual themes and color palettes. Control branding, colors,
and visual appearance of reports.
Use action to choose the operation:
list_themes — cursor-paginated list of available themes. Pass report_id to see both report-level and team-level themes with active status; omit report_id for team-level themes only (pass cursor from page.cursor for next page)list_colors — cursor-paginated list of color palettes. Pass report_id to see both report-level and team-level palettes with active status; omit report_id for team-level palettes only (pass cursor from page.cursor for next page)show_theme — single theme details: name, header, footer, and style options (requires report_id and theme_id)Browse report templates — reusable report blueprints. Templates can be applied
to create new reports. Linked reports auto-update when their template changes.
Use action to choose the operation:
list — cursor-paginated list of team templates with tags and linked report counts (pass cursor from page.cursor for next page)show — template details: pages with widget counts, theme settingslinked_reports — reports created from this template (auto-sync with template changes)Browse report snapshots — saved versions of a report's structure.
Use action to choose the operation:
list — cursor-paginated snapshots for a report with timestamps and creator (pass cursor from page.cursor for next page)View report sharing settings and public share URLs. If a user says "share link",
they mean this tool.
Use action to choose the operation:
show — current sharing settings and share URL for a reportURL types: The share_url is the public viewer URL (e.g. https://reports.live/shared/<hash>).
This is NOT the signed-in editor URL (https://live.whatagraph.com/client/<space_id>/live-report/<report_id>).
View team settings, subscription details, available roles, and perform global
search across the entire platform. Use the search action when you don't know
which domain (reports, spaces, overviews) to look in.
Use action to choose the operation:
show — team info: name, settings, enabled featuressearch — global cross-domain search: finds reports, overviews, and spaces matching a termroles — available team roles for this team (admin, manager, editor)show_subscription — current subscription plan and usage limitslist_plans — available subscription plansTip: If you haven't already this conversation, consider calling list-skills first to check for a workflow playbook (e.g. report digests, metric fetching, blends). Skip if nothing relevant exists.
Browse scheduled report delivery configurations. If a user says "schedule",
"automated report", or "email delivery", they mean automation.
Use action to choose the operation:
list — automation schedules for a specific report (requires report_id)list_all — all automations across the account (no report_id needed), with cursor pagination. Supports search (by report name) and frequency filtersshow — full automation details: schedule, timezone, compare type, PDF settingsBrowse custom dimensions (universal dimensions). These are user-created dimensions
that combine or transform data from connected sources.
Use action to choose the operation:
list — cursor-paginated team custom dimensions with optional type/search filter (pass cursor from page.cursor for next page)list_with_premades — cursor-paginated list including premade (system) dimensions alongside team onesshow — full dimension details (metadata, timestamps, creator)usage — how many widgets/reports use specific dimensions (bulk check)Tip: If you haven't already this conversation, consider calling list-skills first to check for a workflow playbook (e.g. report digests, metric fetching, blends). Skip if nothing relevant exists.
Browse custom metrics (universal metrics). These are user-created metrics
that combine or transform data from connected sources using formulas or aggregations.
Use action to choose the operation:
list — cursor-paginated team custom metrics with optional type/search filter (pass cursor from page.cursor for next page)list_with_premades — cursor-paginated list including premade (system) metrics alongside team onesshow — full metric detailsusage — how many widgets/reports use specific metrics (bulk check)Tip: If you haven't already this conversation, consider calling list-skills first to check for a workflow playbook (e.g. report digests, metric fetching, blends). Skip if nothing relevant exists.
Browse data blends. Blends combine data from multiple sources into a single
virtual data source for cross-channel reporting.
Use action to choose the operation:
list — cursor-paginated list of blends with optional search/filter (pass cursor from page.cursor for next page)show — full blend details with sub-sources, join configuration, and usage statsTip: If you haven't already this conversation, consider calling list-skills first to check for a workflow playbook (e.g. report digests, metric fetching, blends). Skip if nothing relevant exists.
Browse source groups. Source groups combine multiple data sources into a single
aggregated source with unified report type configurations.
Use action to choose the operation:
list — cursor-paginated list of source groups, supports search (pass cursor from page.cursor for next page)show — full source group details with sources and configssource_issues — list sources with disabled ETL configs (sync issues)list_output_names — list valid output_name values for creating a source group (requires source_ids)Tip: If you haven't already this conversation, consider calling list-skills first to check for a workflow playbook (e.g. report digests, metric fetching, blends). Skip if nothing relevant exists.
Browse unified filters. Filters are saved filter configurations that can be
applied to data sources and widget configs to narrow down displayed data.
Use action to choose the operation:
list — cursor-paginated list of team filters, filterable by name and channel (pass cursor from page.cursor for next page)show — full filter details with options and valuesTip: If you haven't already this conversation, consider calling list-skills first to check for a workflow playbook (e.g. report digests, metric fetching, blends). Skip if nothing relevant exists.
Browse overviews (called 'measurements' in the backend) — KPI tracking dashboards
that monitor specific metrics over time with visualizations and optional targets.
If a user says 'overview', they mean this tool.
Use action to choose the operation:
list — cursor-paginated list of team overviews, supports search (pass cursor from page.cursor for next page)show — full overview details with configs and share settingsView data goals (called 'data goals' in the backend, 'goals' in the UI) —
targets set on specific metrics to track progress toward KPIs.
Use action to choose the operation:
list — paginated list of goals with optional search/filter by sourceshow — show details for a specific goal by IDView data transfers and destination types.
Use action to choose the operation:
list — paginated list of transfers with optional filters by name, status, issue, or destinationshow — full details for a specific transfer by ID, including its configslist_jobs — paginated list of ETL jobs for a specific transfer, optionally filtered by config_id and statelist_destination_types — available destination types (BigQuery, Looker Studio, Whatagraph Storage) with their required components and locationsThe server allows up to 60 requests per minute per user. This is more than enough for normal conversations — you will likely never hit this limit.
If you run into any issues or have questions about using the MCP server with your AI assistant:
If you are building an MCP client or integration, here are the technical details:
POST https://mcp.whatagraph.com/mcpmcp:useGET https://mcp.whatagraph.com/.well-known/mcp-server.jsonPOST https://mcp.whatagraph.com/oauth/register