MCP.so
登录

LinkedIn Ads MCP Server已验证已精选

@AdPlug

基本信息

传输方式

Streamable HTTP

认证方式

OAuth

分类

媒体与设计

作者

AdPlug

提交者

Daniel Popa

关于 LinkedIn Ads MCP Server

AdPlug 出品的 LinkedIn Ads MCP 服务器,把 LinkedIn Ads 连接到 Claude、ChatGPT 和其他兼容 MCP 的 AI 助手。分析效果、受众、创意和转化。用自然语言生成报告并管理广告系列、预算和广告。安全的 OAuth,默认只读访问,修改前可预览。

#linkedin ads#ppc#b2b advertising#linkedin ads mcp#connnect linkedin ads to cluade

连接信息

https://api.adplug.app/mcp/linkedin-ads

接入方式

claude mcp add linkedin-ads-mcp --transport http https://api.adplug.app/mcp/linkedin-ads

LinkedIn Ads MCP Server 工具

10

Check whether LinkedIn Ads is connected to this AdPlug account. IMPORTANT: Call this tool FIRST before using any other tools on this server. If LinkedIn Ads is not connected, surface the action_required steps so the user can connect it before you attempt platform-specific operations. Also reports write_access (read_write or read_only). read_only ('View only' in the dashboard) is a team setting: write tools are hidden and any write call is rejected, so do not attempt changes.

Lists all LinkedIn Ad Accounts accessible to the authenticated user (LinkedIn Ads tool). Returns each account with: id, name, currency, status, and type. Use this first to discover available LinkedIn Ad accounts.

Unified analytics tool — returns performance data for any LinkedIn Ads report type (LinkedIn Ads tool). One tool for all performance reporting. The report_type parameter selects what data to return. report_type options: - "campaign": Per-campaign metrics (spend, impressions, clicks, CTR, CPC, conversions). Returns campaign names, IDs, status. - "creative": Per-creative metrics with engagement breakdown (likes, comments, shares) and video metrics. Returns creative type (DOCUMENT, SINGLE_IMAGE, VIDEO, CAROUSEL). - "daily": Day-by-day performance trends. - "conversion": Per-conversion-action breakdown (total conversions, post-click, post-view, cost per conversion). - "lead_gen": Lead generation metrics per campaign (leads, form opens, qualified leads, cost per lead). - "demographics": Audience demographics breakdown. Requires demographic_type: MEMBER_JOB_FUNCTION, MEMBER_SENIORITY, MEMBER_INDUSTRY, MEMBER_COMPANY_SIZE, MEMBER_JOB_TITLE, MEMBER_COMPANY, MEMBER_COUNTRY_V2, MEMBER_REGION_V2. - "reach": Audience reach and frequency (unique reach, impressions, frequency, penetration). Max 92-day range. Args: account_id: The LinkedIn Ad Account ID. start_date: Start date in YYYY-MM-DD format. end_date: End date in YYYY-MM-DD format. report_type: One of: campaign, creative, daily, conversion, lead_gen, demographics, reach. campaign_ids: Optional list of campaign IDs to filter. campaign_id: Optional single campaign ID to filter (convenience alias for campaign_ids). demographic_type: Required when report_type is "demographics". E.g. MEMBER_JOB_FUNCTION, MEMBER_SENIORITY.

