canonical: https://jentic.com/apis/mcp-ads.com/mcp-ads

# MCP Ads Developer API

The Ads Developer API connects your customers' ad, analytics, and social accounts and runs marketing tool actions on them across Meta, Google Ads, GA4, Search Console, Tag Manager, Merchant Center, TikTok, LinkedIn, X, Microsoft, Snapchat, and WordPress. You create one profile per end customer, keyed by your own external_id, and send that customer a single-use connect link where they sign in with the platform itself. Once accounts are connected, a tool browser lists each action category with its parameters as JSON Schema, and a single run route executes one action for the profile named in the X-Profile-Id header.

## For AI agents

Create a profile per customer, send connect links for their ad, analytics, and social accounts, then browse and run marketing tool actions such as Google Ads or Meta Ads actions on those accounts.

## Scope

Does not handle ad creative design, billing for ad spend, or hosting analytics dashboards. Use for connecting customer marketing accounts and running tool actions on them only.

## Capabilities

- Create one profile per end customer with your own external_id and metadata, then look it up by external_id later
- Generate a single-use connect link for a platform so a customer signs in and is returned to your redirect_url with a connected or error status
- List a profile's connected accounts and disconnect one account by its connection id
- Browse tool categories such as meta_ads_action and google_ads_action and read each action's parameters as JSON Schema
- Run one tool action for a customer by passing the profile in the X-Profile-Id header, with write actions requiring a read-write key
- Check which platforms a connect link can connect before onboarding a customer

## Use cases

### Agent-run marketing actions through Jentic

A marketing agent can operate on many customers' ad accounts through one API via Jentic. It browses the tool categories to find the right action and its JSON Schema parameters, then runs that action for a customer by passing their profile id in the X-Profile-Id header. If the platform refuses the call, the response returns ok as false with the platform's message in result, so the agent can report the reason.

Example prompt: Browse tools with category google_ads_action and search set to campaign, pick the campaign listing action, then run it with X-Profile-Id set to the client's profile id and summarise the campaigns returned

### Customer onboarding for an agency or SaaS app

Apps that act on their customers' marketing accounts need each customer to grant access once. The API creates a profile per customer using your own external_id, so you never store a vendor id, then issues a single-use connect link that expires after 30 minutes. The customer signs in with the platform itself and is redirected back with profile_id, platform, and status.

Example prompt: Create a profile named Acme Bakery with external_id acme-42, create a Meta connect link for it with redirect_url set to the app's callback, and return the connect_url to send to the customer

### Connection hygiene across customers

When a customer churns or revokes a platform, the app should drop that connection. Listing a profile's connected accounts shows what is live, a single account can be disconnected by connection id, and the whole profile can be deleted when the customer leaves.

Example prompt: Find the profile with external_id acme-42, list its connected accounts, and disconnect the TikTok connection while leaving the others in place

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/v1/profiles` | Create a profile |
| POST | `/v1/connect/{platform}` | Create a connect link |
| GET | `/v1/profiles/{profile_id}/accounts` | List a profile's connected accounts |
| GET | `/v1/tools` | Browse tool categories and actions |
| POST | `/v1/tools/{category}/{action}` | Run a tool action |
| DELETE | `/v1/profiles/{profile_id}/accounts/{connection_id}` | Disconnect one account |

## Key resources

- **Profiles** — Create, list, get, update, and delete one profile per end customer.
- **Connected accounts** — List a profile's connected platform accounts and disconnect one.
- **Connect links** — List connectable platforms and create single-use connect links.
- **Tools** — Browse tool categories and actions with their parameters, and run one action for a profile.

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 67 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 99 / 100
  - Developer Experience & Jentic Compatibility: 63 / 100
  - AI-Readiness & Agent Experience: 48 / 100
  - Agent Usability: 94 / 100
  - Security: 60 / 100
  - AI Discoverability: 75 / 100
- **View full report:** https://jentic.com/apis/mcp-ads.com/mcp-ads/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring this API by hand means handling its bearer key, onboarding each customer through a connect link, and passing the right X-Profile-Id on every tool action. Through Jentic you install once, import it from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** The tool category and action sit in the URL path (`/v1/tools/{category}/{action}`), so a rule can bound your agent to the action categories you choose, such as google_ads_action. You choose the operations it may call, so destructive ones like deleting a profile or disconnecting an account are not included unless you add them.
- **Credential handling:** Your developer key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'run a Google Ads action' or 'send a customer a connect link', and Jentic returns the matching operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Get MCP Ads Data API** — Pulls and schedules advertising report data rather than running actions on customer accounts.
- **Facebook Graph API** — Direct access to Meta's platform, including ads, for a single app's own connections.
- **LinkedIn Marketing API** — LinkedIn's own advertising and campaign API.
- **Google Analytics Data API** — Runs GA4 reports to measure the traffic and conversions campaigns drive.

## FAQ

### What authentication does the MCP Ads Developer API use?

Per its OpenAPI spec, every operation authenticates with a bearer token: an mcp_live_ key from the developer console sent as Authorization: Bearer. Write tool actions need a read-write key. Your customers never share platform passwords with you; they connect their accounts through a connect link. Through Jentic the key is stored encrypted on your own instance and injected at call time.

### Is there an MCP Ads MCP server?

Yes - the vendor offers an MCP endpoint at /mcp-slim that takes the same key and X-Profile-Id header. You can also connect the API directly through Jentic: your agent gets the full 11-endpoint surface from the spec without loading another server's tool definitions into its context, your key is injected at call time by your self-hosted instance instead of living in an MCP config, and your rules decide which operations the agent may call.

### Can I limit what my agent is allowed to do with the MCP Ads Developer API?

Yes. Write a rule that allows only GET `/v1/tools` and POST `/v1/tools/google_ads_action/{action}`, so the agent can browse actions and run Google Ads actions but cannot create profiles, issue connect links, or disconnect accounts. Pair it with a read-only key if the agent should never run write actions. Every call it makes is logged.

### What are the rate limits for the MCP Ads Developer API?

The OpenAPI spec does not specify rate limits; check https://mcp-ads.com for current limits. Tool actions also run against each platform's own limits, and a platform refusal comes back with ok set to false and the platform's message in result.

### How do I find which actions and parameters a platform supports?

Call GET `/v1/tools` without a category to list categories such as meta_ads_action and google_ads_action with their action counts. Call it again with a category to page through every action and its parameters as JSON Schema, and narrow the list with the search parameter.

### How do I run a Google Ads action for a customer through Jentic?

Search Jentic for an intent like 'run a Google Ads action for a client', import the API, and store your key once. Your agent then calls POST `/v1/tools/{category}/{action}` with the action's arguments in the body and the customer's profile id in X-Profile-Id. To run it on your own infrastructure, install Jentic One from its GitHub repo.
