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

LinkedIn MCP server for your AI

Post as yourself or as your Company Page, reply to comments, see which Page posts earned the most engagement, pull this week's Lead Gen Form leads, and break down Page followers by industry.

PopMCPLinkedIn

Post this launch announcement on our Company Page and mention our partner's Page

Supported LinkedIn tools

Every posting, social, Page analytics, lead, event and advertising tool on the connection, plus the webhooks and checks PopMCP can watch for you.

146 tools in the full catalog: 91 read and 55 write. 38 load by default, and the rest are found with tool search.

linkedin_create_comment

Comment on a post, or reply to a comment.

linkedin_create_reaction

React to (like) a post or comment.

linkedin_delete_comment

Delete a comment from a post.

linkedin_delete_reaction

Remove a reaction (unlike) that one actor left on a post or comment.

linkedin_find_comments

Read the comments on a post (or the replies under a comment).

linkedin_find_reactions

List the reactions on a post or comment, with who reacted and which reaction type.

linkedin_get_social_actions

Live like/comment counts for a post, matching what the LinkedIn feed shows.

linkedin_find_my_organizations

START HERE for anything Company Page related.

linkedin_find_organization_by_vanity_name

Look up an organization by the slug in its public URL (linkedin.com/company/<vanityName>).

linkedin_get_organization

Full detail for one LinkedIn Page: localizedName, vanityName, description, website, logoV2, staffCountRange, industries, locations, primaryOrganizationType.

linkedin_get_organization_follower_count

Total follower count for one Page.

linkedin_create_campaign

Create a campaign.

linkedin_create_campaign_group

Create a campaign group (the container for campaigns).

linkedin_find_campaign_groups

List campaign groups in an ad account.

linkedin_find_campaigns

List campaigns in an ad account.

linkedin_get_campaign

Full detail for one campaign, including its targetingCriteria.

linkedin_update_campaign

Change a campaign — status, budget, schedule or targeting.

linkedin_find_ad_accounts

List the ad accounts the signed-in member can reach — start here for anything advertising.

linkedin_initialize_document_upload

Step 1 of 2 for a document (PDF carousel) post.

linkedin_initialize_image_upload

Step 1 of 2 for an image post.

linkedin_get_page_follower_statistics

Follower analytics for a Page.

linkedin_get_page_share_statistics

Organic engagement for a Page's content: impressions, unique impressions, clicks, likes, comments, shares and engagement rate.

linkedin_get_page_statistics

Page VIEW analytics: views and unique visitors for the Page overall and per tab (careers, jobs, life, people, about), optionally broken down by demographic or over time.

linkedin_create_post

Publish a post to a LinkedIn feed — the main content tool.

linkedin_delete_post

Permanently delete a post.

linkedin_find_lead_form_responses

Retrieve the LEADS captured by your Lead Gen Forms — the tool for syncing LinkedIn leads into a CRM.

linkedin_find_lead_forms

List Lead Gen Forms owned by an ad account or an organization.

linkedin_find_posts_by_author

List every post published by one member or Page, newest first — the tool for 'show me our recent LinkedIn posts'.

linkedin_get_audience_count

Estimate how many LinkedIn members match a targeting spec — check this BEFORE creating a campaign, and before targeting an organic post (which needs an audience above 300).

linkedin_get_post

Fetch one post by URN.

linkedin_search_targeting_entities

Typeahead search within a targeting facet — the way to turn 'United States' or 'software engineer' into the URN a campaign needs.

linkedin_update_post

Edit a published post.

linkedin_create_creative

Create a creative (an ad) inside a campaign.

linkedin_find_creatives

List creatives (the ads themselves) in an ad account, optionally filtered to specific campaigns.

linkedin_update_creative

Change a creative — usually its intendedStatus (DRAFT to ACTIVE, or PAUSED).

linkedin_get_ad_analytics

Ad performance report broken down by ONE pivot (campaign, creative, account, member demographics …).

linkedin_get_ad_statistics

Ad performance report broken down by SEVERAL pivots at once (e.g. account + campaign group + campaign in one response).

linkedin_get_current_member

Who am I? Returns the signed-in member's OpenID Connect profile: `sub` (the person id — build the author URN as urn:li:person:{sub}), name, given_name, family_name, picture, email, locale.

linkedin_batch_get_comments

Fetch several comments on a post by their numeric ids.

linkedin_batch_get_social_metadata

Comment and reaction summaries for several posts in one call.

linkedin_get_comment

Fetch one comment by its numeric id under a post.

linkedin_get_reaction

Check whether one actor has reacted to one entity, and how.

linkedin_get_social_metadata

Comment/reaction summary for a post, plus whether commenting is enabled and the comment moderation setting.

linkedin_search_people_typeahead

