Skip to main content

Installing the Polar MCP with n8n (with Slack)

Step-by-step guide on how to install the Polar MCP in n8n with Slack

Written by Kellie Reese
Updated this week

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:

In this article, we’ll build a simple workflow to:

  1. Pull KPIs from Polar Dashboards

  2. Iterating through a set of regional Views

  3. 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

Server Transport: HTTP Streamable

Authentication: Bearer Auth

Create a new credential for Bearer Auth

Get your Polar MCP API Key

  1. generate an API key

  2. copy to the clipboard


    Paste in your Polar API key as the Bearer Token

    Then 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 test

    Click “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 JSON

    You 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.










Did this answer your question?