adwarp

Start with 1 prompt

Paste it into Claude Code, Codex or Cursor. Your agent installs Adwarp, walks you through your LinkedIn app and checks the connection.

setup prompt
Set up Adwarp for me. It's the open-source ad agent for LinkedIn Ads and Google Ads: https://github.com/adwarp-dev/adwarp

1. Check that Node.js 20 or newer is installed.
2. Walk me through creating my own LinkedIn developer app with the Advertising API product: https://github.com/adwarp-dev/adwarp/blob/main/docs/linkedin-app.md
3. Save the app's client ID and secret to ~/.adwarp/config.json as clientId and clientSecret.
4. Run "npx -y adwarp auth login" and wait while I approve access in my browser.
5. Add Adwarp to the AI client I'm using right now as an MCP server that runs "npx -y adwarp mcp". In Claude Code that's: claude mcp add adwarp -- npx -y adwarp mcp
6. Check the connection by listing my ad accounts, then save the one I pick as defaultAccountId in ~/.adwarp/config.json.

Don't create or change anything in my ad accounts during setup. LinkedIn campaigns start as drafts, so nothing spends until I turn it on.
adwarp
GitHub

Start with 1 prompt

Paste it into Claude Code, Codex or Cursor. Your agent installs Adwarp, walks you through your LinkedIn app and checks the connection.

setup prompt
Set up Adwarp for me. It's the open-source ad agent for LinkedIn Ads and Google Ads: https://github.com/adwarp-dev/adwarp

1. Check that Node.js 20 or newer is installed.
2. Walk me through creating my own LinkedIn developer app with the Advertising API product: https://github.com/adwarp-dev/adwarp/blob/main/docs/linkedin-app.md
3. Save the app's client ID and secret to ~/.adwarp/config.json as clientId and clientSecret.
4. Run "npx -y adwarp auth login" and wait while I approve access in my browser.
5. Add Adwarp to the AI client I'm using right now as an MCP server that runs "npx -y adwarp mcp". In Claude Code that's: claude mcp add adwarp -- npx -y adwarp mcp
6. Check the connection by listing my ad accounts, then save the one I pick as defaultAccountId in ~/.adwarp/config.json.

Don't create or change anything in my ad accounts during setup. LinkedIn campaigns start as drafts, so nothing spends until I turn it on.

Ads MCP servers compared: LinkedIn, Google, Meta and Amazon

The servers that exist for each platform, which are official, what each can change, how it signs in and what it costs, checked on 2026-11-07.

By Updated 25 min read

An ads MCP (Model Context Protocol) server lets an AI assistant like Claude or ChatGPT read and change an ad account through tools. Meta (mcp.facebook.com/ads, open beta since April 29, 2026), Google (googleads/google-ads-mcp) and Amazon (open beta for API partners) now run official ones, and LinkedIn doesn't. We checked every server we could find against the same 3 tasks on 2026-11-07, and the tables below give each one's install command, sign-in, what it can change, its guardrail and its price. Adwarp is our project. It's labeled in every row and sorted by the same rules as the others.

The comparison table

The 2 tables below cover the 19 servers we checked. Official servers come first, then everything else alphabetically, Adwarp included. The first one covers what each server can change in an account, and install, sign-in and price are in the second.

Fig. 01Third-party servers in the tables for each platform, 4 for Meta, 9 for Google, 9 for LinkedIn and 3 for Amazon, with the official server on top where there is one, and LinkedIn's slot empty.

What each server can change (checked 2026-11-07)

Server, Platforms, Official, Writes, A new campaign lands, Confirm step
ServerPlatformsOfficialWritesA new campaign landsConfirm step
Meta Ads MCP serverMetaYesCampaigns, ad sets, ads, audiences, catalogs, pixels, A/B testsPausedYour client asks before ads_activate_entity; admins can set rules
google-ads-mcpGoogleYesAssets and labels onlyNo campaign writesPropose, then confirm with a checksum
Amazon Ads MCP serverAmazonYesCreate, update and delete campaignsNot statedNot stated
AdKitMeta, Google, LinkedIn and 4 moreNoCreate, edit, publishDraftYour approval
AdspirerGoogle, Meta, LinkedIn, Amazon, TikTok, ChatGPT AdsNoCampaigns of most types, budgets, targeting, pausingPausedYour approval; can't delete existing campaigns
Adwarp (ours)LinkedIn, GoogleNoLinkedIn campaigns, ads, audiences, budgets, status; Google Search campaignsDraft on LinkedIn, paused on GoogleGoogle validateOnly dry run; dryRun preview on LinkedIn updates
BlueAlphaSeveral, LinkedIn includedNoNone listedNo campaign writesNone needed
ComposioGoogleNoCampaigns and budgets through mutate toolsNot statedNot stated
danielpopamd/linkedin-ads-mcpLinkedInNoCampaign groups, campaigns, ads, deletesDraft by default, ACTIVE acceptedNone in the code
GoMarbleGoogleNoLaunches, budgets, pausing (Operator plan)Not statedYour approval
KuudoAI amazon_ads_mcpAmazonNoCampaigns, bids, deletesStraight to the APINone in the open-source server
linkedin-ads-mcpLinkedInNoCampaign groups, campaigns, statusDraft by default, ACTIVE acceptedNone in the code
linkedin-campaign-manager-mcpLinkedInNoNothing, read-onlyNo campaign writesNone needed
MarkifactMeta, Google, LinkedInNoCampaigns, ads, budgets, pausingHeld until approved, then liveApproval inside Markifact
Marketplace Ad ProsAmazonNoOpt-in writesNot statedEach change asks you to confirm
PipeboardMeta, Google, TikTok, Snap, RedditNoCampaigns, ad sets, ads, budgets, targetingPausedPromised in the README; none in the open-source code
Ryze AIGoogleNoRecommendations, raw mutate and delete, audiencesNot statedYour approval, validateOnly dry runs
SynterLinkedIn and othersNoCampaigns, matched audiencesPausedHeld for review above your thresholds
ZapierGoogle, plus other appsNoCampaign status, offline conversions, customer listsCan't create campaigns; status changes are liveYour client's approval prompt

