100+ integrations are ready to connect to your AI.Connect your first MCP

LinkedIn Ads MCP server for your AI

Build campaign groups, campaigns and ads, size an audience before you target it, pull performance and CRM-attributed revenue, and pick up Lead Gen form leads as they arrive.

PopMCPLinkedIn Ads

Show me the A/B test results for the demo-request campaigns

Supported LinkedIn Ads tools

Every Marketing API call this server exposes — campaigns, creatives, targeting, audiences, conversions, analytics, leads — and the triggers it can watch.

linkedin_ads_create_comment

Post a comment on a post, or a reply on a comment, as the signed-in member or as the organization.

linkedin_ads_delete_comment

Delete a comment from a post — the moderation action for spam or abuse under a sponsored post.

linkedin_ads_find_organization_access_by_member

List the LinkedIn Pages the signed-in member administers, and their role on each.

linkedin_ads_find_organization_by_vanity_name

Find a LinkedIn Page by its vanity name — the slug in linkedin.com/company/<vanityName>.

linkedin_ads_get_me

Get the signed-in LinkedIn member's own profile — id, name and headline.

linkedin_ads_get_organization

Get a LinkedIn Page (organization) by id: name, vanity name, website, industry, staff-count range, logo and description.

linkedin_ads_get_organization_share_statistics

ORGANIC engagement for a Page's posts — impressions, clicks, likes, comments, shares and engagement rate, either aggregated or per post.

linkedin_ads_list_comments

List the comments on a post (or the replies on a comment).

linkedin_ads_create_creative

Attach an existing post to a campaign as an ad (a 'creative').

linkedin_ads_create_creative_inline

Create the post AND the ad in ONE call — the recommended way to build Sponsored Content, because it avoids the orphaned-dark-post problem where a post is created but the creative fails.

linkedin_ads_create_dynamic_creative

Create a creative on the ACCOUNT-LESS /creatives resource — the form LinkedIn documents for Text Ads, Spotlight Ads, Follower Ads, Dynamic Job Ads and VAST-tag Video Ads.

linkedin_ads_find_creatives

Find ads (creatives) in the connected ad account, filtered by campaign, content reference, creative URN or intended status.

linkedin_ads_get_ad_preview

Get a renderable HTML preview iframe for an existing ad, exactly as a member would see it.

linkedin_ads_get_creative

Get one ad (creative) by URN: its campaign, content reference, intended and computed status, review status and any `servingHoldReasons` — which is where you find out that an ad was rejected in review rather than simply not delivering.

linkedin_ads_update_creative

Change an ad — most often to turn it on or off with {"intendedStatus":"ACTIVE"} or {"intendedStatus":"PAUSED"}.

linkedin_ads_update_dynamic_creative

Change a Text, Spotlight, Follower, Jobs or VAST-tag video ad — copy, landing page, logo, or `intendedStatus` to pause and resume it.

linkedin_ads_add_dmp_segment_companies

Add or remove companies in an account-list Matched Audience, by company name, website, email domain, stock symbol or LinkedIn organization URN.

linkedin_ads_add_dmp_segment_users

Add or remove people in a contact-list Matched Audience by streaming hashed identifiers.

linkedin_ads_associate_campaign_conversion

Attach a conversion rule to a campaign so that campaign's conversions are attributed to it.

linkedin_ads_create_conversion

Create a conversion rule on the connected ad account — the definition of a valuable action (sign-up, purchase, demo request) that LinkedIn should attribute to ads.

linkedin_ads_create_dmp_segment

Create a Matched Audience (DMP segment) on the connected ad account — a list-upload audience of contacts or companies, or a container for engagement-retargeting rules.

linkedin_ads_find_ad_segments

List the ad segments available to the connected ad account, with their sizes and statuses.

linkedin_ads_find_conversions

List the conversion rules defined on the connected ad account.

linkedin_ads_find_dmp_segments

List the Matched Audiences on the connected ad account, with their sizes and statuses.

linkedin_ads_find_insight_tag_domains

List the website domains LinkedIn has seen the connected account's Insight Tag firing on, with their verification state — the quickest check that a pixel is actually installed.

linkedin_ads_get_dmp_segment

Get one Matched Audience: its type, status, destination and — the field that matters — the matched audience COUNT, which tells you whether it is large enough to target yet.

linkedin_ads_send_conversion_events

Send server-side conversion events to LinkedIn (the Conversions API) so offline and CRM conversions can be attributed to ads without a browser pixel.

linkedin_ads_get_ab_test_results

Get the RESULTS of an A/B test: per-treatment performance on the key metric, lift, and whether the difference is statistically significant.

linkedin_ads_search_ab_tests

Search A/B tests on the connected ad account by campaign, campaign group, key metric or state.

linkedin_ads_create_post