Search the members who follow one of your Pages, to @mention them in a post or comment.

linkedin_update_comment

Edit a comment's text.

linkedin_update_social_metadata

Turn the comments section on or off for a post, or restrict who may comment.

linkedin_batch_get_inmail_contents

Fetch several Message Ad (sponsored InMail) creative bodies in one call.

linkedin_create_conversation_ad

Create a conversation ad (a branching Message Ad).

linkedin_create_inmail_content

Create a Message Ad (sponsored InMail) creative body.

linkedin_create_sponsored_message

Add a message node (with its reply buttons) to a conversation ad.

linkedin_delete_sponsored_message

Remove a message node from a conversation ad's reply tree.

linkedin_find_conversation_ads

Fetch conversation ad trees by URN, including their message nodes and reply branches.

linkedin_find_sponsored_messages

List the message nodes inside a conversation ad.

linkedin_get_conversation_ad

One conversation ad, including its message tree.

linkedin_get_inmail_content

One Message Ad (sponsored InMail) creative body.

linkedin_get_sponsored_message

One message node inside a conversation ad, with its body copy and reply buttons.

linkedin_send_test_inmail

Send yourself a test copy of a Message Ad before launching it.

linkedin_update_conversation_ad

Change a conversation ad.

linkedin_update_inmail_content

Change a Message Ad creative.

linkedin_update_sponsored_message

Change one message node in a conversation ad.

linkedin_add_dmp_segment_companies

Add companies to a COMPANY matched audience, matched by name, website or LinkedIn organization URN.

linkedin_add_dmp_segment_users

Add people to a USER matched audience.

linkedin_batch_get_organization_brands

Fetch several Showcase Pages in one call by their numeric organizationBrand ids.

linkedin_batch_get_organizations

Fetch several organizations in one call.

linkedin_create_dmp_segment

Create a matched audience to upload contacts or companies into.

linkedin_create_dmp_segment_destination

Share a matched audience with another ad account.

linkedin_create_dmp_segment_list_upload

Mark the start/end of a bulk list upload into a matched audience, so LinkedIn can report on match rates.

linkedin_create_predictive_audience

Create a Predictive Audience from a seed matched audience and a business objective.

linkedin_find_ad_segments

List the ad segments (retargeting audiences built from website or engagement activity) on an ad account.

linkedin_find_child_organizations

List the child organizations (subsidiaries / showcase parents) of one organization.

linkedin_find_dmp_segment_destinations

List the destinations a matched audience has been shared to.

linkedin_find_dmp_segments

List matched audiences (DMP segments) on an ad account.

linkedin_find_organization_administrators

List the members who have a role on one organization.

linkedin_find_organization_brand_by_vanity_name

Look up a Showcase Page by its vanity slug.

linkedin_find_organization_by_email_domain

Find organizations whose registered email domain matches.

linkedin_get_audience_insights

Audience Insights: the demographic and firmographic makeup of a targeting spec or matched audience.

linkedin_get_dmp_segment

Detail and match status for one matched audience.

linkedin_get_organization_brand

Detail for one Showcase Page (organizationBrand).

linkedin_get_predictive_audience

Status and size of one Predictive Audience.

linkedin_lookup_organization_brands

Decorated batch lookup of Showcase Pages by URN.

linkedin_lookup_organizations

Decorated batch lookup of organizations by URN — returns the same records as batch_get but keyed by full URN.

linkedin_update_dmp_segment

Rename or re-describe a matched audience.

linkedin_batch_get_campaign_groups

Fetch several campaign groups in one call by their numeric ids.

linkedin_batch_get_campaigns

Fetch several campaigns in one call by their numeric ids, instead of one request each.

linkedin_delete_campaign

Delete a campaign.

linkedin_delete_campaign_group

Delete a campaign group.

linkedin_get_campaign_group

Full detail for one campaign group: status, budget, run schedule and the campaigns it contains.

linkedin_update_campaign_group

Change a campaign group — most often its `status` (DRAFT to ACTIVE, or PAUSED).

linkedin_batch_get_documents

Fetch several uploaded documents in one call by their document URNs.

linkedin_batch_get_images

Fetch several uploaded images in one call by their image URNs, including processing status and downloadUrl.

linkedin_batch_get_videos

Fetch several uploaded videos in one call by their video URNs, including processing status and duration.

linkedin_create_ad_account

Create a sponsored ad account.

linkedin_create_ad_account_user

Grant a member a role on an ad account, so they can view or manage its campaigns.

linkedin_delete_ad_account_user

Revoke a member's access to an ad account.

linkedin_finalize_video_upload

Step 3 of 3 for a video: commit the uploaded parts.

linkedin_find_ad_account_users

List everyone with access to the given ad accounts, and their roles.