Lists LinkedIn Ads entities of any type (LinkedIn Ads tool). IMPORTANT — LinkedIn UI naming vs API naming: - LinkedIn UI "Campaigns" = API "campaign_groups" (use entity_type="campaign_groups") - LinkedIn UI "Ad sets" = API "campaigns" (use entity_type="campaigns") - LinkedIn UI "Ads" = API "creatives" (use entity_type="creatives") When a user asks about "campaigns", they usually mean campaign_groups. entity_type options: - "campaign_groups": Lists campaigns (LinkedIn UI name). Supports status filter: ACTIVE, PAUSED, ARCHIVED, DRAFT. Supports include_performance with start_date/end_date. - "campaigns": Lists ad sets (LinkedIn UI name). Supports status filter and campaign_group_id to show ad sets under a specific campaign. - "creatives": Lists ads (LinkedIn UI name) with format detection (DOCUMENT, VIDEO, SINGLE_IMAGE, CAROUSEL, etc.). Supports campaign_ids filter and include_content. IMPORTANT: When status="ACTIVE", auto-filters to only include ads from ACTIVE ad sets — so you get truly serving ads. - "conversions": Lists conversion tracking rules. Status filter = enabled_only (pass status="enabled"). - "campaign_conversions": Lists conversion-rule ↔ campaign associations. Requires campaign_ids. Returns one row per (campaign_id, conversion_id) pairing. - "lead_forms": Lists lead generation forms. Supports status filter: DRAFT, PUBLISHED, ARCHIVED. - "saved_audiences": Lists matched/DMP audiences. Paginates fully across the account (no 10-row cap). Returns the LINKEDIN destination's status as `status` (typical values: READY, BUILDING, PROCESSING, ARCHIVED, FAILED) plus `destinationSegmentId` (the `urn:li:adSegment:...` URN to use in targeting criteria). Supports `name_contains` for client-side substring search (matched audiences are NOT typeahead-searchable via the LinkedIn API — list and filter is the supported pattern). - "targeting_audiences": Lists saved targeting audience templates. Supports name_contains. - "targeting_facets": Lists all available targeting facets/dimensions. No account_id needed. Args: entity_type: What to list. One of: campaign_groups, campaigns, creatives, conversions, lead_forms, saved_audiences, targeting_audiences, targeting_facets. account_id: The LinkedIn Ad Account ID (required for most entity types, not needed for targeting_facets). status: Optional status filter (meaning varies by entity type). For creatives with status="ACTIVE", cascades through campaign status. campaign_ids: Optional campaign ID filter (for creatives/ads). campaign_group_id: Optional campaign group ID filter (for campaigns/ad sets — show ad sets under a specific campaign). include_content: Include raw content details for creatives. Default: false. include_performance: Include performance metrics for campaign_groups (requires start_date/end_date). Default: false. start_date: Start date for performance data (YYYY-MM-DD). end_date: End date for performance data (YYYY-MM-DD). limit: Maximum number of results to return. Default: 100. name_contains: Case-insensitive substring filter on entity name (saved_audiences, targeting_audiences).