Create a post.

linkedin_ads_find_images_by_ad_account

Browse the connected ad account's image media library, so an existing image can be reused instead of re-uploaded.

linkedin_ads_find_posts_by_ad_account

List the Direct Sponsored Content (dark posts) created under the connected ad account — the posts that exist only as ads.

linkedin_ads_get_image

Get an image asset: its status (the upload must reach AVAILABLE before a post can use it), download URL and dimensions.

linkedin_ads_get_post

Get one post by URN — its commentary, media, author, visibility and lifecycle state.

linkedin_ads_get_video

Get a video asset: transcoding status (must be AVAILABLE before a post can use it), duration, thumbnail and download URL.

linkedin_ads_initialize_image_upload

Step 1 of adding an image to an ad: register the upload and get back an `uploadUrl` plus the new `urn:li:image:...` id.

linkedin_ads_initialize_video_upload

Step 1 of adding a video to an ad: register the upload and get back the new `urn:li:video:...` id plus one or more PART upload URLs (LinkedIn videos upload in chunks).

linkedin_ads_find_saved_audience_templates

List the saved audience templates on the connected ad account.

linkedin_ads_find_targeting_entities

List the allowed VALUES of one targeting facet — e.g.

linkedin_ads_list_targeting_facets

List every targeting FACET LinkedIn supports — locations, industries, seniorities, job titles, job functions, skills, employers, company sizes, member groups, interests, degrees, fields of study, years of experience, member behaviors, buyer groups and the rest — with each facet's URN and which entity type its values are.

linkedin_ads_resolve_targeting_urns

Turn targeting URNs back into human names — the reverse lookup.

linkedin_ads_typeahead_targeting_entities

Search a targeting facet by free text and get back the matching entity URNs — how you turn "San Francisco", "Software Engineer" or "Salesforce" into the URN targetingCriteria needs.

linkedin_ads_find_lead_form_responses

Retrieve the LEADS themselves — each submitted Lead Gen Form response with the member's answers.

linkedin_ads_find_lead_forms

List the Lead Gen Forms owned by the connected ad account (or by an organization).

linkedin_ads_get_account_intelligence

Company Intelligence for the connected ad account: which COMPANIES engaged with your ads over a lookback window, with engagement counts and firmographics.

linkedin_ads_get_ad_analytics

THE reporting tool: performance metrics for the connected ad account, grouped by ONE pivot and one time granularity.

linkedin_ads_get_ad_budget_pricing

Get LinkedIn's suggested bid and the competitive bid range for a targeting audience BEFORE you create a campaign — the bid floor, the suggested bid and the low/high range for the chosen bid type and objective.

linkedin_ads_get_ad_statistics

Like linkedin_ads_get_ad_analytics but grouped by UP TO THREE pivots at once — e.g.

linkedin_ads_get_ad_supply_forecast

Forecast the impressions, clicks and spend a proposed campaign would achieve for a given audience, budget, bid and flight — LinkedIn's media-planning estimate.

linkedin_ads_get_attributed_revenue_metrics

CRM-attributed revenue for the connected ad account: revenue won, open and closed-won opportunities, win rate, average deal size, days to close and return on ad spend.

linkedin_ads_get_audience_count

Get the estimated size of a targeting audience.

linkedin_ads_create_campaign

Create a campaign inside a campaign group.

linkedin_ads_create_campaign_group

Create a campaign group in the connected ad account.

linkedin_ads_get_ad_account

Get the LinkedIn ad account this connection is locked to: its name, type, status, CURRENCY, notified-on-* settings, the organization it bills to and its serving statuses.

linkedin_ads_get_campaign

Get one campaign by id — budget, bid, schedule, status, objective, full targetingCriteria and `servingStatuses`.

linkedin_ads_get_campaign_group

Get one campaign group by id: name, status, run schedule, total budget, objective and serving statuses.

linkedin_ads_search_campaign_groups

Search campaign groups in the connected ad account by id, name, status or test flag.

linkedin_ads_search_campaigns

Search campaigns in the connected ad account by id, campaign group, name, type, status or test flag.

linkedin_ads_update_campaign

Change a campaign: pause or resume it ({"status":"PAUSED"} / {"status":"ACTIVE"}), change budget or bid, extend the schedule, or replace the targeting.

linkedin_ads_update_campaign_group

Change a campaign group: rename it, move it between DRAFT/ACTIVE/PAUSED/ARCHIVED, extend its run schedule or adjust its total budget.

linkedin_ads_find_ad_account_users

List the people who have access to the connected ad account and the role each one holds.

linkedin_ads_find_my_ad_accounts

List EVERY ad account the signed-in LinkedIn member can reach, with their role on each.

linkedin_ads_batch_get_organizations

