Back to HTML Pub

Your Website Can Talk Back: Wiring Analytics, Forms, and Booking Into Claude Via MCP

Michael Sacca•
AI-Native Publishing
Automation
MCP

Every "free website building sites" listicle reads the same way: Wix, Squarespace, Webflow, Framer, Canva. Pick one, drag some blocks, publish. And every one of those free tiers comes with the same fine print — the builder's branding in your footer, a domain you don't really own, and an export button that ranges from "limited" to "does not exist."

Meanwhile, there's the other path: have Claude build the site, host it on a free static host, and own every line of it. I've written a lot about that direction of travel — prompt to live URL, the maintenance loop, the exit plan. But all of those workflows share one thing: the conversation only flows one way. You ask Claude to do something to your site, Claude does it, done. The site itself never says anything back.

That's the gap MCP fills. And it's the difference between a site you manage through a chat window and a site that participates in its own operation.

What MCP Actually Is, Minus the Hype

MCP — the Model Context Protocol — is an open standard, introduced by Anthropic, that lets an LLM client like Claude Desktop connect to external tools through small server programs. Each MCP server exposes a set of tools: "query this database," "send this message," "read this calendar." Claude doesn't magically know about your Google Analytics or your booking calendar. An MCP server sits in the middle, translates, and hands Claude the results.

You already know the pattern if you've read "Marketing Agent" Doesn't Mean Chatbot: What It Takes for Claude or GPT to Actually Run Your Site's Marketing. That post covered the architecture — MCP connections, tool permissions, approval gates — in the abstract. This post is the concrete version: the three connections most small sites actually need, and what each one looks like wired up.

Connection One: Analytics That Report Themselves

The manual version looks like this: open your analytics dashboard, screenshot it or copy the numbers, paste them into Claude, ask "what happened this week?" It works. It's also the kind of chore that stops happening by week three.

The MCP version: an analytics MCP server — community-built servers exist for Google Analytics and similar tools — is added to your Claude client's configuration. Once connected, the conversation changes shape entirely:

You: How did traffic to the pricing page trend this week
     compared to last week, and did the new headline change anything?

Claude: [calls the analytics tool, pulls both date ranges,
         summarizes the delta, flags the drop on mobile]

Two things make this more than a convenience. First, Claude can reason across data you'd never manually combine — bounce rate against the specific pages you changed last week, referral sources against the posts you published. Second, it fits straight into the recurring maintenance loop from You Built the Site in a Weekend. Who Updates It Next Month? — instead of a monthly ritual of screenshots and copy-paste, your content-update prompts can start from numbers Claude pulled itself.

One honest caveat: not every analytics service has a maintained MCP server, and quality varies. Before committing, check whether a server exists for your specific tool, whether it's actively maintained, and what permissions it needs. If nothing exists for your stack, a read-only API key plus a custom MCP server is a weekend project — but it is a project, not a toggle.

Connection Two: Forms That Don't Die in a Spreadsheet

A form on a static site has a well-worn path: a form service receives the submission, emails you, and files the entry in a spreadsheet you'll open four times a year. The failure mode is obvious — the lead sits there until you notice it.

Wiring form handling through MCP flips the direction. Instead of you polling the spreadsheet, Claude can be pointed at it on your schedule or on your request:

You: Any new contact form submissions since yesterday?
     Draft a personalized reply for each one and show me
     before anything sends.

Claude: [reads the form-service data via MCP]
        Two submissions. Here are drafts — approve or edit each?

The phrase that matters is show me before anything sends. An approval gate like this is the single most important design decision in the whole setup, and "Marketing Agent" Doesn't Mean Chatbot explains why in depth: reading is cheap, sending is irreversible. Let Claude draft every response. Let Claude categorize, prioritize, and flag the ones that look like real business. Keep the send button human until you've watched it work long enough to trust it — and even then, only for the low-stakes replies.

The same pattern extends to your blog pipeline. If you're already using the automation approach from Stop Copy-Pasting From ChatGPT: Wire Your Site to the LLM API So It Updates Itself, form data is a content source sitting right there: real questions from real visitors become FAQ entries and post topics, without you remembering to mine the spreadsheet.

Connection Three: Booking Without the Back-and-Forth

Scheduling is where MCP earns its keep, because scheduling is where the email ping-pong tax is highest. A visitor wants a call; you propose Tuesday; they're out Tuesday; three emails later someone sends a scheduling link anyway.

With a calendar MCP server connected, Claude can check real availability, propose slots, and — once you've set the permissions — confirm the booking and update the calendar itself. For a one-person business, this turns the booking flow from "I am my own scheduler" into "Claude is my scheduler, and I audit its work."

The permission design matters most here, because calendar writes are genuinely destructive operations. A sensible progression:

  1. Read-only first. Claude sees your calendar, proposes slots, drafts the invitation email. You do every click.
  2. Write with approval. Claude can create the event, but you confirm each one.
  3. Autonomous for the boring cases. Once you trust it, routine bookings happen without you; anything ambiguous — a request for a time outside working hours, a client asking for a longer session — gets escalated to you.

That escalation instinct — let the agent handle the pattern, interrupt the human on the exception — is the core of running any agent responsibly, and it applies equally to forms, analytics, and booking.

How the Three Fit Together

Individually, each connection saves you a chore. Together, they compound. Analytics tells you the pricing page is getting traffic but not converting. Form data shows visitors are asking the same question before they commit. Booking data shows the calls that do happen run short. That's not three dashboards — that's a feedback loop, and Claude is the only part of your stack that can read all three and tell you what to change.

This is also the real answer to the question I keep getting about the The $0 Website, Audited: What Building With AI Actually Costs When Every Tool Has a Free Tier math: the tools here aren't exotic. Your analytics, your form service, and your calendar probably all have APIs already. MCP is the layer that lets your LLM actually use them — and most MCP servers, like the hosts and APIs the rest of this blog covers, are open source and free.

Start With One

Don't wire all three at once. Start with analytics, because it's read-only — you cannot break anything, and you'll learn how tool permissions and approval gates feel in practice with zero risk. Add forms once the read flow feels natural. Save booking for last, because it's the one connection where Claude writes to systems other humans depend on.

Your site spent its whole life as something you talk at. MCP is what makes it talk back — and once it does, you'll wonder why every other site you've run kept its numbers locked in dashboards you had to visit.

Keep Reading