This guide walks you through how to use Polar MCP inside n8n to generate automated KPI summaries and send them directly to Slack each morning. Using Polar as a data source, Anthropic’s Claude as your reasoning engine, and Slack as your output channel, you can build a fully automated reporting workflow in just a few steps.
We’ll provide the required connection settings, a complete workflow you can copy, and a step-by-step tutorial to help you get everything running smoothly—even if you’re new to n8n or MCP.
Getting Started
To complete the Polar MCP installation in n8n, you will need:
Polar account (sign up here)
n8n account (both paid and free accounts can be used)
A paid Anthropic API key
In this article, we’ll build a simple workflow to:
Pull KPIs from Polar Dashboards
Iterating through a set of regional Views
and send an email report.
Workflow
Example output in Slack
1. Add a schedule trigger
Set to trigger daily at 6am
Click “Back to canvas” to close this popup.
2. Add an AI Agent
Click the + button
Choose AI Agent
In the pop-up, change the prompt to "Define below"
Change the prompt to "Expression"
And paste in the prompt from below:
The current date and time is: {{ $now }}.
Inspect store performance for yesterday. Summarise the key metrics (sales, cac, roas, new customer %) compared to last 7 days, and then generate some commentary to recommend actions or insights.
Output Slack's simplified `mrkdwn` format suitable to be sent in a slack message. (`mrkdwn` does not support headings or lists, and is styled with: _italic_ *bold* ~strike~, >blockquote and ```codeblock``` )
Do not explain what you are doing or ask for a rating afterwards, output only the message which will be sent directly.Notice that:Models don’t know the current date and time, so you need to tell it with n8n’s special
{{ $now }}placeholder. This will allow it to understand what you mean by ‘yesterday’.We tell it not to add any explanatory text. This avoids text in your slack message like
Here's your store performance summary in Slack mrkdwn format:.Models need guidance on the special version rich text syntax used by slack, called
mrkdwn.
Increase the default “Max iterations” option to 50
Click "back to canvas"
3. Add a Chat Agent
Click the plus Chat Model button
Choose Anthropic Chat Model
Create a new credential and add your Anthropic API key
Choose Claude Opus as the model for best performance
Click "back to canvas"
4. Add the Polar MCP tool
Click to add a tool
Choose "MCP Client Tool"
Give it a useful name like "Polar MCP"
Enter the Polar MCP connection details
Endpoint: https://api.polaranalytics.com/mcp
Server Transport: HTTP Streamable
Authentication: Bearer Auth
Create a new credential for Bearer Auth
Get your Polar MCP API Key
generate an API key
copy to the clipboard
Paste in your Polar API key as the Bearer TokenThen save and close the popup.
Go “Back to canvas”
5. Connect to Slack
Click the AI Agent’s output plus button
Find the Slack connector and choose “Send a message”
Create a new credential
Choose OAuth2 and click “Connect my account”, then allow access in the following screen
Choose “Send message to”: Channel, and type your channel name (or select from the list)
In the Message Text change it to “Expression” and set the value{{ $json.output }}
6. Run your workflow to testClick “Execute workflow”
Check the message appeared in Slack:
7. Set it Live
Set your workflow to “Active” at the top of the screen.
Whole workflow as JSONYou can copy and paste this directly into n8n to avoid building it yourself:
{
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 6
}
]
}
},
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
0,
0
],
"id": "d4e15fb6-a97a-44a6-9325-562d87e63372",
"name": "Schedule Trigger"
},
{
"parameters": {
"promptType": "define",
"text": "=The current date and time is: {{ $now }}.\n\nInspect store performance for yesterday.\nSummarise the key metrics (sales, cac, roas, new customer %)\ncompared to last 7 days,\nand then generate some commentary to recommend actions or insights.\n\nOutput Slack's simplified `mrkdwn` format suitable to be sent in a slack message. (`mrkdwn` does not support headings or lists, and is styled with: _italic_ *bold* ~strike~, >blockquote and ```codeblock``` )\n\nDo not explain what you are doing or ask for a rating afterwards,\noutput only the message which will be sent directly.",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2.2,
"position": [
208,
0
],
"id": "75b54b42-3305-4307-9a12-97136fb3ba0b",
"name": "AI Agent"
},
{
"parameters": {
"model": {
"__rl": true,
"value": "claude-opus-4-1-20250805",
"mode": "list",
"cachedResultName": "Claude Opus 4.1"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"typeVersion": 1.3,
"position": [
208,
192
],
"id": "829fe02a-15a5-45b9-bda4-b821a017b7f7",
"name": "Anthropic Chat Model",
"credentials": {
"anthropicApi": {
"id": "bJw9JkTyJ6T8628H",
"name": "Anthropic account"
}
}
},
{
"parameters": {
"endpointUrl": "https://api.polaranalytics.com/mcp",
"serverTransport": "httpStreamable",
"authentication": "bearerAuth",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.mcpClientTool",
"typeVersion": 1.1,
"position": [
352,
208
],
"id": "16eaa03e-b5fc-4270-b195-7f81b023ea08",
"name": "Polar MCP",
"credentials": {
"httpBearerAuth": {
"id": "21QokhLHTqcS2UHf",
"name": "Bearer Auth account"
}
}
},
{
"parameters": {
"authentication": "oAuth2",
"select": "channel",
"channelId": {
"__rl": true,
"value": "#put-your-channel-here",
"mode": "name"
},
"text": "= {{ $json.output }}",
"otherOptions": {}
},
"type": "n8n-nodes-base.slack",
"typeVersion": 2.3,
"position": [
560,
0
],
"id": "3415ccf8-d413-4ec4-90b3-6a8488556445",
"name": "Send a message",
"webhookId": "65523a9c-18dd-4363-9c7c-b0ca4e7008da",
"credentials": {
"slackOAuth2Api": {
"id": "pz3BpkgfcoPBSdFe",
"name": "Slack account"
}
}
}
],
"connections": {
"Schedule Trigger": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
},
"Anthropic Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Polar MCP": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
}
},
"pinData": {},
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "ce0c989b9244d7f82bca36af8201c7e764dbba42c6b965519008b3c1fcda3605"
}
}
Once your workflow is activated, n8n will automatically pull KPI data from Polar, analyze store performance using Claude, format the results in Slack-friendly mrkdwn, and send the report straight to your selected Slack channel every morning. This setup gives you a reliable, hands-off way to monitor daily performance and surface actionable insights to your team.You can extend this workflow at any time by adding additional data sources, new KPIs, conditional alerts, or more advanced formatting. And if you need help connecting MCP, configuring models, or troubleshooting errors, our support team is always here to assist you.