How you connect it (checked 2026-11-07, prices as each vendor lists them)

Server, Address or install, Sign-in, Runs, License, Price
ServerAddress or installSign-inRunsLicensePrice
Meta Ads MCP serverhttps://mcp.facebook.com/adsFacebook Login for BusinessHosted by MetaHosted serviceNot listed
google-ads-mcppipx run --spec "git+https://github.com/googleads/google-ads-mcp.git" google-ads-mcpGoogle Cloud project, then OAuth or gcloud credentialsLocal, or self-hostedApache-2.0Free
Amazon Ads MCP serverhttps://advertising-ai.amazon.com/mcpLogin with Amazon, plus Amazon Ads API accessHosted by AmazonHosted serviceNot listed
AdKithttps://mcp.adkit.soAdKit sign-inHostedMIT for the client repo$29 a month for 1 project, $49 for unlimited
Adspirerhttps://mcp.adspirer.com/mcpOAuth 2.1HostedRepo says MIT, README says proprietaryFree for 15 calls a month, then $49, $99, $199 a month
Adwarp (ours)npx -y adwarp mcp, or https://mcp.adwarp.dev/api/mcpYour own LinkedIn app and Google OAuth clientLocal, or hosted for LinkedInMITFree
BlueAlphahttps://mcp.bluealpha.ai/mcpBlueAlpha accountHostedHosted serviceFree install, paid tiers not listed
ComposioComposio's Google Ads toolkitOAuthHostedHosted serviceFree for 100,000 calls a month, Pro $29 a month
danielpopamd/linkedin-ads-mcpgit clone, then npm run authYour own LinkedIn appLocalMITFree
GoMarblehttps://apps.gomarble.ai/mcp-api/mcpOAuthHostedHosted service$139 a month read-only, $399 with writes
KuudoAI amazon_ads_mcpdocker compose up -d from the repoYour own Login with Amazon app, or a managed loginLocalMITFree, managed logins billed by Kuudo
linkedin-ads-mcppip install linkedin-ads-mcpYour own LinkedIn appLocalMITFree
linkedin-campaign-manager-mcpnpm install -g linkedin-campaign-manager-mcpYour own LinkedIn appLocalMITFree
Markifacthttps://api.markifact.com/mcpOAuthHostedHosted service$79 or $249 a month
Marketplace Ad Proshttps://app.marketplaceadpros.com/mcpOAuthHostedMIT for the repoFrom $10 a week
Pipeboardhttps://meta-ads.mcp.pipeboard.co/Pipeboard login, then FacebookHosted, or local from sourceBusiness Source License 1.1Free for 2 ad accounts, then $29.90, $99, $199 a month
Ryze AIhttps://connector.get-ryze.ai/mcpSign in with GoogleHostedHosted service$89 a month
Synterhttps://mcp.synterai.com/mcpOAuth in the browserHostedMIT for the clientFree to read, $20 a month to write, $5 per campaign
Zapiermcp.zapier.comZapier accountHostedHosted service2 tasks per call, free for 100 tasks a month

How we checked

We checked every server against the same 3 tasks, the kind you'd ask from Claude Code:

  1. Report spend, clicks and conversions for the last 30 days, by campaign.
  2. Find the ads to pause under 1 stated rule: 500 USD or more spent and 0 conversions in the last 30 days.
  3. Draft a new campaign, then check where it landed: live, paused or draft.
Fig. 02The 3 tasks drawn as 1 report, where the pause rule flags only rows with 500 USD or more spent and 0 conversions and the dashed bottom row is the new campaign whose status we check.

For this edition we answered the 3 tasks from what each server ships on 2026-11-07: the tool list, the source code where it's open, the docs, the license file and the price page. For every hosted server with a public address we also sent 1 request without a token and wrote down the sign-in it asked for. That is how we know Meta's endpoint answers with an OAuth challenge that lists its scopes, ads_management among them, and that Amazon's points at Login with Amazon.

