Chip Martens

Thoughts

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.