Connecting paid ad data to Claude
Every marketer has the same problem: your data is in one place and your brain is in another.
You want to ask a question about your paid ad performance. So you open the dashboard, find the number, copy it, paste it somewhere, and start writing. Repeat forty times a day.
I got tired of that, so I built a fix.
What an MCP server is
MCP stands for Model Context Protocol. It's a standard plug that lets AI tools like Claude connect directly to other software.
Think of Claude as a smart assistant sitting at a desk. Without MCP, you walk over, hand it a piece of paper with the data on it, and wait for an answer. With MCP, Claude can open the drawer and get the data itself.
I built a custom MCP server for Propensity, the platform I used to track paid ad performance and intent data, so Claude could pull that data on demand.
What it did
When I was working in Claude and wanted to know how a campaign was performing, I asked. Claude queried Propensity directly, pulled the relevant data, and answered in plain English.
No tab switching, no copy-pasting, no reformatting spreadsheets.
I could ask things like:
- "What's our cost per lead across LinkedIn campaigns this month?"
- "Which ad set is driving the most qualified traffic?"
- "How does this week's performance compare to last week?"
Why I built it
There wasn't anything off the shelf. Propensity didn't have a pre-built Claude integration, and I wasn't going to wait for one to appear.
A custom MCP server isn't that complicated once you understand the pattern. It's a small Node.js program that sits on your computer, talks to an API, and makes the data available to Claude. I used Claude Code to write most of it, which is a bit circular, but it worked.
What it changed
I stopped losing context.
When you're mid-thought analyzing a campaign and have to go digging for data, you lose the thread. With the data inside the same conversation, I thought more clearly and moved faster.