linkedin_find_my_ad_account_roles

Which ad accounts does the signed-in member have a role on, and which role? The advertising counterpart to linkedin_find_my_organizations.

linkedin_get_ad_account

Detail for one ad account: name, currency, status, type, reference (the owning organization) and servingStatuses.

linkedin_get_ad_account_user

The role one member holds on one ad account.

linkedin_get_document

Status and metadata for one uploaded document.

linkedin_get_image

Status and metadata for one uploaded image, including downloadUrl.

linkedin_get_video

Status and metadata for one uploaded video.

linkedin_initialize_video_upload

Step 1 of 3 for a video post.

linkedin_update_ad_account

Change an ad account's name, status or notification settings.

linkedin_update_ad_account_user

Change a member's role on an ad account.

linkedin_get_my_follower_count

Follower count for the signed-in member's own profile (creator analytics).

linkedin_get_my_follower_count_history

The signed-in member's follower count over a date range.

linkedin_get_my_post_analytics

Analytics across the signed-in member's own posts (impressions, reactions, comments, reshares) over a date range.

linkedin_get_my_video_analytics

Video analytics for one of the signed-in member's video posts.

linkedin_get_post_analytics_for_entity

Analytics for ONE of the signed-in member's posts.

linkedin_get_video_analytics

Video performance for one video or post: views, time watched, viewers.

linkedin_associate_campaign_conversion

Attach a conversion rule to a campaign so its conversions are attributed there.

linkedin_create_conversion

Create a conversion rule to send offline/CRM conversions against.

linkedin_delete_campaign_conversion

Detach a conversion rule from a campaign so its conversions are no longer attributed there.

linkedin_delete_conversion

Delete a conversion rule.

linkedin_find_conversions

List conversion rules on an ad account, with their type, attribution window and enabled state.

linkedin_get_conversion

Detail for one conversion rule: its type, attribution windows, enabled state and the campaigns it is attached to.

linkedin_send_conversion_events

Conversions API: send offline or server-side conversion events back to LinkedIn for attribution.

linkedin_update_conversion

Change a conversion rule (enable/disable, rename, adjust the attribution window).

linkedin_batch_get_posts

Fetch several posts in one call.

linkedin_create_lead_notification

Register a webhook that fires whenever a new lead is captured — the push alternative to polling find_lead_form_responses.

linkedin_delete_lead_notification

Remove a lead webhook subscription so LinkedIn stops pushing new leads to that URL.

linkedin_find_lead_notifications

List the lead webhook subscriptions registered for an owner.

linkedin_find_posts_by_ad_account

List Direct Sponsored Content (dark posts) belonging to one ad account.

linkedin_find_similar_targeting_entities

Given some targeting entities, suggest similar ones (e.g. companies like these) to widen an audience.

linkedin_find_targeting_entities

List the allowed values for one targeting facet — e.g. every seniority or industry, with the URN you put into a campaign's targetingCriteria.

linkedin_get_ad_supply_forecast

Forecast available impressions/spend for a targeting spec and budget over a date window.

linkedin_get_lead_form

Detail for one Lead Gen Form, including its questions and their ids.

linkedin_get_lead_form_response

One captured lead, including the answers the member submitted.

linkedin_list_targeting_facets

List every targeting dimension LinkedIn supports (locations, industries, seniorities, jobFunctions, titles, skills, interests, memberBehaviors, staffCountRanges, degrees, employers, …) with its facet URN.

linkedin_resolve_targeting_entities

Resolve targeting URNs back to human-readable names — use it to explain an existing campaign's targeting.

linkedin_batch_get_creatives

Fetch several creatives in one call by their sponsoredCreative URNs, instead of one request each.

linkedin_create_event

Create a LinkedIn Event on behalf of an organization.

linkedin_delete_creative

Delete a creative.

linkedin_delete_event

Delete a LinkedIn Event.

linkedin_find_events_by_organizer

List the Events organized by one organization, with filters for past/upcoming and entry criteria.

linkedin_find_lead_gen_events

List an organization's Events that have a Lead Gen Form attached — pair with linkedin_find_lead_form_responses to sync event registrations.

linkedin_get_creative

Full detail for one creative (ad): its campaign, intendedStatus, review status and the post it promotes.

linkedin_get_event

Full detail for one LinkedIn Event: name, description, schedule, mode, visibility and registration settings.

linkedin_update_event

Change an Event (name, description, schedule, visibility) or cancel it.

linkedin_get_ad_budget_pricing

Suggested bid range and daily budget floor for a targeting spec — use it to pick a sensible bid before creating a campaign.

linkedin_get_attributed_revenue

Revenue attributed to LinkedIn ads (Revenue Attribution Report).