Gets details for a single LinkedIn Ads entity (LinkedIn Ads tool). entity_type options: - "campaign": Full campaign config (targeting, budget, format, schedule, etc.). - "campaign_group": Campaign group details. - "creative": Creative details with content. Pass raw=true to ALSO get the unflattened creative + underlying post JSON (raw_creative, raw_post) so you can verify the exact Destination URL (contentLandingPage), Headline (content.media.title) and CTA (contentCallToActionLabel) the way Campaign Manager reads them — not just the flattened ad_copy view. - "targeting_audience": Targeting audience template with criteria. - "saved_audience": Matched/DMP audience details (name, type, sourcePlatform, destinations[] with status and audienceSize, and `destinationSegmentId` — the `urn:li:adSegment:...` URN you'd use in targeting criteria). Pass the dmpSegment numeric ID as entity_id. - "lead_form_responses": Lead form submission data. entity_id = form_id (optional, pass "all" for all forms). Args: entity_type: What to get. One of: campaign, campaign_group, creative, targeting_audience, saved_audience, lead_form_responses. entity_id: The entity ID. For lead_form_responses, pass the form_id or "all". account_id: The LinkedIn Ad Account ID (required for campaign, campaign_group, creative, lead_form_responses). limit: Max responses for lead_form_responses. Default: 100. raw: For entity_type='creative', include the raw creative + raw post JSON. Default: false.

Preview a LinkedIn Ads write operation before executing it (LinkedIn Ads tool). Shows what API call will be made, validates parameters, and returns the payload for confirmation. Use linkedin_ads_execute_mutation to actually execute it. Available operations: - Campaign Groups: create_campaign_group, update_campaign_group, delete_campaign_group - Campaigns: create_campaign, update_campaign, delete_campaign - Creatives: create_creative, update_creative, delete_creative - Asset uploads: upload_image, upload_video, upload_document - Inline ads (one-shot create): create_inline_ad (ad_format: SINGLE_IMAGE/SINGLE_VIDEO/DOCUMENT/CAROUSEL/TEXT/SPOTLIGHT/MESSAGE/EVENT/TLA) - Lead Forms: create_lead_form, update_lead_form, delete_lead_form - Targeting: create_targeting_audience, update_targeting_audience, delete_targeting_audience, apply_targeting_audience - Conversions: create_conversion_rule, associate_conversion, dissociate_conversion - Audiences: create_saved_audience, add_audience_members Args: operation: The operation to preview. One of the operations listed above. params: Operation-specific parameters as a dict. Call with operation="help" to see required params for each operation.

Execute a LinkedIn Ads write operation (LinkedIn Ads write tool). Use linkedin_ads_preview_mutation first to validate and preview the operation. Args: operation: The operation to execute (same as preview). params: Operation-specific parameters (same as preview).

Targeting lookup tool — search entities, resolve URNs, or estimate audience size (LinkedIn Ads tool). action options: - "search": Typeahead search for targeting entities — best for open-ended free-text facets (titles, employers, skills, industries, schools, groups, degrees, fieldsOfStudy, interests). Requires: query, facet. Facet name uses LinkedIn's URN form *without* the urn:li:adTargetingFacet: prefix (e.g. facet="titles", not "jobTitles"). Closed-set facets (seniorities, jobFunctions, staffCountRanges, ageRanges, genders, revenue, yearsOfExperienceRanges, interfaceLocales, etc.) are not typeahead-searchable — use entity_type=targeting_facets and consult Microsoft Learn's "Targeting Criteria Facet URNs" reference for valid URN values. Examples: • staffCountRanges → "urn:li:staffCountRange:(MIN,MAX)" compound URNs, e.g. (2,10), (501,1000), (5001,10000), (10001,2147483647 for "10K+"). • seniorities, jobFunctions, etc. → "urn:li:<facet>:<code>" with a fixed enum. Matched audiences (urn:li:adTargetingFacet:audienceMatchingSegments) are also NOT typeahead-searchable — LinkedIn exposes them with finder=[$UNKNOWN]. Use linkedin_ads_list entity_type=saved_audiences with `name_contains` instead. - "resolve_urns": Resolve targeting URNs to {urn, facetUrn, name, ...}. Requires: urns (array of URN strings). Optional: account_id (enables the destinationSegmentUrn → dmpSegment reverse lookup, which is what recovers names for adSegment URNs that were pulled from a campaign's targetingCriteria — those URNs use the destination segment id, NOT the top-level dmpSegment id, so /dmpSegments/{id} alone would 404). For urn:li:adSegment:* URNs the resolver tries (1) /dmpSegments/{id}, (2) when account_id is set, the dmpSegments listing's destinations[].destinationSegmentId, and (3) the bare adTargetingEntities finder. URNs that confirm targetable via (3) but lack a name land in `targetable_unnamed`. Anything truly unresolvable lands in `unresolved`. - "audience_count": Get estimated audience size for targeting criteria. Requires: account_id, targeting_criteria (object with include/exclude facets). Args: action: One of: search, resolve_urns, audience_count. query: Search query (for action=search). E.g. "marketing manager", "Google". facet: Targeting facet name (for action=search), without the urn:li:adTargetingFacet: prefix. E.g. titles, employers, skills, industries, schools. urns: Array of targeting URNs (for action=resolve_urns). account_id: LinkedIn Ad Account ID (for action=audience_count). targeting_criteria: Targeting criteria object (for action=audience_count).

Sends conversion events via the Conversions API / CAPI (LinkedIn Ads write tool). Each event requires: conversionHappenedAt (epoch ms), user.userIds [{idType, idValue}]. Optional: eventId (dedup), conversionValue {amount, currencyCode}. idType options: SHA256_EMAIL, LINKEDIN_FIRST_PARTY_ADS_TRACKING_UUID, ACXIOM_ID, ORACLE_MOAT_ID. Args: conversion_id: Conversion rule ID (numeric). events: Array of conversion events (max 5000).

Search LinkedIn's public Ad Library for ads from any advertiser (LinkedIn Ads tool). Returns ads run by ANY LinkedIn advertiser, not just the user's own accounts. Covers ads served since 2023-06-01, retained 1 year past the last impression. Use this for competitor research, brand monitoring, creative-format benchmarking, geographic-targeting analysis, and detecting whether a company is currently advertising on LinkedIn. For analytics on the USER'S own accounts, use linkedin_ads_performance instead. Ad copy, CTA text, and image/video assets are NOT in the API response — direct the user to the returned ad_url for those. mode options: - "summary": Returns total count + up to 3 sample ad URLs only. Use for "is X advertising?" / "how many ads is X running?" without burning context on full element bodies. - "standard": Returns formatted elements (epoch ms -> ISO 8601 UTC, snake_case keys, structured targeting facets). The default. - "raw": Returns LinkedIn's response body unchanged. Escape hatch when the formatter loses something or the schema evolves. Args: keyword: Full-text search across ad text and metadata. At least one of keyword or advertiser is required. Best signal for "find ads about X" queries. advertiser: Advertiser identifier - accepts a URN (urn:li:organization:1234), a LinkedIn company URL with a numeric ID (https://www.linkedin.com/company/1234), or a bare numeric ID (1234). Slug URLs (https://www.linkedin.com/company/microsoft) are not supported - pass the numeric ID instead. NOTE: LinkedIn's advertiser filter is sparse - many active advertisers return total=0 even when they clearly run ads (visible via keyword search). If advertiser-only returns 0, fall back to a keyword search of the company name. count: Page size, 1-25 (LinkedIn caps page size at 25). Default 10. start: Pagination offset. Default 0. mode: One of "summary", "standard", "raw". Default "standard".

概览

What is LinkedIn Ads MCP by AdPlug?

LinkedIn Ads MCP by AdPlug is a hosted, remote MCP server that connects LinkedIn Campaign Manager to Claude, ChatGPT, Cursor and any other MCP-compatible AI assistant. You sign in with LinkedIn, and your assistant can read live campaign data, research targeting and make changes in plain English. Nothing to install, no API access request, no credentials to manage.

It is built and run by a performance marketer who manages LinkedIn Ads for B2B clients — for the reporting and optimisation work that actually fills the week.

Who it's for

B2B marketers, demand gen teams and agencies running LinkedIn Ads. The people writing weekly performance recaps, watching cost per lead drift, checking which job titles the spend actually reached, and rebuilding audiences when a campaign stops delivering.

If you live in Campaign Manager and export to a spreadsheet to answer simple questions, this replaces that loop.

What can you ask it to do?

Reporting and analysis

  • "How did every campaign perform last month, by cost per lead?"
  • "Which job titles and company sizes did we actually reach?"
  • "Show me creative-level performance for the last 30 days"
  • "Pull the lead gen form responses from this campaign"
  • "Compare this month to last, by campaign group"

Targeting and audience work

  • Look up job titles, companies, skills, industries and seniorities
  • Check audience counts before you build
  • Build and update saved audiences

Campaign management

  • Create and update campaigns, campaign groups and creatives across 9 ad formats
  • Adjust budgets and schedules
  • Manage lead gen forms and read their responses
  • Send conversion events (up to 5,000 per call)

Competitor research

  • Search the LinkedIn Ad Library for live ads, including the destination URL, headline and CTA behind each creative

How do you connect LinkedIn Ads to Claude or ChatGPT?

Add this as a custom connector in Claude, ChatGPT, Cursor, or any MCP client: https://api.adplug.app/mcp/linkedin-ads

Sign in with LinkedIn when prompted. Setup takes about two minutes. Authentication is OAuth — your LinkedIn credentials stay server-side and are never exposed to the AI client.

You do not need your own LinkedIn Marketing API access. AdPlug is a certified LinkedIn Marketing Developer application, so there is no app registration and no access request to wait on.

Is it safe to let an AI touch a live LinkedIn Ads account?

That is the question worth asking, and it is the part this server is designed around.

  • Read-only by default. Write access is off until you turn it on.
  • Preview before execute. Every mutation has a matching preview tool. The assistant shows you the exact change first; nothing reaches Campaign Manager until you approve it.
  • Full audit trail. Every tool call is logged with user, account, action, parameters and timestamp.
  • LinkedIn Marketing Developer certified. GDPR compliant, DPA available.

Tools

10 tools: adplug_get_status, linkedin_ads_list_accounts, linkedin_ads_performance, linkedin_ads_list, linkedin_ads_get, linkedin_ads_targeting_lookup, linkedin_ads_preview_mutation, linkedin_ads_execute_mutation, linkedin_ads_send_conversion_event, linkedin_ad_library_search.

Deliberately few. One reporting tool covers campaign, creative, daily, conversion, lead gen, demographic and reach reports; one list tool covers campaigns, campaign groups, creatives, conversions, lead forms, saved audiences and targeting facets. Less context overhead for the model, same coverage.

A note on LinkedIn's naming: what Campaign Manager calls a Campaign is a campaign group in the API, and what it calls an Ad Set is a campaign. AdPlug handles that translation, so you can ask in the language you actually use.

FAQ

Do I need my own LinkedIn Marketing API access? No. AdPlug is a certified LinkedIn Marketing Developer application. Sign in with LinkedIn and you are connected — no app registration, no access request.

Can it create campaigns, or does it only report? Both. It creates and updates campaigns, campaign groups and creatives across 9 ad formats, with a preview step before anything goes live.

Which AI clients does it work with? Claude (web, desktop and Code), ChatGPT, Cursor, and any client that speaks MCP over streamable HTTP.

Does it work with multiple ad accounts? Yes, unlimited ad accounts on every plan, including the free one.

Can I see what competitors are advertising on LinkedIn? Yes. The Ad Library search returns live LinkedIn ads with the destination URL, headline and CTA behind each creative.

Is there a Google Ads version? Yes — Google Ads MCP by AdPlug, same account, same safety model.

常见问题

1

LinkedIn Ads MCP 远程 MCP 服务器是什么?

LinkedIn Ads MCP 的远程 MCP 服务器是一个托管的 Model Context Protocol 端点,地址是 https://api.adplug.app/mcp/linkedin-ads,AI 助手无需在本地安装或运行任何东西即可连接。

2

怎么连接 LinkedIn Ads MCP 的 MCP 服务器?

把端点 https://api.adplug.app/mcp/linkedin-ads 添加到任意支持 MCP 的客户端,比如 Claude Code、Cursor 或 VS Code。本页的接入代码块可以一步配置好每个客户端。

3

LinkedIn Ads MCP 的 MCP 服务器需要认证吗?

需要。LinkedIn Ads MCP 使用 OAuth——第一次连接时,你的 MCP 客户端会打开浏览器窗口登录并授权,之后会复用这个凭证。

4

LinkedIn Ads MCP 的 MCP 服务器用的是哪种传输方式?

LinkedIn Ads MCP 暴露的是 Streamable HTTP 端点,这是远程 MCP 服务器普遍使用、主流客户端都支持的传输方式。

评论