MCP Server
The Warm AI MCP server lets you point an AI agent at your own Warm AI visitor data, so it can answer questions and take a few small actions without you leaving your agent to check the dashboard.
This is a Phase A release: read access to your visitors, segments, websites and account status, plus watch/pin actions. There are no tools yet for creating websites, configuring webhooks, or billing.
Setup
There are two ways to connect. Signing in is simpler and creates no key, so use it unless you need the other one.
Option 1: sign in with your Warm AI login (recommended)
Add this URL as a connector in your AI tool:
https://mcp.warmai.uk/mcpYour tool will send you to Warm AI to sign in and approve the connection. You will see exactly what the tool is being granted, and which Warm AI account it is connecting to, before you approve.
Check which account you are signed in as. Warm AI accounts do not share data between logins. If you approve while signed in to the wrong one, the connection succeeds but your agent sees an account with none of your websites in it. The approval screen shows the account and has a Switch account button if it is not the one you want.
You can withdraw access at any time from Integrations in your dashboard, under Connected AI tools. Disconnecting takes effect immediately.
After disconnecting, your AI tool will usually still list Warm AI as a connector. That is its own saved setting, not access: any request it makes is refused from the moment you disconnect, and the tool will typically report the Warm AI tools as unavailable rather than saying anything about Warm AI itself. Remove the connector in that tool as well if you want the entry gone.
Disconnecting does not cover access keys. It only affects tools connected with your Warm AI login. If you also use an access key, which is the usual setup for Claude Code, n8n and other automations, that key keeps working. Rotate it from the Integrations page to cut those off.
Warm AI emails you whenever a tool connects or disconnects, so an approval you did not make is visible without having to check the dashboard.
Option 2: access key
Use a key when there is nobody to sign in, for example an automation in n8n or a server-side script, or with a client that only accepts a static header.
Go to Integrations in your Warm AI dashboard and connect MCP. This creates an API key named MCP access key and shows the plaintext once. Copy it now: Warm stores only a hash, so if you lose it you will need to rotate it from the same Integrations page.
| Server URL | https://mcp.warmai.uk/mcp |
| Auth header | x-access-key: YOUR_KEY |
For Claude Code, the exact command is:
claude mcp add --scope user --transport http warmai https://mcp.warmai.uk/mcp --header "x-access-key: YOUR_KEY"Do not use --scope project. That writes your key into a .mcp.json file, which is meant to be committed to your repository, so your key would end up in git history. Warm only stores a hash of your key, so if it ends up in a repo the only fix is rotating it from the Integrations page, not deleting the commit. Use --scope user (shown above) so the key stays local to your machine.
Client support
| Client | How to connect |
|---|---|
| Claude Desktop | Sign in. Verified against the live server. |
| Claude Code | Either. Both verified against the live server. |
| Cursor | Access key. Accepts a static header. |
| n8n | Access key. Accepts a static header. |
| ChatGPT | Sign in. ChatGPT cannot present an access key at all, so this is the route it needs. We have not verified it yet. |
Any client that supports remote MCP servers over OAuth should be able to connect by signing in, whether or not it is listed above.
Tools
Twelve tools are exposed today. Each one-liner below is taken directly from the tool’s own description.
| Tool | What it does |
|---|---|
get_started | Reports whether your account is set up, whether your tracking script is sending data, and the single next step if it is not. Worth asking for first, and whenever something comes back empty. |
size_audience | Takes several page path patterns and returns a visitor count for each in one call. Use it to size audiences by section before pulling the visitors themselves. Matches prefixes by default, so /blog covers /blog/anything; pass match: "contains" to match anywhere in the path as list_visitors does. |
list_visitors | Returns one row per identified visitor with visit counts and intent, defaulting to the last 7 days. Use segment_id to apply a saved segment. |
list_segments | Returns the saved segments or ICPs you’ve built in the Warm AI dashboard. |
get_visitor | Returns the session and page-view history for one visitor. Opening a visitor marks it as seen. |
get_company_profile | Returns the fuller firmographic picture for one visitor’s company: description, size, location, funding and social profiles, when a paid provider match exists. |
get_traffic_summary | Returns headline counts with period-on-period change, traffic sources, and top intent pages, in one call. |
list_websites | Returns your registered domains with tracker install state (installed, not installed, or unknown) and ping activity. |
get_account_status | Returns your quota tier, quota, remaining balance, tracker identification usage, and direct API lookup usage. |
watch_visitor | Starts or stops watching a visitor. Watching sends an alert when they return. Reversible and private to you. |
pin_visitor | Pins or unpins a visitor so it stays at the top of your list. Reversible and private to you. |
list_watches | Returns every visitor you’re currently watching or have pinned, including ones that haven’t come back yet. |
Person-level data
Person-level identification (named contacts: name, job title, LinkedIn profile) is on by default for MCP connections. You can switch it off per key from the Integrations page in the dashboard.
This toggle is separate from the “Person-level identification (named contacts)” setting on your tracker, which controls whether Warm collects named contacts at all. This one controls what your connected AI tool can see of data you’ve already collected.
With it off, tools return company-level visitors only: individual-level visitor records aren’t returned at all, not just with the name, title and LinkedIn fields stripped out.
Whatever your connected AI tool can see, it sends to whichever AI provider it’s built on (Anthropic, OpenAI, or otherwise). It’s worth checking that against your own privacy policy and data processing agreements before you turn person-level data on for a connection.
What to ask it
A few starting points once you’re connected:
- “Which companies visited my site this week that look like a good fit?”
- “Show me everyone I’m watching who hasn’t come back yet.”
- “How’s my traffic looking this month compared to last month, and where’s it coming from?”
- “How many visitors did each section of my site pull last month? Try /pricing, /docs and /blog.”
If something looks wrong
“No visitors” when you expect some. Ask for get_started. It reports whether a site is registered and whether the tracking script has ever sent data, so an empty list is not mistaken for no traffic. The most common cause is connecting while signed in to a different Warm AI login than the one holding your websites.
Your tools disappear after disconnecting. Expected. Access ends immediately, and most AI tools then report the Warm AI tools as missing rather than mentioning Warm AI at all.
“This credential is no longer valid.” The access key was rotated or revoked, or the connection was disconnected. Reconnect from the Integrations page.
Need help?
Email support@getwarmai.com with your account email and a description of what you’re trying to do.