linkedin_create_event_subscription

Subscribe to push notifications for an organization's social activity.

linkedin_delete_event_subscription

Unsubscribe from an organization's social activity notifications.

linkedin_find_event_subscriptions

List this app's webhook subscriptions for the signed-in member (e.g. notifications when someone comments on your Page).

linkedin_get_member_profile

The signed-in member's LinkedIn profile (legacy /v2/me): id, localizedFirstName, localizedLastName, headline, vanityName, profilePicture.

Connect LinkedIn to Claude, ChatGPT and Claude Code

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

Create an app at linkedin.com/developers/apps, add PopMCP's callback URL to its Auth tab's authorized redirect URLs, paste the Client ID and Primary Client Secret, and list the API products the app holds (leave blank for Sign In and Share).

Client ID86abc1def2ghij
Client Secret••••••••••••3f7a
API products your app hasshare, community, advertising
Authorize PopMCP on LinkedInAuthorize

Then just ask for the work

  • “Post this launch announcement on our Company Page and mention our partner's Page”

    • find_my_organizations
    • find_organization_by_vanity_name
    • create_post
  • “Which of our Page posts this quarter got the most comments, and what did people say?”

    • find_my_organizations
    • find_posts_by_author
    • get_social_actions
    • find_comments
  • “How many followers did our Page gain each day last month, and which industries do our followers work in?”

    • find_my_organizations
    • get_page_follower_statistics
  • “Pull every lead from our webinar Lead Gen Form this week so I can add them to the CRM”

    • find_lead_forms
    • find_lead_form_responses

Use LinkedIn 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 Customize → 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 MCP server questions

What teams ask before putting LinkedIn behind an AI client.

Which LinkedIn API products does my app need?

It depends on the job. Sign In with LinkedIn and Share on LinkedIn are self-serve and cover your profile and posting as yourself. Company Page posts, comments, reactions and Page analytics need the Community Management API. Campaigns and ad reporting need the Advertising API, and Lead Gen Form leads need Lead Sync. Conversions, Events and Matched Audiences are separate products too. LinkedIn grants each one to your app after review, and the products field tells PopMCP which ones you hold.

Why does LinkedIn reject the sign-in with an invalid scope error?

Because PopMCP asked for a permission from a product your app does not hold. LinkedIn fails the whole sign-in rather than granting a subset, and the products you list on the connect form decide which permissions are requested. Open your app at linkedin.com/developers/apps, check the Products tab for what is actually enabled, and reconnect listing only those, for example share, community. Leaving the field blank requests just the self-serve Sign In and Share permissions.

Can the AI post as our Company Page?

Yes, once your app has the Community Management API and you hold a role on the Page. find_my_organizations lists your Pages and roles; posting as a Page needs ADMINISTRATOR or DIRECT_SPONSORED_CONTENT_POSTER. create_post takes the Page as author, and a text post needs only that and the commentary. Images, video and documents need their bytes sent to LinkedIn's upload URL outside the connector, so without that the AI posts text or an article link.

How long does a LinkedIn connection last?

LinkedIn access tokens last 60 days. Refresh tokens only go to apps LinkedIn approved for programmatic refresh, and those last 365 days from when you authorized, a fixed date that use does not extend, so you reconnect within a year either way. Without one, the 60-day access token is the credential and you reconnect when it runs out. The connection profile tells the AI how many days are left, so it can warn you before the deadline.

How many LinkedIn tools load into my AI client?

38 of the 146 operations load by default: posting, comments and reactions, Page and follower analytics, lead forms, and the core campaign, creative and ad reporting tools. The rest of the 17 modules, including conversation ads, matched audiences, conversions, events and webhook subscriptions, stay searchable. 91 operations read and 55 write. A tool from a product your app was not approved for reaches LinkedIn but comes back with a permission error.

Which LinkedIn events can PopMCP watch?

Seventeen. Webhooks cover a comment or a reaction on a Page post and a lead captured from a sponsored ad. Polling picks up new Lead Gen Form responses, including organic Page forms. Change detection spots a new Page post, a new campaign, a campaign status change, an ad review result, a new event, a new lead form, a Page admin change, a matched audience ready and a new conversion. Thresholds cover follower milestones, engagement drops, ad spend and cost per result.

Do I have to run or host the LinkedIn 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, Claude Code, 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.

How do I connect LinkedIn to Claude Code?

Connect LinkedIn in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking LinkedIn on the consent screen. The LinkedIn tools are then available in that session, and no LinkedIn credential is stored on your machine.

Why do only 38 of the 146 tools load by default?

Loading 146 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 38-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 146 here. A trigger is something PopMCP watches for you: 17 LinkedIn 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.

Connect LinkedIn to your AI in minutes

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

Connect your first MCP