Fetch several LinkedIn Pages by id in one call — the efficient way to name the organizations behind a set of campaigns.

linkedin_ads_batch_get_social_actions

Get like and comment summaries for several posts in one call.

linkedin_ads_batch_get_social_metadata

Get social settings for several posts in one call.

linkedin_ads_create_event

Create a LinkedIn Event on behalf of an organization — the object an Event Ad promotes.

linkedin_ads_create_event_subscription

Subscribe the developer application to push notifications about an organization's social actions, instead of polling.

linkedin_ads_create_like

Like a post or comment as the signed-in member or as the organization.

linkedin_ads_create_reaction

React to a post or comment as the signed-in member or the organization.

linkedin_ads_delete_event_subscription

Cancel a social-action event subscription.

linkedin_ads_delete_like

Remove a like from a post or comment.

linkedin_ads_delete_reaction

Remove an actor's reaction from a post or comment.

linkedin_ads_find_child_organizations

List the showcase pages and child organizations under a parent LinkedIn Page.

linkedin_ads_find_event_subscriptions

List the signed-in member's event subscriptions of a given type — the audit view of which webhooks are live.

linkedin_ads_find_events_by_organizer

List the LinkedIn Events organized by a company — the way to find the event URN an Event Ad should point at.

linkedin_ads_find_leadgen_events_by_organizer

List a company's LinkedIn Events that have registration lead-gen forms enabled — the events whose registrations you can pull as leads.

linkedin_ads_find_organization_access_by_organization

List everyone with a role on one LinkedIn Page — who can administer it and who may post Direct Sponsored Content.

linkedin_ads_find_organization_authorizations

Batch-check several authorization actions for the signed-in member across organizations in one call.

linkedin_ads_find_organization_notifications

Poll the brand-monitoring feed for a LinkedIn Page: new comments, mentions and shares involving the organization — the way to catch conversation on sponsored posts without watching each one.

linkedin_ads_find_reactions

List the reactions on a post or comment, with their types — a finer view than the raw like count.

linkedin_ads_get_brand_page_statistics

Page view analytics for a showcase (brand) page, the same shape as the organization page statistics.

linkedin_ads_get_comment

Get one comment on a post.

linkedin_ads_get_event

Get a LinkedIn Event: its name, times, mode, organizer, registration settings and attendee counts.

linkedin_ads_get_event_subscription

Get one social-action event subscription and its status.

linkedin_ads_get_member_follower_count

Get the signed-in member's own follower count.

linkedin_ads_get_member_post_analytics

Creator analytics for one of the signed-in member's own posts — impressions, reactions, comments and reshares over time.

linkedin_ads_get_member_video_analytics

Creator video analytics for one of the signed-in member's own video posts — plays, watch time and completion.

linkedin_ads_get_organization_authorization

