LinkedIn Ads MCP server: B2B campaigns and reporting from Claude or Codex
LinkedIn Ads has a mature Marketing API and, as of September 2026, no official MCP server. This guide covers what the community options give you, what a hosted server adds, the exact configuration for Claude Code, Claude Desktop and Codex, and the three LinkedIn rules that decide whether a create succeeds.
What already exists for this platform
LinkedIn publishes the Marketing API with a versioned REST surface, and had not shipped an official MCP server at the time of writing (September 2026). What exists is community-built: local wrappers around the REST API, usually read-focused.
- No official server, and no hosted endpoint from LinkedIn.
- Your own app, and its review. A local wrapper needs a LinkedIn developer app with the Marketing Developer Platform product approved — which is a review, not a checkbox.
- Three products sit behind further review. The Conversions API, Matched Audiences and Lead Sync each need their own approval, so a wrapper that calls them may simply fail for you.
What a full MCP server adds
| Typical option today | Agent Planners MCP | |
|---|---|---|
| LinkedIn Ads tools | Community wrappers, varying | 26 reads, 41 writes |
| Reporting | Usually | Campaign, creative, demographic and conversion reporting, in the account's own currency |
| Creates | Rare | Campaign groups, campaigns and creatives — creatives land as drafts, which is LinkedIn's own rule |
| Account binding | Your own discipline | Every write reads its object first and is bound to the ad account URN you picked |
| Deletes, organic posts, conversions | Whatever the wrapper does | Held for a person on every key mode |
| Lead form answers | Returned raw | Redacted on every lane; test submissions excluded unless asked for |
| Other platforms in the same session | No | 28 more platforms on one endpoint |
{ amount, currencyCode } already, so nothing here divides or multiplies a figure on the way through.How to configure it
- 1Create a key in API & MCP.
tools:readfor reporting; addtools:writefor changes. Tools mode needs a paid plan and fails closed. - 2Connect LinkedIn Ads under Integrations, signing in with a member who holds a role on the ad accounts you want. One row is created per ad account.
- 3Add the server to Claude Code, Claude Desktop or Codex with the snippet below.
- 4Run
describe_permissions, thenlist_accountsfor the ad account ids, and scope every call with one.
claude mcp add --transport http agentplanners https://www.agentplanners.com/api/mcp \
--header "Authorization: Bearer ap_live_…"Three LinkedIn rules that decide whether a create works
These were measured against a live ad account rather than read off the documentation, which is why they are stated this precisely.
politicalIntentis required on a campaign create — LinkedIn answers 422 without it. The tool sendsNOT_DECLAREDunless you pass a value, because an EU political declaration belongs to the advertiser.- A new creative is a draft, and cannot be set to paused until its review is approved.
- A draft creative cannot be archived — nor can a campaign under a draft group. They have to be deleted, and LinkedIn's own error hint says so.
What waits for a person, whatever the key allows
- The three deletes, and archiving a post — which cannot be undone.
- Publishing an organic post or sharing as a member.
- Sending conversion events. LinkedIn has no test mode, so every send is real.
- Account user writes and blocking an Insight Tag domain.
tools:write, and never bulk-approved. The token clock is worth knowing too: the refresh token lives 365 days from the first authorization, fixed, and never rotates.Three products still pending LinkedIn's review
The Conversions API, Matched Audiences and Lead Sync each need LinkedIn's own approval for this app, on top of the Advertising API. Until LinkedIn grants a product, its tools are listed like any other, and a call answers "pending LinkedIn review" from the grant before anything is sent — a clear refusal, never a half-made request.
Frequently asked questions
- Is there an official LinkedIn Ads MCP server?
- Not as of September 2026 — LinkedIn publishes the Marketing API but has shipped no MCP server, official or hosted. The options are community wrappers you run locally, or a hosted server like this one.
- Why does a LinkedIn campaign create fail with 422?
- Most often because
politicalIntentis missing — LinkedIn requires the field. This server sends NOT_DECLARED unless you pass NOT_POLITICAL or POLITICAL, because the EU political declaration is the advertiser's to make. - Can an MCP client read LinkedIn lead form answers?
- Not in full. Lead form responses are redacted on every lane because they are answers a person typed, and test submissions are excluded unless you ask for them specifically.
- Can it publish to a LinkedIn company page?
- Only with a person's approval. Publishing an organic post, sharing as a member and archiving a post are all held for a person on every key mode, including a key carrying tools:write.