mcp-linkedin-post-engager-capture
LinkedIn Post Tracker and Comment Capture MCP Server
Mamba Labs의 LinkedIn Post Tracker and Comment Capture Apify 액터를 위한 MCP 서버입니다.
LinkedIn 개인 프로필이나 회사 페이지를 지정하면 최근 게시물을 평평한 행으로 반환하며, 각 게시물의 실제 반응 수와 댓글 수, 그리고 LinkedIn이 공개적으로 표시하는 댓글 작성자 목록을 제공합니다. 쿠키도, LinkedIn 계정도, 어떤 자격 증명도 필요 없습니다.
설치
npx -y @mambalabsdev/mcp-linkedin-post-engager-captureClaude Desktop
{
"mcpServers": {
"mamba-linkedin-post-engager-capture": {
"command": "npx",
"args": ["-y", "@mambalabsdev/mcp-linkedin-post-engager-capture"],
"env": { "APIFY_TOKEN": "your-apify-token" }
}
}
}Apify 토큰은 console.apify.com/account/integrations에서 받으세요.
Related MCP server: LinkedIn Data API MCP Server
도구
capture_linkedin_posts_and_commenters
LinkedIn 프로필과 회사 페이지를 입력하면 최근 게시물과 공개 댓글 작성자를 반환합니다.
입력 | 유형 | 필수 | 참고 |
| 배열 | 아니요 | 개인 프로필, 예: |
| 배열 | 아니요 | 회사 페이지, 예: |
| 문자열 | 아니요 | ISO 날짜, 예: 2026-08-01. 이보다 오래된 게시물은 어떤 비용이 청구되기 전에 건너뜁니다. |
| 불리언 | 아니요 | 공개 댓글 작성자당 한 행씩 수집합니다. 끄면 게시물만 수집합니다. 기본값 |
| 불리언 | 아니요 | 어떤 값을 설정하든 반응 행은 반환되지 않습니다. LinkedIn이 로그아웃 방문자에게 반응자 신원을 제공하지 않기 때문입니다. 제한이 조용히 지나치지 않도록 표시만 해 둔 것입니다. 기본값 |
| 정수 | 아니요 | 0~100. 10은 로그아웃 방문자에게 LinkedIn이 허용하는 자체 상한이므로 10 이상으로 올려도 효과가 없습니다. 0으로 설정하면 게시물 비용만 지불합니다. 기본값 |
| 불리언 | 아니요 | 기본적으로 꺼져 있으며, 이는 요금 책정의 기준입니다. Apify는 이 액터의 이벤트에 더해 리지덴셜 대역폭 비용을 청구합니다. 기본값 |
필수 입력은 없습니다. URL 목록을 하나도 제공하지 않으면 오류 대신 no_input 알림 행이 반환되며, 이는 액터의 동작과 정확히 일치합니다.
출력 읽기
하나의 데이터셋에 row_type으로 구분되는 세 가지 행 유형이 있습니다. 테이블을 로드하기 전에 이 값으로 필터링하세요.
post는 LinkedIn 게시물당 한 행입니다.engager는 공개 댓글 작성자당 한 행이며,post_id로 게시물에 연결됩니다.notice는 실행 수준 또는 소스 수준 메시지입니다.
post_id는 LinkedIn 활동 URN의 숫자 부분입니다. 실행 간, 국가별 하위 도메인 간, 그리고 두 영구 링크 표기 간에 안정적이므로 기본 키로 사용하거나 "이미 Slack에 게시했는지" 확인하는 데 안전합니다.
댓글 작성자 제한은 실제이며 작지 않습니다. LinkedIn은 로그아웃 방문자에게 실제 총수와 관계없이 상위 댓글 약 10개를 렌더링합니다. 전체 실행에서 측정된 커버리지는 존재하는 4,857명 중 178명으로 3.7%였습니다. 댓글 행의 약 30%는 타임스탬프가 없습니다. 모든 게시물 행에는 commenters_available 옆에 commenters_collected가 있으므로 특정 게시물의 커버리지는 추론이 아니라 읽을 수 있는 숫자입니다.
반응자 신원은 로그아웃 방문자에게 전혀 제공되지 않습니다. 모든 게시물 행에는 실제 reaction_count가 포함되며, reactors_status는 unavailable_without_login이라고 표시됩니다.
모든 행에는 degraded와 degradation_reason이 포함됩니다. false는 액터가 확인했음을 의미하고, 필드의 null은 확인할 수 없었음을 의미합니다. 부재를 신뢰하기 전에 degraded로 필터링하세요. 실패처럼 보이는 두 가지는 의도적으로 degraded로 표시되지 않습니다. 둘 다 측정값이기 때문입니다. reactors_unavailable은 로그아웃 상태의 LinkedIn이 작동하는 방식이고, 로드된 페이지에서 no_posts_found는 실제 부재입니다.
요금
수집된 게시물당, 수집된 댓글 작성자당 비용이 청구되며, 소액의 액터 시작 수수료가 추가됩니다. 알림 행은 무료입니다. posted_since는 어떤 비용이 청구되기 전에 필터링하므로, 새 항목이 없는 예약 실행은 액터 시작 비용만 발생하고 그 외에는 아무것도 청구되지 않습니다.
결과 캐시는 없습니다. 모든 실행은 다시 가져오며, 이는 새 게시물을 감지하는 것이 임무인 액터에게 올바른 동작입니다. 요금은 액터의 Apify 페이지에 있습니다. 이 서버를 실행하면 Apify 크레딧이 소비됩니다.
이 서버가 하는 일과 하지 않는 일
이 서버는 Apify 액터의 얇은 클라이언트입니다. 입력을 그대로 전달하고 액터의 출력을 변경 없이 반환합니다. 위에서 설명한 모든 동작은 이 서버가 아니라 액터에 있습니다.
로그아웃 방문자에게 LinkedIn이 제공하는 것만 읽습니다. 세션 쿠키를 보유하지 않으며, LinkedIn 계정을 사용하지 않고, 로그인 뒤의 어떤 것도 읽지 않습니다.
댓글 작성자 행은 실명이 포함된 개인 데이터입니다. 이 서버를 실행할 때 귀하는 반환되는 개인 데이터의 데이터 컨트롤러이며 Apify는 처리자입니다. 적법한 근거는 귀하가 확립해야 합니다. 여기에는 법적 조언이 포함되어 있지 않습니다.
이 액터는 비공식이며 LinkedIn이나 Microsoft와 제휴, 후원, 또는 보증 관계가 없습니다.
오류는 삼켜지지 않고 표면화됩니다. 잘못된 입력, 잘못된 토큰, 잔액 소진, 시간 초과, 또는 데이터셋 이외의 것을 반환하는 실행은 모두 빈 결과가 아닌 명시적 도구 오류로 반환됩니다.
출처
액터는 Apify Store에 있습니다. 이 래퍼는 MIT 라이선스입니다.
Mamba Labs가 제작했습니다.
Available Tools
1 toolcapture_linkedin_posts_and_commentersCapture LinkedIn Posts and CommentersAIdempotent
Point it at LinkedIn person profiles or company pages and it returns the posts a search engine has indexed for each one, as flat rows: permalink, author, a text excerpt, and the publish date decoded from the post id. No request is sent to LinkedIn and no cookie or account is used. A result counts only when its permalink names the source, so posts are never attributed to the wrong author. Coverage is what the search index holds: posts appear days or weeks after publishing and many never appear. Commenters, reaction counts, comment counts and media are no longer returned (removed 2026-10-12, they came only from LinkedIn pages). Rows carry row_type post or notice; filter on row_type before loading a table. post_id is the activity URN and is stable across runs. Every row carries degraded and degradation_reason. Requires an APIFY_TOKEN and consumes Apify credits. Read only.
| Name | Required | Description | Default |
|---|---|---|---|
| company_urls | No | LinkedIn company page URLs, for example https://www.linkedin.com/company/microsoft. Supply this, profile_urls, or both. | |
| posted_since | No | ISO date or timestamp, for example 2026-08-01. Posts published before this are skipped BEFORE anything is charged. Leave empty to take everything the index holds. | |
| profile_urls | No | LinkedIn person profile URLs, for example https://www.linkedin.com/in/williamhgates. Country subdomains such as uk.linkedin.com are fine. Supply this, company_urls, or both. | |
| max_charge_usd | No | Optional. The actor's own spend cap for this run, in USD. The run stops before a charge would take its total past this amount, writes one notice row saying so, and keeps every row already charged. Leave it empty for no cap of your own; the maximum cost per run set in Apify is honored either way. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: no request is sent to LinkedIn, no cookie or account is used, results only count when the permalink names the source, coverage is bounded by the search index, and commenters/reactions/media were removed on 2026-10-12. It also discloses the APIFY_TOKEN requirement, credit consumption, degraded/degradation_reason flags, and that post_id is a stable activity URN.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core behavior, then layered with caveats, each of which carries real decision value (coverage limits, row_type, removed features, credits). It is long, but nearly every sentence prevents a specific failure mode; only minor tightening is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully describes the return shape (permalink, author, text excerpt, decoded publish date, row_type, post_id, degraded flags). Combined with the cost, auth, and coverage disclosures, an agent has everything needed to invoke and interpret this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (company_urls, profile_urls, posted_since, max_charge_usd) are already fully documented in the schema, including the charge-cap behavior. The description adds no parameter-level detail beyond that, which is the correct baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — it returns search-indexed LinkedIn posts for supplied person profiles or company pages as flat rows — and names the exact fields returned. It also proactively corrects the misleading tool name by stating that commenters are no longer returned. An agent knows precisely what comes back without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete operating guidance: filter on row_type before loading a table, use posted_since to avoid charges, and expect posts to appear days or weeks after publishing with many never indexed. There are no sibling tools to route against, so explicit alternatives cannot be named, but the coverage caveats make the appropriate context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.4.0- Changed
capture_linkedin_posts_and_commenters1 field changed- added
Input schema / properties / max_charge_usdAdded value: +{ + "description": "Optional. The actor's own spend cap for this run, in USD. The run stops before a charge would take its total past this amount, writes one notice row saying so, and keeps every row already charged. Leave it empty for no cap of your own; the maximum cost per run set in Apify is honored either way.", + "minimum": 0, + "type": "number" +}
1 tool update
v1.3.0- Changed
capture_linkedin_posts_and_commenters8 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - removed
Input schema / properties / collect_commentersRemoved value: -{ - "description": "Return one row per person who commented, with name, profile URL, comment text and comment likes. Turn it off to collect posts only, in which case commenters_collected comes back null rather than 0, because the actor did not look. Default: true.", - "type": "boolean" -} - removed
Input schema / properties / collect_reactorsRemoved value: -{ - "description": "LinkedIn serves no reactor identities to a logged-out visitor, so this returns no reaction rows whatever you set. It exists so the limit is visible rather than silent, and it adds one notice row per run. Set it to false to suppress that row. Default: true.", - "type": "boolean" -} - changed
Input schema / properties / company_urls / descriptionPrevious value: -"LinkedIn company page URLs whose recent posts you want, for example https://www.linkedin.com/company/microsoft. Supply this, profile_urls, or both."New value: +"LinkedIn company page URLs, for example https://www.linkedin.com/company/microsoft. Supply this, profile_urls, or both." - removed
Input schema / properties / max_engagers_per_postRemoved value: -{ - "description": "Caps the engager rows charged per post. LinkedIn shows about ten comments to a logged-out visitor, so ten is the platform ceiling and raising this above ten does nothing. Set it to 0 to pay for posts only. Default: 10.", - "maximum": 100, - "minimum": 0, - "type": "integer" -} - changed
Input schema / properties / posted_since / descriptionPrevious value: -"ISO date or timestamp, for example 2026-08-01. Posts published before this are skipped BEFORE anything is charged, so a scheduled run that finds nothing new costs the actor start and nothing else. Leave empty to take everything the page advertises."New value: +"ISO date or timestamp, for example 2026-08-01. Posts published before this are skipped BEFORE anything is charged. Leave empty to take everything the index holds." - changed
Input schema / properties / profile_urls / descriptionPrevious value: -"LinkedIn person profile URLs whose recent posts you want, for example https://www.linkedin.com/in/williamhgates. Country subdomains such as uk.linkedin.com are fine. Supply this, company_urls, or both."New value: +"LinkedIn person profile URLs, for example https://www.linkedin.com/in/williamhgates. Country subdomains such as uk.linkedin.com are fine. Supply this, company_urls, or both." - removed
Input schema / properties / use_residential_proxyRemoved value: -{ - "description": "Off by default, which is what the pricing assumes and what was measured. Turn it on only if LinkedIn starts refusing the platform's datacenter addresses. Apify bills residential bandwidth on top of this actor's events. Default: false.", - "type": "boolean" -}
1 tool update
v1.0.1- First observed
capture_linkedin_posts_and_commenters
TDQS
Scored across 1 tool
There is only one tool, so there is no possibility of selecting the wrong one. Its purpose (capture indexed LinkedIn posts for given profiles/pages) is stated unambiguously.
The single name uses a clear snake_case verb_noun form, which is internally consistent. However, it still advertises 'commenters' even though the description says commenter data was removed, making the name stale and slightly misleading.
The server exposes exactly one tool for a very narrow, read-only capture operation, so the count is defensible but thin. An agent gets no separate means to list sources, filter row types, or fetch metadata without parsing the single flat output.
For a read-only 'capture posts from a search index' domain, one tool covers the whole lifecycle and returns stable post_id, row_type, and degradation flags. Gaps are minor: no dedicated source-validation or post-filtering operation, and the name's promise of commenters is no longer fulfilled.
Maintenance
Related MCP Connectors
Scrape and analyze public LinkedIn posts as structured JSON via the Apify LinkedIn Posts API.
LinkedIn companies, hiring signals and public profiles by URL. No login, no cookies. Pay per result.
Live LinkedIn data for AI agents: profiles, companies, jobs, posts, email finding. No account risk.
Search LinkedIn & Sales Navigator. Get structured people, companies, posts, jobs data. 4.9/5 on G2.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables extraction of comprehensive LinkedIn profile data including experience, education, skills, and contact information through browser automation. Requires manual LinkedIn credentials input and uses anti-detection measures for reliable scraping.5-
- AlicenseCqualityDmaintenanceEnables access to comprehensive LinkedIn data, including professional profile details, company information, and social engagement metrics. It supports searching for people, retrieving posts and comments, and fetching detailed experience, skills, and recommendations.52MIT
- AlicenseCqualityDmaintenanceEnables access to the Fresh Linkedin Profile Data API for scraping LinkedIn profiles, companies, posts, jobs, and other data through a variety of tools.39MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to discover and fetch LinkedIn posts with engagement metrics (reactions, comments, shares) and author details, returning structured JSON per post.-