Build agents that run real paid media.
MetadataONE exposes 92 MCP tools that let autonomous agents plan, build, launch, and optimize B2B advertising campaigns across LinkedIn, Meta, Google, Reddit, Display, and Intent — with the same primitives that power our platform.
npx @anthropic/mcp-client add metadataone --api-key $METADATA_KEY
What you can build
The API is shaped for operators — agents that don't just surface data but take action. Every workflow a human runs inside the MetadataONE app is also exposed as an MCP tool. That means an agent with an API key can:
Designed for agents, not humans
Every tool returns structured JSON. Every parameter has a schema. Every destructive action
(launch_campaign, connect_crm) is idempotent and clearly marked.
Errors carry actionable messages. Rate limits are documented up front.
The tool surface is designed to compose: an agent can call estimate_target_group before
create_target_group, call search_target_group_criteria before either,
and loop on deep_funnel_stats after launch to decide whether to scale a budget group.
New to MCP? The Model Context Protocol is Anthropic's open standard for connecting AI agents to external systems. Any MCP-compatible client (Claude Code, Claude Desktop, Hermes, Paperclip, OpenClaw, custom agents) can use MetadataONE tools without custom integration work.
A complete agentic workflow
Here's the archetypal loop an agent runs against MetadataONE:
# 1. Get context about the account account = mcp.get_account_details() brand = mcp.get_brand_kit(domain="acme.com") # 2. Build a firmographic audience of our ICP audience = mcp.create_firmographic_audience( name="ICP — Mid-market SaaS, US", filters={ "industries": ["Computer Software"], "employee_range": [201, 1000], "countries": ["US"], "seniority": ["vp", "director", "c-level"], }, ) # 3. Generate on-brand creatives creative = mcp.generate_brand_creative( brand_kit_id=brand["id"], prompt="Hero ad: platform screenshot, VP of Marketing audience, urgency CTA", aspect_ratios=["1:1", "16:9", "9:16"], ) # 4. Assemble campaign in Draft (no spend yet) campaign = mcp.create_campaign( name="Q2 ICP Demand Capture", channels=["linkedin", "meta"], audiences=[audience["id"]], ads=[creative["id"]], daily_budget=500, ) # 5. Human approval gate, then launch if human_approved(campaign): mcp.launch_campaign(campaign_id=campaign["id"]) # 6. Close the loop — read results tomorrow results = mcp.deep_funnel_stats( campaign_id=campaign["id"], date_range="last_7_days", )
That entire loop runs on roughly 55 credits — read (1+1) + audience (5) + creative (25) + campaign (10) + launch (25) + analytics (3). On the Command Center tier that's about $5.50.