Mcp Linkedin Post Engager Capture

Track LinkedIn posts from profiles and company pages, with the commenters LinkedIn shows publicly.

LLM Mart 3 views 8 listing impressions
Transport
Not stated
Package
—
Registry id
com.mambabuilt/mcp-linkedin-post-engager-capture

No install snippet on purpose. A working MCP config is a command, its arguments and an environment block — the last two are where API keys live, so this catalogue never stores them and cannot publish them. Follow the link above for the authors' own instructions.

MCP server for the Mamba Labs LinkedIn Post Tracker and Comment Capture actor on Apify.

Point it at LinkedIn person profiles or company pages. It returns their recent posts as flat rows, with the real reaction and comment counts on every one, plus the commenters LinkedIn shows publicly. No cookies, no LinkedIn account, no credentials of any kind.

Install

npx -y @mambalabsdev/mcp-linkedin-post-engager-capture

Claude Desktop

{
  "mcpServers": {
    "mamba-linkedin-post-engager-capture": {
      "command": "npx",
      "args": ["-y", "@mambalabsdev/mcp-linkedin-post-engager-capture"],
      "env": { "APIFY_TOKEN": "your-apify-token" }
    }
  }
}

Get an Apify token at console.apify.com/account/integrations.

Tool

capture_linkedin_posts_and_commenters

LinkedIn profiles and company pages in, their recent posts and public commenters out.

Input Type Required Notes
profile_urls array no Person profiles, for example https://www.linkedin.com/in/williamhgates. Country subdomains are fine. Supply this, company_urls, or both.
company_urls array no Company pages, for example https://www.linkedin.com/company/microsoft. Supply this, profile_urls, or both.
posted_since string no ISO date, for example 2026-08-01. Posts older than this are skipped before anything is charged.
collect_commenters boolean no One row per public commenter. Turn it off to collect posts only. Default true.
collect_reactors boolean no Returns no reaction rows whatever you set, because LinkedIn serves no reactor identities to a logged-out visitor. Present so the limit is visible rather than silent. Default true.
max_engagers_per_post integer no 0 to 100. Ten is LinkedIn's own ceiling for a logged-out visitor, so raising it above 10 does nothing. Set it to 0 to pay for posts only. Default 10.
use_residential_proxy boolean no Off by default, which is what the pricing assumes. Apify bills residential bandwidth on top of this actor's events. Default false.

Nothing is required. A call with neither URL list comes back as a no_input notice row rather than an error, which mirrors the actor exactly.

Reading the output

One dataset carries three row types, told apart by row_type. Filter on it before loading a table.

  • post is one row per LinkedIn post.
  • engager is one row per public commenter, joined to the post on post_id.
  • notice is a run-level or source-level message.

post_id is the numeric part of LinkedIn's activity URN. It is stable across runs, across country subdomains and across both permalink spellings, so it is safe as a primary key and safe as the "have I already posted this to Slack" check.

The commenter limits are real and they are not small. LinkedIn renders about ten top-level comments to a logged-out visitor whatever the true total. Measured whole-run coverage was 178 commenters out of 4,857 that existed, which is 3.7 percent. About 30 percent of comment rows carry no timestamp. Every post row carries commenters_collected beside commenters_available so the coverage on any given post is a number you can read rather than something you infer.

Reactor identities are not available at all to a logged-out visitor. Every post row still carries the real reaction_count, and reactors_status says unavailable_without_login.

Every row carries degraded and degradation_reason. false means the actor looked; null on a field means it could not. Filter on degraded before you trust an absence. Two things that look like failures are deliberately not degraded, because both are measurements: reactors_unavailable is how logged-out LinkedIn works, and no_posts_found on a page that loaded is a real absence.

Billing

From the project's README.