May 21, 2026
MMM via Model-Context-Protocol: AI Agents as Marketing Analysts
How the Model-Context-Protocol gives Claude and ChatGPT direct access to Bayesian MMM pipelines — and what that means for DACH marketing teams.
Anthropic released the Model-Context-Protocol (MCP) as an open standard in November 2024. Eighteen months later it is something nobody quite predicted: a protocol that Anthropic, OpenAI, Google DeepMind, Microsoft, and Cloudflare all support. The MCP roadmap from March 2026 reports 97 million SDK downloads per month and over 5,800 registered servers. If you are integrating AI agents into operational systems in 2026, you will encounter MCP.
We designed our Marketing Mix Modeling Wizard as an MCP server from day one. The goal: a marketing lead should no longer drive an attribution pipeline through a UI but directly from Claude or ChatGPT — with sentences like "start an MMM with Q1 GA4 data for Brand X".
The architecture in one paragraph
An MCP server is a process that exposes tools (callable functions with JSON schemas), resources (readable data sources), and prompts (predefined conversation templates) over stdio or HTTP streaming. The agent — Claude Desktop, Claude Code, ChatGPT with custom connectors — connects, reads the tool manifest, and can call those tools mid-conversation. Authentication runs either over OAuth 2.1 (mandatory for remote servers since the May 2026 MCP spec) or over service API keys with bearer tokens.
The five tools in the MMM Wizard
The MMM Wizard exposes five tools that together cover the full Bayesian MMM workflow: `list_projects` (returns all projects owned by the authenticated service user), `create_project` (creates a project with brand metadata), `trigger_training` (kicks off a Bayesian inference run on Google Meridian against the stored GA4 / marketing data), `get_training_status` (polls polling state and posterior sample counts), and `get_results` (returns channel contributions, saturation curves, ROAS posteriors).
In practice: ask Claude to "create an MMM project for Mineralis with training window Q1 2026, start training, and return the top three channel contributions once the first posterior samples have converged" — and you get exactly that in a single dialog. No tab switching, no separate UI steps. The agent calls the five tools in the correct sequence, waits on training state, and comments on the results.
Demo: a live run against Q1 GA4 data
In an internal test last week we ran the pipeline against a synthetic Q1 dataset: 12 weeks, 7 channels (paid search, paid social, display, email, organic social, affiliate, OOH). The dialog spanned 14 tool calls over roughly nine minutes wall-clock time. Final output: posterior ROAS distributions per channel with 90 percent credible intervals, delivered directly in chat. The marketing lead never opened a dashboard.
This is not ChatGPT-with-a-plugin convenience, it is a qualitative shift. The agent understands context ("Q1 is data-thin, three weeks are holiday-noisy"), can ask follow-ups ("shall I set adstock to 4 weeks instead of 2?"), and ships the explanation alongside the result. That is the difference between a reporting tool and a marketing analyst.
Security architecture: service API keys instead of user OAuth
For the first MCP generation we deliberately skipped user OAuth and chose service API keys — long-lived tokens bound to a service identity, not to a browser login. Reason: stdio MCP servers have no browser flow, and in B2B contexts long-lived service identities are closer to reality than rotating user sessions. The tokens are single-purpose, bound to a service user, and injected via our auth proxy (bearer token in the `Authorization` header, followed by `x-mmm-service-user` header injection through middleware). Sprint 5 ships the `/admin/api-keys` UI with rotation.
A detailed comparison of the three auth paths — Clerk session, JWT, service API keys — is the subject of a separate article in this series.
Cross-brand MCP: the pattern scales
What works for the MMM Wizard is being ported to the other brands in the opua family. Nexbid gets an MCP server for ad-marketplace discovery — agents will search publisher catalogs by match score, geo coverage, format availability. Mineralis gets an equity-research MCP server with tools for company lookup, discovery pipeline status, and posterior score distributions. DCM exposes campaign-operations tools for status pulls, budget shifts, and anomaly reports.
That produces four MCP servers under the same auth pattern, the same tool-naming convention, the same error surface. A single connector setup in Claude is enough to use all four brands — which structurally dissolves the main complaint about closed-garden ecosystems ("five tabs for five products").
What this means for DACH marketing teams
Three conclusions we draw from the live experience. First, the MCP server is the natural interface layer for AI agents — not the REST API, not the web UI. If you are shipping an analytical product in 2026, you expose it as an MCP server first, other channels second. Second, service API keys beat user OAuth for B2B server-to-server contexts almost every time — pick the wrong auth model and you block your own adoption. Third, the tool manifest is marketing copy. Tool descriptions are read by the agent and influence when it decides to call the tool. Bad descriptions mean unused tools.
If you want to try it yourself
The MMM Wizard MCP server is open source under MIT license on GitHub: github.com/Baldri/mmm-wizard-mcp. Setup in Claude Desktop or Claude Code takes about five minutes — npm install, service API key in the header, connector config in the settings. After that the pipeline is reachable from any Claude dialog.
If you want help with setup or with adapting the pattern to your own data sources, find us at digital-opua.ch. Discovery calls take 30 minutes and cost nothing.