Fig. 03A request with no token got a 401 from both endpoints, and each reply named the sign-in it wants, Meta's with its list of scopes.

We didn't connect any server to a live ad account for this edition, ours included. Where the docs say a new campaign starts paused, the table says paused and the card names the page it came from. For the open-source servers we read the code that sets the status, since a README and the code don't always agree. Twice they didn't, and both cases are in the cards below.

We build Adwarp. It sits in the same tables under the same rules, official servers first and then alphabetical order, and nobody gets a score. Where another server does something better than ours, its card says so.

Fig. 04The same 3 tasks are checked in this edition and again every quarter, so a server that adds write tools or changes its sign-in shows up in the next table.

Changelog. 2026-11-07: first edition, 19 servers checked against their own repos, docs and endpoints. Next check: 2027-02-07, with the new date in the title.

Meta Ads and Facebook Ads MCP servers

Meta has the busiest field and the most complete official server of the 3. Every server here, Meta's included, sends its calls through the same Marketing API, so the limits on edits and budget changes in the last part of this section apply whichever one you pick.

Fig. 05Every Meta server in this post calls the same Marketing API, so the per-object limits on edits and budget changes follow you from 1 server to the next.

Meta's official Ads MCP server

Meta announced its ads AI connectors on April 29, 2026, "in open beta", as an MCP server plus a command line interface (CLI). An update on July 16, 2026 added connecting through your own developer app and "ads MCP server rules". The developer pages we read on 2026-11-07 don't carry a beta label, and none of Meta's pages list a price.

  • Address: https://mcp.facebook.com/ads, hosted by Meta (overview).
  • Sign-in: your client opens Facebook Login for Business. A request without a token got a 401 naming the scopes it wants, from ads_read and ads_management to ads_mcp_management. User tokens and Employee-role system user tokens work, and the setup page says "Admin-role system user access tokens can't access the ads MCP server."
  • Claude Code, with your own app: claude mcp add --transport http --client-id <META_APP_ID> meta-ads https://mcp.facebook.com/ads. Owning an app is optional, and Meta's help center covers the setup without one.
  • Tools: Meta doesn't give a total. Its 7 tool pages list 88 different tools by our count, and Jon Loomer puts it at "nearly 100".
  • Task 1: ads_get_ad_entities returns campaigns, ad sets and ads with spend, impressions, click-through rate, cost per click and conversions.
  • Task 2: the same read finds the ads. The tools page lists no pause tool, and ads_update_entity ("Update fields on an existing campaign, ad set, or ad") doesn't say whether status is 1 of those fields, so the docs alone don't confirm a pause.
  • Task 3: ads_create_campaign, ads_create_ad_set and ads_create_ad. From the tools page: "Write tools create entities in a paused state; your AI client asks for confirmation before activation." The tool that switches things on is ads_activate_entity, which "starts spending budget".

Look at those rules before anything else. A person with full control of a business portfolio uses them to limit what agents do in an ad account, budget changes and catalog updates included. Loomer checked his accounts in August 2026 and found all "7 of 7" actions allowed until he changed them: budgets, campaigns, ad sets, ads, targeting, creative and status. Until someone sets them, the paused default is the only brake. Agencies that connect client accounts through their own app also need App Review for Advanced Access.

Fig. 06Jon Loomer found all 7 agent actions allowed in the ads MCP server rules on his accounts in August 2026, and they stayed that way until he changed them.

Meta's CLI sits beside the server. It installs with brew tap facebook/fb then brew install facebook/fb/meta-ads, or pip install meta-ads on Python 3.12 or later, and it signs in with a system user access token (CLI setup).

It also reads Meta's own benchmarks, anomaly signals and opportunity score, which no third-party server can reach. If you run Meta Ads, start here. Adwarp doesn't cover Meta at all.

Pipeboard

Pipeboard's repo had 1,356 stars on 2026-11-07, more than any other ads server we checked. Its license is the Business Source License 1.1. You can read and run the code, but you can't offer it as a competing hosted service, and it converts to Apache-2.0 on January 1, 2029.

  • Hosted: https://meta-ads.mcp.pipeboard.co/ with 42 tools. The same login also covers Pipeboard's Google Ads (59 tools), TikTok, Snap and Reddit servers.
  • Local: run it from source with your own Meta app or a META_ACCESS_TOKEN.
  • Tasks 1 and 2: insights by campaign, ad set or ad, and pausing or resuming.
  • Task 3: in the code, campaigns, ad sets and ads all default to PAUSED. The README promises "explicit confirmation on every write". We found no confirm step in the open-source code, so on a local install the only check is your client's own permission prompt.
  • Price: free for 2 ad accounts and 30 tool runs a week, then $29.90, $99 or $199 a month (pricing).

If you run ads on 3 or 4 of those platforms and want 1 login for all of them, Pipeboard does that and Adwarp doesn't.

