Create Campaign
Create a new campaign. Created in PAUSED status for safety. politicalIntent, locale, and offsiteDeliveryEnabled are required by LinkedIn.
Let your AI agents run LinkedIn Ads for you, safely.
A hosted LinkedIn Ads MCP server for Claude, ChatGPT, Cursor and CLI agents. Sign in with LinkedIn, paste one server URL, then report on B2B campaigns by job function and seniority, and build campaigns that start paused.
Enable or disable every action, per account. Block your agent from doing dangerous actions.
Ask in plain English. Create campaigns, pull reports, find insights and take action in LinkedIn Ads.
28 read and write actions. Every LinkedIn Ads task your agent needs, from reporting to campaign management.
Built for teams. Invite your team and share one connected account.
28 actions available to automate your LinkedIn Ads workflows.
28 actions
Create a new campaign. Created in PAUSED status for safety. politicalIntent, locale, and offsiteDeliveryEnabled are required by LinkedIn.
Create a new campaign group. Created in ACTIVE status (LinkedIn rejects PAUSED on creation). Campaigns inside are still PAUSED.
Create a creative with an inline ad post. Supports image, video, carousel (multiImage), lead-gen, and reference (existing UGC post) variants (see body_examples). Created ACTIVE (LinkedIn rejects PAUSED on new creatives); campaign is PAUSED so no ads serve. Flow: get_accounts → upload media (initialize_image_upload or initialize_video_upload + finalize_video_upload) → create_campaign_group → create_campaign → create_creative_inline. For lead-gen attachments, also create_lead_form (or pick from get_lead_forms) and pass leadgenCallToAction.destination.
Create a Lead Generation form. The returned form URN can be attached to a creative via leadgenCallToAction.destination on create_creative_inline. Strings inside content.* (headline, description, question prompts, legalDisclaimer, postSubmissionInfo.message) use the LinkedIn i18n shape: {"localized": {"en_US": "..."}}. Each question has name, question (localized), questionDetails (e.g. textQuestionDetails: {}) and predefinedField (sibling, not nested). content.legalInfo.privacyPolicyUrl is a raw string (not localized). Use get_lead_forms to discover existing forms.
Finalize a chunked video upload. Pass the video URN from initialize_video_upload plus the ordered list of ETags returned by each multipart PUT. Returns the finalized video URN ready for use in a creative.
Retrieve analytics for the entire ad account.
List all ad accounts accessible to the authenticated user.
Retrieve analytics/performance data for campaigns or creatives.
Get bid pricing insights based on targeting criteria.
Fetch details for a single campaign.
Retrieve analytics grouped by campaign.
Fetch details for a single campaign group.
Retrieve analytics grouped by campaign group.
List campaign groups for an ad account.
List campaigns for an ad account.
List conversion tracking rules for an ad account.
Fetch details for a single creative.
Retrieve analytics grouped by creative.
List creatives for an ad account.
Retrieve analytics grouped by member demographics.
List lead generation forms for an ad account.
Retrieve revenue attribution metrics (ROAS, closed opportunities, etc.). Requires CRM integration or manual revenue tracking setup.
Get UTM tracking parameters for a campaign.
Initialize an image upload. Returns uploadUrl and image URN. PUT the raw image bytes to the uploadUrl. Uses the LinkedIn Ads connection (not LinkedIn Pages). Get the owner from get_accounts 'reference' field.
Initialize a video upload. Returns uploadInstructions (one or more partUploadUrls) and a video URN. PUT each chunk of bytes to the matching upload URL, capturing each ETag, then call finalize_video_upload. Files >4MB must be uploaded in multiple parts.
Partial update of a campaign. Only provided fields are updated; omitted fields remain unchanged.
Partial update of a campaign group. Only provided fields are updated; omitted fields remain unchanged.
Partial update of a creative. Use 'intendedStatus' to control creative status (not 'status').
LinkedIn has not published an official MCP server. Your options are to build on the LinkedIn Marketing APIs yourself, run an open-source community server, or use a hosted server like InsightfulPipe.
| What you operate | InsightfulPipe MCP server | Build on the LinkedIn Marketing APIs |
|---|---|---|
| API access | Sign in with LinkedIn; API access is handled for you | Apply for the Advertising API and pass LinkedIn's review |
| Hosting | Hosted by InsightfulPipe | You build, host and secure the server |
| Maintenance | Maintained by InsightfulPipe | Keep up with LinkedIn's versioned API releases |
| Actions | 28 actions for analytics, campaign groups, campaigns, creatives, media uploads and lead gen forms | Up to you |
| Controls | Per-account action controls, Read-only connections, restricted team access, new campaigns paused | Up to you |
| Other platforms | Google Ads, Meta Ads, GA4 and 40+ more MCP servers, plus a CLI | LinkedIn only |
The InsightfulPipe LinkedIn Ads MCP server is a hosted Model Context Protocol server for LinkedIn Campaign Manager. Sign in with LinkedIn, choose your ad accounts and add the server URL to Claude, ChatGPT, Cursor, Claude Code, Gemini CLI or Codex.
Get impressions, clicks, spend, leads and conversions by account, campaign group, campaign or creative over any date range.
See all LinkedIn Ads actionsBreak down results by professional demographics such as job function, seniority, industry and company size to see who your ads actually reach.
See all LinkedIn Ads actionsCompare creatives within a campaign and find the ones worth scaling or pausing.
See all LinkedIn Ads actionsAdd the server URL to your AI client, then sign in with your InsightfulPipe account to authorize access. The server is hosted, so there is nothing to install.
https://linkedin-ads.insightfulmcp.com/Fastest: add InsightfulPipe from the Claude Directory
One click connects the full InsightfulPipe MCP with all your connected accounts. To add a server scoped to LinkedIn Ads only, follow the steps below.
Or add the LinkedIn Ads server manually:
https://linkedin-ads.insightfulmcp.com/
Start a new chat, click +, open Connectors and turn the connector on to use it.
The Free plan can add one custom connector. On Team and Enterprise plans, an Owner first adds it under Organization settings > Connectors, then each member clicks Connect in Customize > Connectors.
Fastest: add InsightfulPipe from the ChatGPT app directory
One click connects the full InsightfulPipe MCP with all your connected accounts. To add a server scoped to LinkedIn Ads only, follow the steps below.
Or add the LinkedIn Ads server manually. Custom MCP servers need ChatGPT's Developer mode, which OpenAI offers on Plus, Pro, Business, Enterprise and Education accounts on the web.
https://linkedin-ads.insightfulmcp.com/
See OpenAI's Developer mode guide.
claude mcp add --transport http linkedin-ads-mcp https://linkedin-ads.insightfulmcp.com/
/mcp, select linkedin-ads-mcp and choose Authenticate.~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):{
"mcpServers": {
"linkedin-ads-mcp": {
"url": "https://linkedin-ads.insightfulmcp.com/"
}
}
}gemini mcp add --transport http linkedin-ads-mcp https://linkedin-ads.insightfulmcp.com/
/mcp auth linkedin-ads-mcp.Using the Codex app? Add InsightfulPipe from the OpenAI app directory
The listed app connects the full InsightfulPipe MCP with all your connected accounts, in both ChatGPT and Codex.
codex mcp add linkedin-ads-mcp --url https://linkedin-ads.insightfulmcp.com/
codex mcp login linkedin-ads-mcp.One hosted server URL, any MCP-compatible client. Pick yours to see the setup steps, or paste the URL into anything that speaks MCP.
Setup guide for ChatGPT
Setup guide for Claude
Setup guide for Claude Code
Setup guide for Codex
Setup guide for Cursor
Setup guide for Gemini CLI
Paste the server URL to connect
Paste the server URL to connect
Paste the server URL to connect
Paste the server URL to connect
Paste the server URL to connect
Paste the server URL to connect
Paste the server URL to connect
Paste the server URL to connect
Paste the server URL to connect
Paste the server URL to connect
Paste the server URL to connect
Paste the server URL to connect
Paste the server URL to connect
Run actions from your terminal
Copy a prompt into any connected client, or install a Claude skill that chains the actions for you.
“What was cost per lead by campaign last month?”
Lead efficiency by campaign
Claude skill that compares efficiency across Meta, TikTok, LinkedIn, Pinterest, X and Snapchat ads and recommends how to reallocate social budget.
“Break down impressions and clicks by job function for our ABM campaign”
Professional demographic breakdown
Claude skill that splits ad budget across Google, Meta, TikTok, LinkedIn and Microsoft Ads using marginal returns, constraints and scenarios.
“Which creatives have the highest CTR in the Q3 demand gen campaign group?”
Creative comparison
Claude skill that audits LinkedIn Ads for B2B advertisers: CPL, targeting, lead quality, lead gen forms, creative, bidding and cost per customer.
“Show spend and conversions by campaign group for the last 90 days”
Campaign group rollup
Claude skill for LinkedIn Ads B2B lead gen and ABM: objectives, targeting, campaign structure, ad formats, lead gen forms and content strategy.
“What bid range does LinkedIn suggest for this campaign's audience?”
Bid and budget pricing
Join hundreds of agencies and brands using InsightfulPipe to connect marketing data to AI.
Start a free trial today.