MetaMCP - The Missing Memory Layer for Multi‑Agent Ad Ops
LLMs are brilliant at single prompts but forget everything the moment a request ends. MetaMCP (“Memory‑Control Plane”) fixes that by giving agents persistent vector memory, workflow orchestration and policy‑based tool access - all wrapped in a lightweight TypeScript SDK.
Use it as the connective tissue that lets a marketing Orchestrator Agent brief Strategic Planner, Media Buyer and Campaign Optimiser sub‑agents while logging every insight back into a Living Knowledge System.
Key Facts
| Spec / Capability | Detail |
|---|---|
| Language | 100 % TypeScript; zero native deps |
| Core modules | MemoryStore, Workflow, ToolPolicy, EventBus, DevConsole |
| Storage adapters | libSQL/Turso, Postgres, Pinecone, Redis, DuckDB |
| Event bus | Out‑of‑the‑box Upstash Kafka / QStash, but pluggable |
| State model | Vector embeddings + JSON blobs per task run; automatic summarisation |
| Licencing | Apache‑2.0 - no vendor lock‑in |
How MetaMCP Fits Into an Agent Stack
flowchart TD
subgraph Edge
UI[Next.js + Vercel AI SDK] --> Agent[Orchestrator Agent]
end
Agent --> MCP[MetaMCP Memory]
MCP -->|Vector| Turso[(libSQL)]
MCP -->|Events| Kafka[Upstash Kafka]
MCP -->|Policy| Tools[Tool Registry]
MCP -->|Context| Agents[Strategic Planner, Media Buyer, Campaign Optimiser]
Agents --> Platforms[Google Ads / Meta / DV360 / Amazon]
- Context MCPs - MetaMCP stores brand DNA, historical KPIs and playbooks so every sub‑agent starts in context.
- Platform MCPs - Direct API calls (Google Ads, Meta, DV360, Amazon) stream fresh metrics into memory on a schedule.
- Tools MCPs - Safety layer: only whitelisted functions (e.g.,
googleAds.updateBid) execute when policy checks pass. - Living Knowledge System - Summaries + embeddings let future tasks query “what worked last Q4?” in milliseconds.
Why It Matters for Every Channel
| Channel | MetaMCP unlocks | Impact |
|---|---|---|
| Search | Persist SERP audits & keyword wins into vector DB; surface during new briefs. | Keyword expansion agents avoid duplicate tests; ~30 % faster go‑to‑market. |
| Programmatic | Stream bid metrics to memory; run nightly workflow to auto‑adjust pacing rules. | 15‑20 % reduction in wasted spend across DV360 & YouTube. |
| Social | Store creative fatigue signals & comment sentiment for each ad set. | Creative‑rotation agent pre‑emptively swaps ads, boosting CTR +25 %. |
| E‑commerce | Log TACoS, Buy‑Box history, review sentiment per ASIN. | Optimiser agent adjusts Amazon bids & price points before rank drops. |
Pros & Cons
| Pros | Cons | |
|---|---|---|
| Open‑source & TS‑native - | Easy drop‑in for Node/Edge runtimes and serverless functions. | Still early; limited GUI dashboards (CLI heavy). |
| Pluggable storage & event bus | Swap adapters in hours to match existing infra or SaaS (e.g., Postgres → Pinecone). | Vector deduplication tuning required at scale. |
| Policy engine reduces “rogue” tool calls | Granular governance + full audit trail builds client trust & compliance readiness. | Cold‑starts on serverless ≥ 300 ms without edge cache. |
| Works offline | Keeps context if LLM provider goes down; enables edge‑only deployments for privacy regions. | Must provision DB + Kafka infra (Upstash simplest). |
Strategic Take‑Aways
- Stateful > Stateless Agents - Persisting context turns copy‑assistants into full‑funnel strategists.
- One Vector Store per Brand - Segregate memories; avoid leakage across clients for compliance.
- Event‑Driven Optimisation - Hook MetaMCP events into alerting (PagerDuty/Slack) to blend human + AI oversight.
- Policy‑First Development - Define who can call what API at what spend tier before writing agent logic.
- Benchmark Continuously - Use the DevConsole to run SnitchBench on each workflow release; regressions kill ROAS fast.
🤖 Quick Demo Prompt
{
"role": "system",
"content": "You are a Media Buyer Agent. MemoryStore: metaMCP.memory, Tools: googleAds.getStats(campaignId), googleAds.setBid(id, bid), dv360.shiftBudget(id, pct)."
}
{
"role": "user",
"content": "Review last week’s PMax campaigns; if ROAS < 2 move 10 % budget to the top 3 branded search ad groups and log rationale."
}
Behind the scenes:
- MetaMCP recalls historical ROAS vectors → fetches fresh KPIs.
- Workflow decides → calls
googleAds.setBid&dv360.shiftBudget. - Writes a summary note into
MemoryStoreso tomorrow’s run knows the change.
Further Reading
- MetaMCP Docs - Architecture & API https://docs.metamcp.com/
- GitHub - Source code & examples https://github.com/metatool-ai/metamcp
- Upstash QStash - Serverless event bus used in examples https://upstash.com/blog/qstash-announcement
Prepared by Performics Labs - translating frontier compute into marketing advantage.