orkestria-mcp
v1.2.0
Published
Orkestria MCP — Synter-style safe-by-default ad control (Google/Meta production; other platforms experimental) with dry-run, policy gates and audit trail.
Downloads
29
Maintainers
Readme
Orkestria MCP
Control your ad campaigns from any MCP-compatible agent (Cursor, Claude Desktop, Claude Code…): Google Ads, Meta, LinkedIn, TikTok, Snapchat, Reddit, Microsoft, X, Amazon Ads and Pinterest.
Every write goes through the Orkestria policy engine: dry-run by default (Synter-style), optional human approval, spend caps, protected campaigns and a full audit trail.
Fair warning
Your agent can create campaigns, change budgets, pause ads and upload creatives. We default every write to dry_run=true and create campaigns paused/draft when the platform allows — but still only grant write scope to agents you trust.
Call list_capabilities first. Production maturity today: google_ads, meta_ads. Other connectors are experimental (API surface present, not end-to-end certified against every account setup).
Setup
- Create an account on orkestria.top and connect your ad platforms (OAuth).
- Generate an API key (
ork_...) from Dashboard → Clés API, choosing scopes (read,write,admin).
Cursor / Claude Desktop / Claude Code (local, stdio)
{
"mcpServers": {
"orkestria": {
"command": "npx",
"args": ["-y", "[email protected]"],
"env": {
"ORKESTRIA_API_KEY": "ork_..."
}
}
}
}Hosted (Streamable HTTP)
{
"mcpServers": {
"orkestria": {
"url": "https://orkestria.top/api/mcp",
"headers": {
"Authorization": "Bearer ork_..."
}
}
}
}Transport: Streamable HTTP (Accept: text/event-stream, Mcp-Session-Id) with JSON-RPC HTTP fallback (application/json).
Capability matrix (honest)
| Maturity | Platforms | Create campaigns | | --- | --- | --- | | production | Google Ads, Meta | Yes (Search/PMax, Meta funnel) | | experimental | LinkedIn, TikTok, Snap, Reddit, Microsoft, X, Amazon SP, Pinterest | Best-effort PAUSED/DRAFT | | reporting | GA4 | Read-only |
Tools (highlights)
| Family | Tools |
| --- | --- |
| Core | validate_setup, list_capabilities, list_connections, list_ad_accounts |
| Launch | create_search_campaign, create_pmax_campaign, create_meta_campaign, create_linkedin_campaign, create_reddit_campaign, create_campaign, … |
| Optimize | update_campaign_budget, pause_campaign, add_keywords, add_negative_keywords |
| Measure | get_performance, get_daily_spend, diagnose_tracking, detect_anomalies |
| Govern | execute, run_tool, list_tool_catalog, list_skills, run_skill, autonomy_tick |
Safety protocol (Synter-style)
validate_setup/list_capabilities- Measure (
get_performance,detect_anomalies) - Propose
executeor named write withdry_run=true(default)- Re-call with
dry_run=falseafter review
Operator charter: agents/ad-operator.md. Skills: skills/*/SKILL.md.
Studio today = generate_ad_copy + upload_creative (no Imagen/Veo).
Environment
| Variable | Default | Description |
| --- | --- | --- |
| ORKESTRIA_API_KEY | — (required) | API key from the dashboard |
| ORKESTRIA_API_URL | https://orkestria.top | Self-hosted instance URL |