Check whether a member is authorized to take a specific action on a LinkedIn Page (e.g.

linkedin_ads_get_organization_follower_statistics

Follower analytics for a LinkedIn Page — follower gains over time, and the lifetime follower breakdown by seniority, industry, function, company size, country and association.

linkedin_ads_get_organization_network_size

Get an organization's follower count.

linkedin_ads_get_organization_page_statistics

Page view analytics for a LinkedIn Page: views and unique visitors by page section (overview, careers, jobs, life) and by visitor demographic.

linkedin_ads_get_reaction

Get one actor's reaction on a post or comment, including the reaction type (LIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION, ENTERTAINMENT).

linkedin_ads_get_social_actions

Get the like and comment SUMMARY for a post or comment — total counts and whether the member has reacted.

linkedin_ads_get_social_metadata

Get a post's social SETTINGS — whether commenting and resharing are enabled, and the comment moderation state.

linkedin_ads_list_likes

List the likes on a post or comment.

linkedin_ads_lookup_organizations

Batch-resolve organization ids to Page details through the Organization Lookup API, which accepts organization, organizationBrand and school ids together.

linkedin_ads_set_organization_access

Grant or change a member's role on a LinkedIn Page — for example granting DIRECT_SPONSORED_CONTENT_POSTER so they can create dark posts for ads.

linkedin_ads_update_event

Change a LinkedIn Event — its name, description, times or registration settings.

linkedin_ads_update_social_metadata

Change a post's social settings — most usefully to disable commenting on a sponsored post that is attracting abuse.

linkedin_ads_batch_delete_creatives

Delete several ads in one call.

linkedin_ads_batch_delete_dynamic_creatives

Delete several account-less creatives in one call.

linkedin_ads_batch_delete_sponsored_message_contents

Delete several message nodes from a Sponsored Conversation.

linkedin_ads_batch_get_conversation_ads

Fetch several Sponsored Conversations by URN in one call.

linkedin_ads_batch_get_creatives

Fetch several ads by URN in one call.

linkedin_ads_batch_get_dynamic_creatives

Fetch several account-less creatives by URN in one call.

linkedin_ads_batch_get_inmail_contents

Fetch several Message Ad bodies by URN in one call.

linkedin_ads_batch_update_creatives

Change several ads in one call — e.g.

linkedin_ads_batch_update_dynamic_creatives

Change several account-less creatives in one call.

linkedin_ads_batch_update_sponsored_message_contents

Change several message nodes of a Sponsored Conversation in one call.

linkedin_ads_create_conversation_ad

Create a Sponsored Conversation — the branching message tree behind a Conversation Ad.

linkedin_ads_create_dynamic_creative_inline

Create an account-less creative together with its inline content in one call — LinkedIn's documented path for Article Ads and other formats whose content is created alongside the ad.

linkedin_ads_create_inmail_content

Create the message body for a Message Ad (Sponsored InMail): sender, subject, body, call-to-action and optional lead-gen form.

linkedin_ads_create_live_ad_preview

Render a preview of a creative that has NOT been saved yet — the way to show a draft ad to a human before committing it.

linkedin_ads_create_live_ad_preview_inline

Render a preview of an unsaved creative AND its unsaved inline post together — the preview counterpart of linkedin_ads_create_creative_inline.

linkedin_ads_create_sponsored_message_content

Add one message node to a Sponsored Conversation: its body copy and the reply buttons that branch to other nodes.

linkedin_ads_delete_creative

Delete an ad.

linkedin_ads_delete_dynamic_creative

Delete a Text, Spotlight, Follower, Jobs or VAST-tag video ad.

linkedin_ads_find_dynamic_creatives

Find creatives on the account-less /creatives resource by campaign or intended status — the listing counterpart for Text, Spotlight, Follower, Jobs and VAST-tag video ads.

linkedin_ads_get_conversation_ad

Get one Sponsored Conversation by URN, including the structure of its message tree.

linkedin_ads_get_dynamic_creative

Get a creative from the account-less /creatives resource by URN (Text, Spotlight, Follower, Jobs and VAST-tag video ads).

linkedin_ads_get_inmail_content

Get one Message Ad body by URN.

linkedin_ads_get_sponsored_message_content

Get one message node of a Sponsored Conversation.

linkedin_ads_list_sponsored_message_contents

List every message node in a Sponsored Conversation — the way to read the whole tree.

linkedin_ads_send_test_inmail

Send a test copy of a Message Ad to a named LinkedIn member so a human can check it in their real inbox before the campaign runs.

linkedin_ads_update_conversation_ad

Change a Sponsored Conversation's name, sender or first message.

linkedin_ads_update_inmail_content

Change a Message Ad body — subject, body copy, call to action or sender.

linkedin_ads_update_sponsored_message_content

Change one message node of a Sponsored Conversation — its copy or its reply buttons.

linkedin_ads_batch_associate_campaign_conversions

Attach conversion rules to campaigns in bulk — the efficient way to wire a new conversion rule to many campaigns.

linkedin_ads_batch_delete_campaign_conversions

Detach several conversion rules from campaigns in one call.

linkedin_ads_batch_delete_dmp_engagement_rules

Remove several engagement-retargeting rules from a Matched Audience in one call.

linkedin_ads_batch_delete_dmp_segments

Delete several Matched Audiences in one call.

linkedin_ads_batch_get_campaign_conversions

Check several campaign-to-conversion associations in one call.

linkedin_ads_batch_get_conversions

Fetch several conversion rules by id in one call.

linkedin_ads_batch_get_dmp_segments

Fetch several Matched Audiences by id in one call.

linkedin_ads_batch_get_insight_tag_domains

Fetch several Insight Tag domain records in one call.

linkedin_ads_batch_update_conversions

Change several conversion rules in one call — e.g.

linkedin_ads_batch_update_insight_tag_domains

Update several Insight Tag domain records in one call.

linkedin_ads_create_ad_page_set

Create a website-retargeting page set: a named group of URL rules that defines which site visitors go into a retargeting audience.

linkedin_ads_create_dmp_engagement_rule

Add an engagement-retargeting rule to a Matched Audience — 'people who watched 50% of this video ad', 'people who opened this lead form', 'people who visited this company page'.

linkedin_ads_create_dmp_segment_destination

Add a destination to a Matched Audience, i.e.

linkedin_ads_create_dmp_segment_upload_url

Get a signed URL for uploading a bulk audience list FILE.

linkedin_ads_create_insight_tag

Create a LinkedIn Insight Tag for the connected ad account — the browser pixel behind website conversion tracking, retargeting and website demographics.

linkedin_ads_create_predictive_audience

Create a Predictive Audience from a seed Matched Audience: LinkedIn models people who resemble your seed and are likely to hit a business objective.

linkedin_ads_create_third_party_tracking_tag

Attach a third-party impression or click tracking tag (DoubleClick, Innovid, and similar verification vendors) to a creative.

linkedin_ads_delete_ad_segment_source

Detach a page set from an ad segment.

linkedin_ads_delete_campaign_conversion

Detach a conversion rule from a campaign.

linkedin_ads_delete_campaign_tracking_parameters

Remove all dynamic UTM tracking parameters from a campaign.

linkedin_ads_delete_dmp_engagement_rule

Remove an engagement-retargeting rule from a Matched Audience.

linkedin_ads_delete_dmp_segment

Delete a Matched Audience.

linkedin_ads_delete_predictive_audience

Delete a Predictive Audience.

linkedin_ads_delete_third_party_tracking_tag

Remove a third-party tracking tag from its creative.

linkedin_ads_find_campaign_conversions

List which conversion rules are attached to the given campaigns — the way to audit whether a campaign is actually tracking anything.

linkedin_ads_find_insight_tag_permissions

List which other ad accounts have been granted access to the connected account's Insight Tag data.

linkedin_ads_find_insight_tags

List the Insight Tags on the connected ad account.

linkedin_ads_find_third_party_tracking_tags

List the third-party tracking tags attached to a creative.

linkedin_ads_get_ad_segment

Get one ad segment — the targetable form of a Matched Audience, which is what a campaign's targetingCriteria actually references.

linkedin_ads_get_campaign_conversion

Check whether one conversion rule is attached to one campaign.

linkedin_ads_get_campaign_tracking_parameters

Read the dynamic UTM tracking parameters currently set on a campaign.

linkedin_ads_get_conversion

Get one conversion rule: its type, attribution windows, whether it is enabled, and which campaigns it is attached to.

linkedin_ads_get_dmp_engagement_rule

Get one engagement-retargeting rule on a Matched Audience.

linkedin_ads_get_dmp_engagement_source_type

Get one engagement source type and its metadata.

linkedin_ads_get_dmp_engagement_trigger

Get one engagement trigger and its metadata.

linkedin_ads_get_dmp_segment_destination

Get one destination of a Matched Audience and its sync status.

linkedin_ads_get_insight_tag

Get one Insight Tag: its name, id and the domains it has been seen firing on.

linkedin_ads_get_insight_tag_domain

Get the Insight Tag record for one domain on the connected account.

linkedin_ads_get_predictive_audience

Get one Predictive Audience and its build status.

linkedin_ads_get_third_party_tracking_tag

Get one third-party tracking tag by id.

linkedin_ads_grant_insight_tag_access

Share the connected account's Insight Tag with another ad account, so that account can build retargeting audiences and track conversions from the same pixel.

linkedin_ads_list_dmp_engagement_rules

List the engagement-retargeting rules on a Matched Audience.

linkedin_ads_list_dmp_engagement_source_types

List the engagement SOURCES you can retarget from — video ads, lead gen forms, company page, events, single image ads, message ads and so on.

linkedin_ads_list_dmp_engagement_triggers

List the TRIGGERS valid for one engagement source — e.g.

linkedin_ads_list_dmp_segment_destinations

List every destination configured on a Matched Audience.

linkedin_ads_list_predictive_audiences

List the Predictive Audiences built from a seed Matched Audience.

linkedin_ads_revoke_insight_tag_access

Revoke another ad account's access to the connected account's Insight Tag.

linkedin_ads_set_ad_segment_source

Attach a website page set (or other source) to an ad segment, so visitors matching those rules build the retargeting audience.

linkedin_ads_set_campaign_tracking_parameters

Set dynamic UTM tracking parameters on a campaign, so every click from it carries your analytics tags without editing each creative's landing page.

linkedin_ads_update_ad_segment

Change an ad segment's name or status.

linkedin_ads_update_conversion

Change a conversion rule — rename it, enable or disable it, change the attribution windows or its value.

linkedin_ads_update_dmp_segment

Rename a Matched Audience or change its description or access policy.

linkedin_ads_update_insight_tag

Rename an Insight Tag or change the domains associated with it.

linkedin_ads_update_insight_tag_domain

Update the Insight Tag settings for one domain on the connected account.

linkedin_ads_update_predictive_audience

Change a Predictive Audience's name or target size.

linkedin_ads_batch_delete_brand_lift_survey_questions

Remove survey questions from a Brand Lift test.

linkedin_ads_batch_get_ab_tests

Fetch several A/B tests by id in one call.

linkedin_ads_create_ab_test

Create an A/B test across campaigns: LinkedIn splits the audience between the treatment campaigns and measures a key metric, so results are causal rather than a before/after comparison.

linkedin_ads_create_brand_lift_survey_questions

Add the survey questions to a Brand Lift test — one question per key metric, with its answer options.

linkedin_ads_create_brand_lift_test

Create a Brand Lift test: LinkedIn surveys an exposed group and a control group to measure the campaign's effect on awareness, consideration or favourability — the measurement that click metrics cannot give.

linkedin_ads_create_media_plan

Create a saved media plan with a reach or impressions forecast, so a plan can be reviewed and reused before campaigns exist.

linkedin_ads_delete_ab_test

Delete an A/B test.

linkedin_ads_delete_brand_lift_test

Delete a Brand Lift test and its survey configuration.

linkedin_ads_find_brand_lift_tests

List the Brand Lift tests on the connected ad account, optionally filtered by scope or execution state.

linkedin_ads_forecast_media_plan_reach

Forecast reach and frequency for a proposed media plan across several audiences and budgets at once — the planning view that precedes building campaigns.

linkedin_ads_get_ab_test

Get one A/B test: its treatments, key metric, schedule and execution state.

linkedin_ads_get_brand_lift_benchmarks

Get industry benchmark values for a Brand Lift test's metrics, so a measured lift can be judged against comparable campaigns rather than in isolation.

linkedin_ads_get_brand_lift_budget_requirement

Find out the minimum budget a Brand Lift test needs to reach significance for the chosen key metrics.

linkedin_ads_get_brand_lift_results

Get Brand Lift RESULTS: the measured lift per key metric between the exposed and control groups, with confidence.

linkedin_ads_get_brand_lift_test

Get one Brand Lift test: its scope, key metrics, schedule and execution state.

linkedin_ads_get_media_plan

Get one saved media plan with its forecast.

linkedin_ads_list_brand_lift_survey_questions

List the survey questions configured on a Brand Lift test.

linkedin_ads_list_media_plans

List the saved media plans on the connected ad account.

linkedin_ads_search_ab_test_results

Get results for several A/B tests at once.

linkedin_ads_update_ab_test

Change an A/B test — rename it, adjust the schedule, or move `userIntendedState` between DRAFT, ACTIVE and ARCHIVED to start or stop it.

linkedin_ads_update_brand_lift_test

Change or ACTIVATE a Brand Lift test — set `executionState` to start it once its survey questions are in place.

linkedin_ads_validate_ab_test

Dry-run an A/B test definition and get back the problems (overlapping audiences, insufficient budget, incompatible objectives) WITHOUT creating anything.

linkedin_ads_validate_brand_lift_test

Dry-run a Brand Lift test definition and get back what is wrong with it, without creating anything.

linkedin_ads_batch_get_documents

Fetch several document assets by URN in one call.

linkedin_ads_batch_get_images

Fetch several image assets by URN in one call.

linkedin_ads_batch_get_posts

Fetch several posts by URN in one call — e.g.

linkedin_ads_batch_get_videos

Fetch several video assets by URN in one call.

linkedin_ads_complete_asset_multipart_upload

Finish a multi-part upload on the legacy Vector Assets API, supplying the part ETags returned by each part PUT.

linkedin_ads_delete_post

Delete a post.

linkedin_ads_finalize_video_upload

Step 3 of a video upload: tell LinkedIn every part has been PUT, supplying the ETags the part uploads returned.

linkedin_ads_find_posts_by_author

List the posts published by an organization or member, newest first.

linkedin_ads_find_videos_by_ad_account

Browse the connected ad account's video media library to reuse an existing video.

linkedin_ads_get_asset

Get a legacy Vector asset by id, including its media artifacts and processing status.

linkedin_ads_get_document

Get a document asset: its processing status and page count.

linkedin_ads_initialize_document_upload

Step 1 of a Document Ad: register the PDF/PPT upload and get an uploadUrl plus the new `urn:li:document:...` id.

linkedin_ads_register_asset_upload

Register an upload on the legacy Vector Assets API and get an upload URL — still the documented path for a few asset types such as LinkedIn Event background images.

linkedin_ads_update_image

Update an image asset's media-library metadata, e.g.

linkedin_ads_update_post

Edit a published post — its commentary, call-to-action label, landing page or ad context.

linkedin_ads_update_video

Update a video asset's media-library metadata within the ad account library.

linkedin_ads_batch_delete_saved_audience_templates

Delete several saved audience templates in one call.

linkedin_ads_create_global_publisher_list

Request LinkedIn's global publisher list — the platform-wide inventory of sites and apps in the Audience Network — so it can be reviewed before choosing exclusions.

linkedin_ads_create_publisher_restriction

Register an uploaded allow-list or block-list file of websites and app-store URLs as a publisher restriction, for brand safety on the LinkedIn Audience Network.

linkedin_ads_create_publisher_restrictions_download_url

Get a signed URL to download an existing publisher restriction file, to see which domains it contains.

linkedin_ads_create_publisher_restrictions_upload_url

Get a signed URL to upload a publisher allow/block list file to.

linkedin_ads_create_saved_audience_template

Save a targeting definition as a reusable template on the connected ad account, so the same audience can be applied to future campaigns without rebuilding it.

linkedin_ads_delete_saved_audience_template

Delete a saved audience template.

linkedin_ads_find_publisher_restrictions

List the publisher restriction files registered against the connected ad account.

linkedin_ads_find_similar_targeting_entities

Given entities you already target, get LinkedIn's suggestions for similar ones within the same facet — e.g.

linkedin_ads_get_publisher_restriction

Get one publisher restriction file record: its name, type (allow or block) and processing status.

linkedin_ads_get_saved_audience_template

Get one saved audience template by id, including its full targetingCriteria — copy that straight into a campaign.

linkedin_ads_list_country_groups

List LinkedIn's country groupings (the legacy geo vocabulary).

linkedin_ads_typeahead_geo

Search LinkedIn's Bing-backed geography by name and get geo URNs — the location vocabulary shared by ad targeting and organic post targeting.

linkedin_ads_update_saved_audience_template

Change a saved audience template's name, description or targeting.

linkedin_ads_batch_get_lead_form_responses

Fetch several submitted leads by response id in one call.

linkedin_ads_batch_get_lead_forms

Fetch several Lead Gen Forms by id in one call.

linkedin_ads_create_lead_form

Create a Lead Gen Form — the in-platform form a member submits without leaving LinkedIn, pre-filled from their profile.

linkedin_ads_create_lead_notification_subscription

Subscribe a webhook URL to new-lead notifications, so leads are pushed to you as they arrive instead of being polled.

linkedin_ads_create_lead_notification_url

Register an HTTPS endpoint that LinkedIn may push lead notifications to.

linkedin_ads_delete_lead_notification_subscription

Cancel a lead-notification subscription.

linkedin_ads_find_lead_notification_subscriptions

List the lead-notification subscriptions on the connected ad account — the way to audit where your leads are being sent.

linkedin_ads_get_lead_form

Get one Lead Gen Form: its headline, questions, privacy policy, thank-you message and state.

linkedin_ads_get_lead_form_response

Get one submitted lead by its response id, with the member's answers.

linkedin_ads_get_lead_notification_subscription

Get one lead-notification subscription: which forms it covers and where it delivers.

linkedin_ads_update_lead_form

Change a Lead Gen Form — its name, headline, description, thank-you message or state (e.g.

linkedin_ads_get_audience_insights

Profile an audience: the industries, job functions, seniorities, company sizes, locations and interests over-represented in a matched audience or targeting definition, versus a benchmark.

linkedin_ads_get_video_analytics

Per-video engagement for one post or video entity: time watched, views, viewers, and completion curve — the detail the campaign-level metrics do not carry.

linkedin_ads_batch_create_ad_accounts

Create several LinkedIn ad accounts in one call.

linkedin_ads_batch_create_campaigns

Create several campaigns in the connected ad account in one call.

linkedin_ads_batch_delete_campaign_groups

Delete several DRAFT campaign groups in one call.

linkedin_ads_batch_get_campaign_groups

Fetch several campaign groups by id in one call.

linkedin_ads_batch_get_campaigns

Fetch several campaigns by id in one call.

linkedin_ads_batch_update_campaign_groups

Change several campaign groups in one call — e.g.

linkedin_ads_batch_update_campaigns

Change several campaigns in one call — the efficient way to pause or re-budget a set.

linkedin_ads_create_ad_account

Create a new LinkedIn ad account.

linkedin_ads_delete_ad_account

DELETE the connected ad account.

linkedin_ads_delete_campaign

Delete a DRAFT campaign.

linkedin_ads_delete_campaign_group

Delete a DRAFT campaign group.

linkedin_ads_get_ad_account_trust_preferences

Read the connected account's brand-safety trust preferences: which publisher-restriction file (allow list or block list) is applied to LinkedIn Audience Network delivery, and whether the LinkedIn global publisher block list is in force.

linkedin_ads_search_ad_accounts

Search the ad accounts this login can reach, by id, name, status, type or test flag.

linkedin_ads_update_ad_account

Update the connected ad account's editable settings — `name`, `status` (ACTIVE, DRAFT, CANCELED), `notifiedOnCreativeApproval`, `notifiedOnEndOfCampaign`, `notifiedOnCampaignOptimization`, `notifiedOnCreativeRejection`.

linkedin_ads_update_ad_account_trust_preferences

Replace the connected account's brand-safety trust preferences.

linkedin_ads_check_create_share_authorization

Check whether the signed-in member may create sponsored (dark) posts on behalf of an organization through this ad account — the permission a Video Ad or any Direct Sponsored Content build depends on.

linkedin_ads_create_ad_account_user

Grant a LinkedIn member access to the connected ad account with a role.

linkedin_ads_delete_ad_account_user

Revoke a member's access to the connected ad account.

linkedin_ads_get_ad_account_user

Get one person's access record on the connected ad account: their role and whether the grant is active.

linkedin_ads_update_ad_account_user

Change an existing user's role on the connected ad account.

Connect LinkedIn Ads to your AI

Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the LinkedIn Ads side.

Create an app at linkedin.com/developers, request the Advertising API, add the callback URL to its Authorized redirect URLs, paste the Client ID and Client Secret, then authorize in your browser and pick ad accounts.

Client ID86xxxxxxxxxxxx
Client Secret••••••••••••3f7a
Permissions (optional)leave blank to request everything this connector supports
Authorize PopMCP on LinkedIn AdsAuthorize

Then just ask for the work

  • Show me the A/B test results for the demo-request campaigns

    • search_ab_tests
    • get_ab_test_results
  • Pause every ad in the Q3 retargeting campaign before Friday

    • find_creatives
    • get_creative
    • update_creative
  • Launch a sponsored post ad for the new pricing page using our hero image

    • find_images_by_ad_account
    • get_image
    • create_creative_inline
  • Check whether our contact list audience is big enough to target and the Insight Tag is firing

    • find_dmp_segments
    • get_dmp_segment
    • find_insight_tag_domains

Use LinkedIn Ads from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Settings → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

LinkedIn Ads MCP server questions

What teams ask before putting LinkedIn Ads behind an AI client.

Do I need my own LinkedIn developer app to connect?

Yes. Create an app at linkedin.com/developers, request the Advertising API product, add the callback URL PopMCP shows you to that app's Authorized redirect URLs, then paste the Client ID and Client Secret into the connect form. The authorization itself happens in your browser, so your LinkedIn password is never shared with us. There is also an optional Permissions field, which you can leave blank. After you authorize, you choose which ad accounts to connect and which workspace each one belongs in.

How much of the LinkedIn Marketing API does this cover?

268 operations across 13 API modules — 149 reads and 119 writes. The 62 most-used tools load into your AI client by default and the rest stay searchable, so a long tool list doesn't crowd out your context. The heaviest modules are Organizations, Creatives, Audiences and Conversions, with Experiments, Content, Targeting and Leads behind them.

Can it tell me why an ad stopped serving or was rejected?

That is one of the better reasons to wire this up. find_creatives narrows to a campaign or intended status, and get_creative returns the computed status, the review status and any servingHoldReasons — which is where you learn an ad was rejected in review rather than simply under-delivering. get_ad_preview renders the ad in an HTML iframe exactly as a member would see it. A Creative rejected trigger also fires when an ad is knocked back in review and stops serving.

How do images and video get into a new ad?

Uploads are a two-step handshake. initialize_image_upload registers the upload and hands back an uploadUrl plus the new urn:li:image id; initialize_video_upload does the same for video and returns one or more PART upload URLs, because LinkedIn videos upload in chunks. Poll get_image or get_video until the asset reaches AVAILABLE — a post cannot reference it before then. Then create_creative_inline builds the post and the ad in one call, which is what keeps a failed creative from leaving an orphaned dark post behind.

Can it manage Matched Audiences and offline conversions?

create_dmp_segment sets up a Matched Audience, then add_dmp_segment_users streams hashed contact identifiers or add_dmp_segment_companies adds firms by name, website, email domain, stock symbol or organization URN. get_dmp_segment returns the matched count, which is how you find out whether a list is large enough to target yet. On the conversion side, create_conversion defines the rule, associate_campaign_conversion attaches it to a campaign, and send_conversion_events pushes offline and CRM conversions server-side without a browser pixel. find_insight_tag_domains is the fastest check that your Insight Tag is actually firing on a domain.

Does it pick up Lead Gen form submissions?

Yes. The Leads module retrieves Lead Gen form leads, and two webhook triggers deliver them as they land: Ad lead received for submissions on sponsored campaigns, and Page lead received for lead forms on organic company page content. A Lead form published trigger fires when a new lead gen form is created for the ad account. That means an agent can act on a lead when it arrives instead of on a polling schedule.

Do I have to run or host the LinkedIn Ads MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server — Claude Desktop, Claude Web, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

Why do only 62 of the 268 tools load by default?

Loading 268 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 62-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. You can switch a connection to the full catalog at any time.

What is the difference between a tool and a trigger?

A tool is something your AI calls — there are 268 here. A trigger is something PopMCP watches for you: 19 LinkedIn Ads events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into LinkedIn Ads.

Connect LinkedIn Ads to your AI in minutes

Launch a hosted MCP endpoint for LinkedIn Ads, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP