Polar Analytics MCP Server
Every source reconciled behind one endpoint, on your own definitions of CAC, LTV and contribution margin. The answers no single connector can give.
This server is the one that answers questions no single platform can. Every other connector in this directory sees one source: Shopify knows orders, Klaviyo knows flows, Google Ads knows spend. None of them knows what a customer is worth or what a channel actually contributed. Polar sits on a dedicated warehouse fed by 45+ connectors, reconciles it all into one model, and exposes it through a semantic layer where your definitions of CAC, LTV and contribution margin are already written down. The agent queries concepts, not columns, and every number it returns can be clicked back to its source.
It does not make the other connectors useless, it makes them comparable.
Key Features
- One endpoint over 45+ sources: deduplicated, timezone-aligned, currency-converted.
- Governed semantic layer: blended CAC, LTV, contribution margin and net revenue defined once, used everywhere.
- Totals returned alongside the rows, so the model never sums anything itself.
- Your dashboards and saved views are readable by the agent, and deep-link back into Polar.
- No writes to your sources: nothing is sent back to your store, your ad accounts or your ESP.
- Pre-built prompts for Executive Summary, Inventory Optimization, Profitability Deep-dive, CRO, Email Revenue, Creative Performance and Media Buying Health Check.
Use Cases
- The Monday executive summary, pulled live: net sales against plan, blended ROAS by channel, top movers, anomalies.
- "Why did this drop?" as a conversation rather than a dashboard, down to a root cause with a number attached.
- Cohort and retention questions that used to mean an analyst ticket and a SQL query.
- Scheduled agents that read the last seven days and write prioritized actions into Slack or Notion.
Tools
37
get_contextTells the agent your company, currency, timezone, connected sources, available metrics and dimensions.generate_reportReturns trusted numbers with explicit metrics, dimensions, date range, filters and ordering, totals included.get_metricsLists the metrics defined in your semantic layer.list_dimensionsSurfaces every attribution model, custom dimension and saved view defined in Polar.get_dimension_valuesReturns the values available for a dimension.list_metrics_for_dimensionLists the metrics that can be broken down by a given dimension.resolve_date_rangeTurns a date expression such as last quarter into the exact range Polar will query.list_custom_metricsLists the custom metrics your team has defined.get_custom_metric_detailsReads the definition of a custom metric.get_custom_metric_usagesShows where a custom metric is used across dashboards and reports.list_custom_dimensionsLists the custom dimensions your team has defined.get_custom_dimension_detailsReads the definition of a custom dimension.get_custom_dimension_usagesShows where a custom dimension is used across dashboards and reports.list_labelsLists the labels used to organize metrics.list_dashboardsLists the dashboards and reports your team has already built.get_dashboard_detailsReads one dashboard and summarizes it.get_view_detailsReads the details of a saved view.get_connector_statusesReports the sync state of every connected source.get_data_integrity_reportFlags gaps and anomalies in the data before you trust a number.fetch_live_connector_dataPulls fresh data from a connected source instead of the warehouse copy.generate_app_report_linkReturns a link to the matching report inside Polar.create_chart_imageRenders a chart from a report, as an image.create_file_upload_urlReturns an upload URL for a file the agent needs to attach.send_file_to_slackSends a generated file to a Slack channel.rate_reportRecords feedback on a report.create_custom_metricCreates a custom metric in your semantic layer.update_custom_metricUpdates the definition of a custom metric.delete_custom_metricDeletes a custom metric.create_custom_dimensionCreates a custom dimension.update_custom_dimensionUpdates the definition of a custom dimension.delete_custom_dimensionDeletes a custom dimension.create_labelCreates a label.update_labelRenames or edits a label.delete_labelDeletes a label.set_metric_labelsAssigns labels to a metric.update_memoryRecords durable workspace knowledge the agent should reuse in later conversations.select_workspace_for_session_from_nameSwitches the active workspace by name.
Connect It
What you need before the first question, and where it goes.
Claude Code / Cursor / VS Code
Copy
Already on Polar? One click from Connectors in Claude, no config file.
The token pair is generated at app.polaranalytics.com/mcp.
{
"mcpServers": {
"polar": {
"url": "https://api.polaranalytics.com/mcp",
"headers": {
"Authorization": "Bearer TENANT_ID|SERVICE_TOKEN"
}
}
}
}
What the Polar MCP Server Actually Is
Every other server in this directory is a window onto one system. This one is a window onto the model underneath them. Polar sits on a dedicated warehouse fed by 45+ connectors, reconciles what they send into a single schema, and exposes it through a semantic layer where the definitions your team already agreed on are written down. The agent does not query tables. It queries concepts: net revenue, blended CAC, contribution margin, returning customer.
That distinction is the whole product. A platform server hands a model rows and lets it decide what they mean. This one hands it a number that was already decided.
Why the Semantic Layer Is the Whole Point
Connect three platform servers and ask for last week's revenue, and you get three answers. Shopify counts at checkout, gross of returns. Meta counts a click-attributed conversion that may never have shipped. Your finance sheet waits for the invoice. None of them is wrong inside its own boundary, and the model will pick one without telling you which.
A semantic layer removes the choice. Revenue is defined once, by your team, and every answer uses that definition. So does CAC, so does LTV, so does contribution margin. When the number changes, it changes because the business changed, not because the agent picked a different source this time.
Two details matter more than they sound. Totals come back alongside the rows, so the model never sums anything itself, which is where arithmetic errors creep in. And every figure deep-links back into Polar, so anyone can click through from the answer to the report behind it.
What It Answers That a Platform Server Cannot
Questions That Cross Sources
- What did we actually pay to acquire a customer last month, across every channel?
- Which channel made money after shipping, returns and product cost?
- How does the cohort acquired on paid social in January compare to the one from email?
- Did the Meta campaign lift orders, or move them from a flow that would have converted anyway?
Questions About Your Own Definitions
- Which metrics does this workspace define, and how is contribution margin calculated here?
- Which dashboards already answer this, and what do they say today?
- Break this down by our own custom dimension, not by the platform's default grouping.
Pre-built prompts cover the recurring ones: Executive Summary, Inventory Optimization, Profitability Deep-dive, CRO, Email Revenue, Creative Performance and Media Buying Health Check.
Reading and Writing: What the Agent Can Actually Change
Nothing the agent does reaches your sources. It cannot change a product in Shopify, move a budget in Google Ads, or send an email from your ESP. Those systems are read through Polar, never written to.
Inside Polar, it can do more than read. The agent can create, update and delete custom metrics, custom dimensions and labels, and record workspace knowledge it should reuse in later conversations. That is useful, because defining a metric in conversation is faster than defining it in a form. It is also a real permission: a custom metric your team relies on can be edited by an agent that misread a prompt.
Treat it the way you would treat edit access to a shared dashboard. Read the plan back before approving anything that changes a definition, and keep write access to the people and agents that need it.
What the Polar MCP Server Does Not Do
It does not replace the platform connectors. If you want an agent that edits a product, pauses an ad or drafts a campaign, that is a job for the Shopify or Meta server. This one explains the business, it does not operate it.
It is also only as complete as your connectors. A source that is not connected is not in the answer, and the agent will not know it is missing unless you ask. get_connector_statuses and get_data_integrity_report exist for exactly that reason: check them before you trust a number that looks surprising.
Setting It Up
If you already use Polar, it is one click from Connectors inside Claude. Nothing to install, no config file.
For any other MCP client, the server is remote and takes a token pair generated at app.polaranalytics.com/mcp. The endpoint is https://api.polaranalytics.com/mcp, authenticated with a bearer token that combines your tenant id and a service token. The same block works in Claude Code, Cursor and VS Code, only the settings file changes.
Where It Sits Next to Shopify and Google Ads
The division of labor is clean once both are connected. Shopify answers questions about the store. Google Ads answers questions about the campaigns. Polar answers questions about the business, and neither of the other two is guessing at its numbers.
It does not make the other connectors useless. It makes them comparable.
Frequently Asked Questions
Is there an official Polar Analytics MCP server?
Yes. Polar builds and maintains it, and it is listed in Claude's connector directory, so existing customers connect it in one click.
Do I need to be a Polar customer to use it?
Yes. The server reads your Polar workspace, so it answers on the sources you have connected and the metrics your team has defined. There is nothing to query without them.
Can it change my store, my ad accounts or my email platform?
No. Nothing is written back to any connected source. Those systems are read through Polar and never modified by it.
Can the agent create or change metrics inside Polar?
Yes. Custom metrics, custom dimensions and labels can be created, updated and deleted, and the agent can record workspace knowledge for later conversations. Treat that as edit access: read the plan back before approving a change to a definition your team relies on.
What can it answer that connecting Shopify and Google Ads directly cannot?
Anything that crosses two sources. Blended CAC, contribution margin, cross-channel LTV and cohort comparisons need the store joined to the ad accounts on one definition of revenue. No platform server has that join, because no platform sees past its own boundary.
Which MCP clients can connect to it?
Any client that speaks the protocol. Claude gets the one-click path through the connector directory; everywhere else you add the remote server by URL with a token pair.
Why can it answer blended ROAS when the platform servers cannot?
Because the join happens underneath, in the warehouse, before the agent asks. Stacking platform servers does not produce a blended number, it produces several partial ones and leaves the model to choose. A semantic layer decides once, in advance, and every answer inherits that decision.

An MCP server is only as good as the data underneath it.
Polar reconciles 45+ sources in one semantic layer, so your agent answers on the same numbers your team reports on.
Book a demoOther MCP servers
View more