Markifact, Adspirer and other hosted Meta servers

These sign you in with OAuth and keep the ad platform tokens on their side. You skip the developer setup, and in exchange your account data passes through the vendor.

  • AdKit (https://mcp.adkit.so) covers Meta, Google, TikTok, LinkedIn, Microsoft, Reddit and X. Its repo says every change starts as a draft and nothing goes live without your approval. $29 a month for 1 project, $49 for unlimited, with a 7-day trial (pricing).
  • Adspirer (https://mcp.adspirer.com/mcp) lists 58 Meta tools in its README, for image, video, carousel, catalog and lead campaigns. "New campaigns are always created paused." Free for 15 tool calls a month, then $49, $99 or $199.
  • Markifact (https://api.markifact.com/mcp) gives "Full read and write access" to campaigns, ad sets, creatives, audiences and budgets, and writes "always stop for your approval" inside Markifact (Meta page). $79 or $249 a month after trial credits.

Is "Facebook Ads MCP" the same thing?

Yes. Facebook and Instagram ads run in the same Meta ad account, through the same Marketing API, so a "Facebook Ads MCP" and a "Meta Ads MCP" are the same servers. Meta's endpoint even asks for Instagram scopes next to the ads ones, and Pipeboard labels its server "Facebook + Instagram".

Fig. 07Facebook and Instagram ads come out of 1 Meta ad account, so a server sold as a Facebook Ads MCP reaches the same campaigns as a Meta one.

So "MCP in Facebook ads" means a server your assistant connects to so it can pull reports and build campaigns in your ad account, and "a Meta MCP" usually means Meta's own at mcp.facebook.com/ads. It works with Claude. The setup page gives the Claude Code command above, and any client that can add a remote server with OAuth can connect.

Rate limits and account restrictions on Meta

Meta's rate limiting page sets the Ads Management limit per ad account per hour at 100,000 calls for an app with full Marketing API access, or 300 in the development tier, plus 40 for each active ad. Go over it and calls fail with error 80004 and "There have been too many calls from this ad-account." Some limits sit on the object instead of the app: "one edit per object every 30 seconds", about 4 budget changes per ad set per hour before budget changes on that ad set are blocked for an hour, and 10 spend limit changes a day. An agent that retries a budget change in a loop hits that wall fast.

The account restrictions are reports, and we couldn't confirm any of them with Meta. Loomer wrote that weeks before the launch "Meta was shutting down ad accounts that advertisers were connecting to their favorite LLMs." Common Thread mentions advertisers "getting accounts restricted for using third-party AI tools", and The Keyword quotes a warning about "real risk of account bans if automation makes changes too aggressively without human oversight". We couldn't find the X post about random bans that shows up in search, and Reddit refused our requests. Meta's own connector pages say nothing about bans.

If that worries you, use Meta's official server or 1 on an app you own, and set the rules before the first write.

Google's official server changed on 2026-11-02. Version 0.0.6 added 4 write tools, so the comparisons that call it read-only are out of date. Google's own developer page, last updated 2026-10-30, still says it "is strictly read-only".

Fig. 08Google's server writes in 2 calls: the proposal returns a checksum, the confirm call has to match it, and only assets and labels can be written.

Google's official server

googleads/google-ads-mcp is Apache-2.0, free, and had 1,128 stars on 2026-11-07. It has 7 tools. search runs Google Ads Query Language (GAQL), and get_resource_metadata and list_accessible_customers read too. The 4 writes are create_asset, upload_video_asset, manage_labels and manage_label_associations.

  • Install: pipx run --spec "git+https://github.com/googleads/google-ads-mcp.git" google-ads-mcp, or pin a version from PyPI. It runs locally, or you host it yourself over HTTP.
  • Sign-in: a Google Cloud project with the Google Ads API turned on, then credentials from gcloud auth application-default login with the adwords scope, an OAuth client, or a google-ads.yaml file.
  • Task 1: 1 search call with a GAQL query does it.
  • Task 2: search finds the ads. Nothing can pause them, because no tool touches status.
  • Task 3: no tool creates a campaign, changes a budget or edits a bid. create_asset adds to the asset library without linking anything to a campaign. Labels can be attached to campaigns, and a confirmed write takes effect at once.

Every write goes through what the README calls "Propose & Confirm". The first call runs with validate_only=True and returns the changes plus "a cryptographic checksum bound to the customer ID and parameters". The second call has to send the same parameters with that checksum "after explicit user approval", and "any missing or mismatched checksum is rejected before mutating the account." In the source the checksum is a SHA-256 hash of the customer ID and the operations, with no secret key. So it stops an agent from confirming a different change than the one it proposed, and it can't tell whether a person approved. Your client's permission prompt does that part. For a read-only install, set labels: false and assets: false in tools_config.yaml.

Setup is simpler than older guides say. Google's access levels page (updated 2026-10-30): "Developer tokens were sunset on September 9, 2026, and API access levels are now managed per Google Cloud project." Explorer allows 2,880 operations a day on production accounts, Basic 15,000, and Standard has no cap. The announcement went out on September 10. The Google Ads API access post walks through the new flow.

Hosted Google servers

With a hosted server you sign in with Google and skip the Cloud project, and the vendor holds the token. Prices below were checked on 2026-11-07.

Fig. 09A hosted server skips the Cloud project and signs you in with Google, and in exchange the token sits with the vendor instead of on your machine.
Server, Changes, A write lands as, Price
ServerChangesA write lands asPrice
Adspirer151 Google tools; Search, Performance Max, Display, Demand Gen, YouTube, Shopping and App campaignsPausedFree for 15 calls a month, then $49 to $199
AdKitCreate, edit and publish across 7 platformsDraft$29 or $49 a month
Composio78 tools, mutate tools for campaigns and budgets includedNot statedFree tier, Pro $29 a month
GoMarbleLaunches, budgets, pausing, on Operator and aboveApproval first, landing not stated$139 read-only, $399 with writes
Markifact60+ tools, campaigns, budgets, negatives, a generic mutateHeld until approved, then live$79 or $249 a month
Pipeboard59 tools, Search ads, Performance Max, keywords, generic mutatePaused where the platform allowsFree tier, then from $29.90
Ryze AI14 tools, 6 of them writes: recommendations, raw mutate and delete, audiencesApproval first, landing not stated$89 a month
ZapierCampaign status, offline conversions, customer listsLive2 tasks per call, 100 tasks free a month

GoMarble also publishes an open-source server (MIT, 147 stars) with 3 read-only tools, and it still asks for a developer token. Adspirer covers far more Google campaign types than ours, and Zapier also reaches the other apps you use, like your CRM.

Adwarp's Google tools (ours)

Adwarp's Google Ads tools cover Search campaigns only. gads_launch_search_campaign builds the budget, campaign, targeting, ad groups, keywords and responsive search ads in 1 atomic request. Its first call is Google's validateOnly dry run, which checks the whole batch and saves nothing, and the tool's description tells the assistant to show you that plan and wait for a yes. The real call creates everything paused. No Adwarp tool can enable a Google campaign: you switch it on in the Google Ads UI.

Fig. 10Adwarp's Google launch runs first as a validateOnly dry run that saves nothing, and only after you say yes does the real call create the campaign, paused.
  • Task 1: gads_performance at campaign level, with totals and derived figures.
  • Task 2: gads_performance at ad level finds them. Adwarp can't pause a Google ad, so you'd do that in Google Ads.
  • Task 3: lands paused, after the dry run.

The other tools read accounts, manager accounts, campaigns, ads, conversion actions and keyword ideas, and gads_search runs read-only GAQL. 3 house rules are fixed in every launch: Search network only, people physically in the target location, and manual cost per click to start.

Gaps: no Performance Max, Display, Shopping or video, no edits to an existing campaign, and none of the asset or label writes Google's own server has. The Google tools also run only on the local server. The hosted endpoint at mcp.adwarp.dev never registers them, because it serves many callers and Google credentials would come from shared server settings. Setup is on /docs/google-ads-setup, and the product page is /google-ads.

LinkedIn Ads MCP servers

LinkedIn has no official server, so every LinkedIn option is a third-party one. They all go through LinkedIn's Advertising API, either on a developer app you own or on an app a vendor owns for you.

Fig. 11Every LinkedIn Ads server goes through a LinkedIn developer app with Advertising API access, yours or a vendor's, because there's no official server to skip it.

LinkedIn has no official server

We checked on 2026-11-07. LinkedIn's marketing docs on Microsoft Learn, including the recent changes page updated 2026-11-04, don't mention MCP, and a search of LinkedIn's developer docs returns no MCP page.

What LinkedIn requires of any server is spelled out in its quick start. You need a LinkedIn Page and a developer application, then you request the Advertising API under the app's Products tab and complete the access form. "All applications start with Development tier" (access tiers), which allows unlimited reads but edits on up to 5 ad accounts. Standard tier lifts that, and you request it through a support ticket with "a video demonstrating how your platform creates, edits, or optimizes LinkedIn campaigns." The scopes are r_ads, r_ads_reporting and rw_ads, and matched audiences need a separate product. The LinkedIn Ads API post covers the application.

Fig. 12A new LinkedIn app starts in Development tier, with unlimited reads but edits on only 5 ad accounts, until Standard tier lifts the cap.

Hosted vendors went through this once, for their own app, which is how Markifact can tell you to "Skip the developer application". Your account data and tokens then sit with them.

Adwarp (ours)

Adwarp creates LinkedIn campaign groups, campaigns and ads as drafts. Every ad set it creates has Audience Network and Audience Expansion turned off, and no Adwarp tool turns either back on (/docs/safety). A campaign or a single ad goes live only when you ask Adwarp to set it ACTIVE or when you switch it on in Campaign Manager. Around that sit audience sizing, matched audiences from a CSV file, a Salesforce query or a HubSpot list, any company's ads through LinkedIn's official Ad Library API, reporting, and a change journal that records every write and compares the 14 days before a change with the 14 after.

Fig. 13An ad Adwarp creates on LinkedIn lands as a draft, in an ad set with Audience Network and Audience Expansion off and no tool to switch them back on.
  • Local: claude mcp add adwarp -- npx -y adwarp mcp. Sign in once with npx -y adwarp auth login, which runs LinkedIn's OAuth in your browser and keeps the tokens in ~/.adwarp. The Claude setup has the full steps.
  • Hosted: https://mcp.adwarp.dev/api/mcp, with your own app's credentials sent as request headers. npx -y adwarp auth export --mcp prints the connect command. 6 tools need your machine and don't work there (CSV upload, Salesforce, HubSpot and the 3 journal tools), and it never serves the Google tools (hosted docs).
  • Task 1: performance_summary or get_performance at campaign level.
  • Task 2: get_performance at ad level finds them, and update_ad pauses 1 named ad at a time, with a dryRun preview first.
  • Task 3: create_campaign_group and create_campaign land as DRAFT.
  • Thought leader ads: create_post_ad sponsors a post that already exists, a member's post included once the member approves in LinkedIn, and the ad lands as a draft. It shipped in Adwarp 0.5.0 on November 7, 2026.
  • License and price: MIT, free, no account.

Downsides: you need your own LinkedIn app with the Advertising API approved before the first call. There's no 1-click sign-in. On the hosted endpoint your client secret and refresh token travel with every request. It doesn't read lead form responses, and linkedin-campaign-manager-mcp below does. The product page is /linkedin-ads, and every tool is listed on /docs/tools.

Community LinkedIn servers

We read the source of each of these on 2026-11-07 rather than installing them, and counted the tools from the code.

  • danielpopamd/linkedin-ads-mcp: 25 tools, MIT, 42 stars, last updated 2026-09-02. It reads accounts, performance, demographics, reach, conversions and lead forms, and it creates and deletes campaign groups, campaigns and ads. New items default to DRAFT, but the tools accept ACTIVE and update_campaign can move a campaign from DRAFT to ACTIVE, with no confirm step in the code. Install is git clone, npm install, npm run build, then npm run auth with your own app.
  • linkedin-ads-mcp on PyPI, from Nuraveda Lab: 11 tools, 7 that read and 4 that write campaign groups, campaigns and their status. It can't create ads yet. The README says "All write tools default to DRAFT", which is true of the default, but the status tool accepts ACTIVE. MIT since 0.4.0, version 0.4.1 on 2026-10-01, pip install linkedin-ads-mcp.
  • linkedin-campaign-manager-mcp on npm: 19 read-only tools. Its sign-in asks only for read scopes, so it can't change anything. It reads lead form responses "with PII", meaning names and emails. Version 1.1.1 on 2026-04-27, and its GitHub repo returned a 404 on the day we checked.

3 smaller projects showed recent activity: get-mcp-ads, with writes off until you turn them on, a preview, then confirm: true and a DRAFT; mharnett/mcp-linkedin-ads, read-only by default; and cesteral, whose LinkedIn package has 23 tools.

Multi-platform servers with LinkedIn

  • Adspirer lists 54 LinkedIn tools in its README. Its own pages also say 28, 55 and 56. It writes image, video, carousel and text campaigns, campaign groups and lead forms, and "New campaigns are always created paused." Its LinkedIn page says it "cannot delete existing campaigns" and that budget changes need confirmation, though delete_linkedin_creative removes an ad for good.
  • Synter (synterai.com/mcp) marks LinkedIn as live, with tools that create campaigns and matched audiences. New campaigns start PAUSED, and changes above thresholds you set wait in pending_review for a person. Free to read, $20 a month to write, plus $5 per campaign.
  • Markifact (LinkedIn page) is hosted in the EU and writes campaign groups, campaigns, image, video, carousel, text and Spotlight ads, and budgets. It doesn't create lead forms or matched audiences in chat, and it "holds every account change until someone approves it."
  • BlueAlpha (bluealpha.ai/mcp) reads and analyzes LinkedIn alongside other platforms: account health, audience overlap, creative fatigue, lead quality. We found no write tools. Installing is free.

All 4 beat ours on setup: you connect in a browser and never apply for the Advertising API. Pick 1 of them if you can't get your own app approved, or if you need Meta in the same chat.

Amazon Ads MCP servers

Amazon has an official server too, and its announcement says it can create, update and delete campaigns. Access is the hard part: you need Amazon Ads API credentials first.

Fig. 14Amazon's official server sits inside 2 bigger circles, because you need Amazon Ads API access before you can join the open beta.

Amazon's official server

Amazon announced it on February 2, 2026: "The Amazon Ads MCP Server and tools are available globally in open beta to Amazon Ads partners with active API credentials." Agents can use "individual Amazon Ads capabilities such as creating, updating, or deleting campaigns," and a separate tool creates "end-to-end Sponsored Products campaigns in a single workflow." The post names Claude, ChatGPT and Gemini. A closed beta had started on 2025-11-13, according to PPC Land.

Fig. 15Amazon's server can build a whole Sponsored Products campaign in 1 workflow, drawn here as the sponsored card in a row of product listings.
  • Address: https://advertising-ai.amazon.com/mcp for North America. We found the address in third-party guides, since Amazon's docs pages load with JavaScript and we couldn't read them. Our request without a token got a 401 pointing at Login with Amazon, with the scope advertising::campaign_management.
  • Getting access: the Amazon Ads API page says access "requires an application and approval process." Partners apply through the Amazon Ads Partner Network, and direct advertisers use the "Request API access" form. If you only use a tool that already has API access, you don't apply.
  • Tasks: reporting and campaign writes are both in scope. Where a new campaign lands and whether there's a confirm step weren't in anything we could read, so the table says "not stated".
  • What's next: on 2026-09-30 Amazon put "expert tools" for Amazon Marketing Cloud into closed beta, with general availability planned for "early 2027" and pay-per-use billing through AWS Marketplace (Amazon Ads). The core server has no general availability date.

Third-party Amazon servers

  • KuudoAI amazon_ads_mcp: MIT, 73 stars, version 0.3.33 on 2026-11-06, also on PyPI as amazon-ads-mcp. It runs locally with docker compose up -d and covers "711 Amazon Ads API operations across 53 services", from Sponsored Products to DSP and Amazon Marketing Cloud. Writes like cm_CreateCampaign and sp_updateBids go straight to the API, and the open-source server has no approval step. You sign in with your own Login with Amazon app, or through a login Openbridge or Kuudo manages. Note the repo name uses underscores: the hyphenated clone address in its README returned "Repository not found".
  • Adspirer: 61 Amazon tools for Sponsored Products, Sponsored Brands and Sponsored Display, with Amazon's own bid and keyword recommendations. New campaigns land paused, and it "cannot delete existing campaigns by design" (Amazon page).
  • Marketplace Ad Pros (repo): hosted, "read-only by default", with opt-in writes where each change asks you to confirm. From $10 a week.
  • get-mcp-ads: local, Apache-2.0, 31 read tools and 77 writes that are off until you turn them on and preview before they run.

Kuudo is the widest open-source option, reaching DSP and Amazon Marketing Cloud. For writes, Adspirer's paused default and its no-delete rule make it the safer of those 2.

Before you give an agent write access

An MCP server with write tools can do whatever its token allows, and the assistant decides when to call them. Your client's permission prompt is 1 check, and these 6 questions cover most of the rest.

Fig. 16Check where a write lands before anything else, since drafts and paused campaigns wait for you and a live campaign starts spending.
  1. Where does a new campaign land? A draft or a paused campaign waits for you. Meta's server lands paused, Adwarp lands drafts on LinkedIn and paused campaigns on Google, and Zapier's status change takes effect at once. The table below has every server.
  2. Is there a confirm step outside the chat? Google's checksum and Adwarp's validateOnly dry run are checked in code. Markifact and Synter hold changes in their own app until someone approves. A sentence in a tool description is weaker than either.
  3. Can 1 call change many things? Generic mutate tools (Markifact, Pipeboard's Google server, Ryze AI) can touch anything the API allows in 1 call. Adwarp's update_ad changes 1 named ad, and its update_campaign replaces targeting only when you pass new targeting.
  4. Is there a change log you can read later? Adwarp writes every change to a local journal (/docs/journal). Meta's server has activity log tools. For the rest, the platform's own history is what you have.
  5. Whose rate limits does it use? Limits are counted per app or per Cloud project. Google's access levels cap operations a day per Cloud project, so on a vendor's project your agent shares that cap with every other customer. Meta's per-object limits apply whichever app you use.
  6. Where do the credentials live? On your machine (Adwarp local, Google's server, the community servers), in request headers you control (Adwarp hosted), or with the vendor (every hosted vendor). Treat a token that can create campaigns like the ad account password.

Where a new campaign lands, by server (checked 2026-11-07)

Lands as, Servers
Lands asServers
DraftAdwarp on LinkedIn, AdKit, get-mcp-ads; danielpopamd/linkedin-ads-mcp and linkedin-ads-mcp by default, though both accept ACTIVE
PausedMeta's server, Adwarp on Google, Adspirer, Pipeboard, Synter
Held until approved, then liveMarkifact
LiveZapier (it can't create campaigns, and status changes apply at once)
Whatever the call asks for, with no approval stepKuudoAI amazon_ads_mcp
No campaign writesGoogle's server, BlueAlpha, linkedin-campaign-manager-mcp
Not statedAmazon's server, Composio, GoMarble, Marketplace Ad Pros, Ryze AI

The full list of what Adwarp will and won't do on its own is on /docs/safety.

What "marketing MCP" covers beyond ads

MCP is "an open-source standard for connecting AI applications to external systems" (modelcontextprotocol.io). Anthropic released it on November 25, 2024. For a marketer it means 1 assistant can read your analytics, your customer relationship management (CRM) system and your ad accounts in the same chat, with each connection added as a server.

Fig. 17Ads, analytics and CRM each get their own server, and the assistant reaches all of them over the same protocol.

ChatGPT uses MCP too. OpenAI's docs have you go to ChatGPT Plugins, select the plus button and choose "Add custom MCP server", and they add that "ChatGPT currently requires manual confirmation in any conversation before write actions can be taken." Which ChatGPT plans can add custom servers wasn't on that page, and we couldn't load OpenAI's help article to check.

The official servers worth pairing with an ads server, checked on 2026-11-07:

  • Google Analytics: googleanalytics/google-analytics-mcp, Apache-2.0, pipx run analytics-mcp. It reads reports, and version 1.1.0 (2026-11-06) adds a few writes, like annotations and key events, behind an --allow-write flag.
  • HubSpot: a remote server at mcp.hubspot.com, generally available to all HubSpot accounts since 2026-04-13. It reads and writes CRM records, and its write tools need explicit confirmation.
  • Salesforce: hosted MCP servers, generally available for Enterprise Edition orgs and above, signing in through an External Client App with your existing user permissions.
  • Google Search Console: no official server. Google's list of its own servers doesn't include one.

Put it to work

LinkedIn Ads

Adwarp's LinkedIn Ads tools, run from your terminal: drafts first, audiences, reporting and a change journal.

adwarp.dev/linkedin-ads

By Stan Rymkiewicz, maintainer of adwarp. Published November 7, 2026.

FAQ

Questions Short answers, with sources.

Ask on GitHub
What is MCP in Facebook ads?

MCP, the Model Context Protocol, is how an AI assistant connects to an outside system through tools. In Facebook ads it means a server that lets Claude, ChatGPT or another assistant pull reports and build campaigns in your Meta ad account. Meta runs its own at mcp.facebook.com/ads.

What is a Meta MCP, and does Meta have an MCP for Claude?

A Meta MCP is a server that connects an AI assistant to Meta's Marketing API, and it usually means Meta's own, announced in open beta on April 29, 2026. It works with Claude: Meta's setup page gives a Claude Code command, and you sign in with Facebook Login for Business. Campaigns it creates start paused.

Is there an MCP for Facebook?

Yes. Facebook and Instagram ads share a Meta ad account, so Meta's server at mcp.facebook.com/ads covers both. Third-party servers like Pipeboard, Adspirer, AdKit and Markifact do too.

Is the Google Ads MCP server read-only?

Not anymore. Version 0.0.6 of googleads/google-ads-mcp, released on 2026-11-02, added 4 write tools for assets and labels behind a propose-and-confirm step with a checksum. It still can't create campaigns, change budgets or pause anything, and setting labels and assets to false in its config makes it read-only again.

Do I still need a Google Ads developer token?

No. Google's access levels page says developer tokens were sunset on September 9, 2026, and access levels now belong to the Google Cloud project you use for OAuth. Google says tokens sent today are ignored, and a future API version will start rejecting them.

Google Ads API access

Is there an official LinkedIn Ads MCP server?

No. On 2026-11-07 LinkedIn's marketing docs had no MCP server and no page about one. Every LinkedIn server, Adwarp included, runs on the Advertising API through a developer app, either your own or a vendor's.

LinkedIn Ads API access

Is there an official Amazon Ads MCP server, and who can use it?

Yes. Amazon announced it on February 2, 2026, in open beta for Amazon Ads partners with active API credentials. You get those by applying for Amazon Ads API access as a partner or a direct advertiser, and the server signs you in with Login with Amazon.

Can an ads MCP server spend money without asking?

Some can. Zapier's campaign status change applies at once, and 2 open-source LinkedIn servers accept an ACTIVE status with no confirm step in their code. Meta's server, Adspirer, Pipeboard and Adwarp on Google create campaigns paused, Adwarp on LinkedIn creates drafts, and Google's own server can't create campaigns at all.

Adwarp's safety rules

Can Meta restrict my ad account for using an MCP server?

There are reports of it, mostly from before Meta launched its own server, and we couldn't confirm any with Meta. Meta's connector docs say nothing about bans, but its rate limits do block an ad account that makes too many calls or too many budget changes. Meta's official server, with its rules set and few writes, is the low-risk path.

What is MCP in marketing, and does ChatGPT use MCP?

MCP lets 1 AI assistant connect to your ad accounts, analytics and CRM as separate servers, so it can answer questions that span them. ChatGPT supports it: you add a custom MCP server from ChatGPT Plugins, and ChatGPT asks for manual confirmation before any write action.

Free and open source MIT licensed. Run it locally, self-host the endpoint, or read every line on GitHub.

$ claude mcp add adwarp -- npx -y adwarp mcp

Read the docs

GitHub