Cross-network compare
Query Meta CTR against Google Ads CPI in a single call. Granularity-safe, currency-segregated, honest about missing data.
Hosted MCP server for mobile UA teams — Meta, Google Ads, Unity, AppLovin, Mintegral through one Claude-native endpoint.
Currency-safe. Multi-tenant. Spend-guarded.
Query Meta CTR against Google Ads CPI in a single call. Granularity-safe, currency-segregated, honest about missing data.
Every mutation demands a 60-second, one-shot token. Nothing lives-fires without an explicit tenant-scoped cap check.
Every tool call, every token issue, every rejection lands in mcp_events. Debuggable from the log alone.
Each client's credentials live isolated in PocketBase. Service-token access only, through custom endpoints, per tenant.
USD spend never silently pollutes EUR limits. Per-currency buckets, mismatch refusal for tokens, foreign-account warnings.
Each Meta account binds to its own proxy pool. No shared server IP for Facebook — no checkpoint, no cascade risk.
Six abilities, one endpoint. No SDKs to install, no cascade risk, no ETL — every call goes through the same metrics.pull / budget.adjust surface.
Meta Live
AppLovin Live
Mintegral Live
Google Ads Live
Meta Live
AppLovin Live
Mintegral Live
Google Ads Live All five live adapters share one MCP-tool surface: metrics.pull, campaign.list, budget.adjust. Cross-network comparison is a single call — not an ETL job.
One project-scope file, one tenant token. No SDKs, no wrappers. Pick your client — the config lands in the right place.
$ claude mcp add uamcp \ --transport http \ --url https://mcp.uamcp.com/mcp \ --header "Authorization: Bearer ${UAMCP_TOKEN}"
// ~/Library/Application Support/Claude/claude_desktop_config.json { "mcpServers": { "uamcp": { "command": "npx", "args": ["-y", "mcp-remote", "https://mcp.uamcp.com/mcp"], "env": { "UAMCP_TOKEN": "uamcp_..." } } } }
Restart Claude Desktop after saving. Your UAMCP_TOKEN
comes from Panel → Settings → API tokens.
Meta binds each account to its own proxy pool. No shared IP for Facebook — no checkpoint, no cascade risk when one account gets hit.
Each ad-network gets one vault slot per tenant. Paste the API credentials once — resolved only through service-token endpoints on your MCP requests.
Meta act_824193 · ••••1e4a ● Live
AppLovin nightsky-prod · ••••b23f ● Live
Mintegral Not connected
Google Ads Not connected Drop this prompt at the start of your Claude session. It boots the agent onto the surface, teaches it the guardrails, and hands it a first cross-network sweep to run.
You now have access to UA·MCP tools: metrics.pull, campaign.list, campaign.upsert, budget.adjust, spend.limits, audit.query. Start by calling network.enumerate to list which ad networks are wired for this tenant. Then pull the last 7 days of metrics across all live networks, granularity=day, USD only, and tell me which network is winning on ROAS. Never call budget.adjust without asking me first.
Every agent call lands in mcp_events. Workers run
in the background — metrics polled, spend watched, docs indexed.
Reports assemble themselves. You can debug from the log alone.
// tail -f mcp_events · tenant=nightsky 12:04:31 metrics.pull → ok · applovin,unity · 340ms 12:04:29 network.enumerate → ok · 3 nets · 12ms 12:04:02 campaign.list → ok · meta · 210ms 12:03:47 audit.query → ok · 128 events · 41ms // workers · last 30s 12:04:19 metrics-poller → snapshot · applovin 12:04:04 spend-watcher → under 62% cap 12:03:58 doc-indexer → +3 docs indexed
Five steps end-to-end — no SDKs on your side, no proxy setup, no ETL. One endpoint carries the load, mcp_events keeps the receipts.
AppLovin, Unity, and Mintegral in one call — that's the difference between shipping and stalling.
Roles and specifics accurate. Names, avatars, and companies anonymised on request — the surface they praise is metrics.pull, budget.adjust, audit.query.
Companies we collaborate with.
5 slots remaining · Wave 2
An MCP server that fronts six ad networks as one tool surface. Your agent calls metrics.pull, campaign.list, budget.adjust — UA·MCP handles auth, normalisation, and guardrails per network.
No. Every mutation demands a 60-second, one-shot confirm token, checked against per-currency tenant caps. Miss the cap, miss the currency, miss the window — refusal, logged in mcp_events.
In a per-tenant vault, isolated in PocketBase, resolved only through service-token endpoints. On Atelier, secrets are SOPS + age encrypted, with a self-host option.
Per-currency buckets, always. USD spend never silently pollutes EUR limits; confirm tokens refuse currency mismatches, and foreign-account aggregation carries an explicit warning.
Unity Ads, Meta, AppLovin, Mintegral, and Google Ads are live. TikTok is wiring. All share one MCP-tool surface, so a cross-network comparison is a single call.
Yes — the Atelier tier ships a self-host option with a dedicated proxy fleet and custom SLA. Founder and Studio run on our hosted control plane.