Server data from the Official MCP Registry
Scrape and analyze public LinkedIn posts as structured JSON via the Apify LinkedIn Posts API.
Scrape and analyze public LinkedIn posts as structured JSON via the Apify LinkedIn Posts API.
Remote endpoints: streamable-http: https://mcp.apify.com/?tools=johnvc/linkedin-posts-api
Valid MCP server (1 strong, 1 medium validity signals). 1 known CVE in dependencies Imported from the Official MCP Registry. Trust signals: trusted author (3/3 approved).
Endpoint verified ยท Requires authentication ยท 2 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Remote Plugin
No local installation needed. Your AI client connects to the remote endpoint directly.
Add this to your MCP configuration to connect:
{
"mcpServers": {
"io-github-johnisanerd-linkedin-posts": {
"url": "https://mcp.apify.com/?tools=johnvc/linkedin-posts-api"
}
}
}From the project's GitHub README.
The most efficient, reliable, and developer-friendly way to use the LinkedIn Posts API.
Actor page: apify.com/johnvc/linkedin-posts-api Input schema: apify.com/johnvc/linkedin-posts-api/input-schema
Give it a public LinkedIn profile URL and it discovers that person's recent posts, or pass specific post URLs to fetch directly. You get back one clean JSON row per post: text, reactions, comments, shares, hashtags, media, and author details. It is built API-first and MCP-ready, so you can call it from Python or drive it as a tool from an AI agent.
Clone the repository
git clone https://github.com/johnisanerd/Apify-LinkedIn-Posts-API.git
cd Apify-LinkedIn-Posts-API
Install dependencies with UV
# Install UV if you do not have it:
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install project dependencies:
uv sync
Configure your API key
cp .env.example .env
# Edit .env and add your Apify API key
# Get your free API key at: https://apify.com?fpr=9n7kx3
Run the example
uv run python linkedin-posts-api-example.py
export APIFY_API_TOKEN="your_api_key_here"
uv run python linkedin-posts-api-example.py
A URL in, structured data out. You never touch collection infrastructure. Pass a profile URL (or specific post URLs) and get flat, predictable fields you can load straight into a sheet, a database, or a BI tool.
Two ways to collect. Discover a profile's recent posts (newest first, capped and optionally date-filtered), or fetch a known set of posts by URL, up to 1000 per run.
Pay per post. Billing is per post returned, with no per-run setup fee, so you only pay for what is delivered.
Reliable and predictable. Every post comes back with the same field shape, and a profile with no public posts returns a clear error row instead of failing the whole run.
MCP-ready. Call it as a tool from Claude, Cursor, and other AI agents (see the install sections below).
summary field on every row for quick scanning and AI use{
"profileUrls": ["https://www.linkedin.com/in/williamhgates"],
"maxPostsPerProfile": 5
}
{
"profileUrls": ["https://www.linkedin.com/in/williamhgates"],
"maxPostsPerProfile": 50,
"startDate": "2025-01-01",
"endDate": "2025-12-31"
}
{
"postUrls": [
"https://www.linkedin.com/posts/williamhgates_activity-7446904645010210816"
]
}
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
profileUrls | list[str] | one of these | - | Public LinkedIn /in/ profile URLs to discover posts from. Up to 25 per run. |
postUrls | list[str] | one of these | - | Specific LinkedIn post URLs to fetch directly. Up to 1000 per run. |
maxPostsPerProfile | int | No | 20 | Max posts per profile in discover mode (max 200). Caps cost. Ignored for post URLs. |
startDate | str | No | - | Only discover posts on or after this date (YYYY-MM-DD). Discover mode only. |
endDate | str | No | - | Only discover posts on or before this date (YYYY-MM-DD). Discover mode only. |
Supply at least one of profileUrls or postUrls.
Each post is returned as one JSON row:
{
"result_type": "post",
"postId": "7446904645010210816",
"postUrl": "https://www.linkedin.com/posts/williamhgates_activity-7446904645010210816",
"postType": "post",
"datePosted": "2025-06-01T12:00:00.000Z",
"text": "A few books shaped how I think about clean energy this year...",
"hashtags": ["cleanenergy", "books"],
"authorName": "williamhgates",
"authorHeadline": "Co-chair, Bill & Melinda Gates Foundation",
"authorUrl": "https://www.linkedin.com/in/williamhgates",
"authorFollowers": 37000000,
"numLikes": 12045,
"numComments": 843,
"numShares": 210,
"summary": "Post by williamhgates, 12,045 reactions, 843 comments, posted 2025-06-01"
}
The numShares field is returned when the post has shares.

Cowork is the desktop app's automation mode. To give it the LinkedIn Posts API as a tool, add the Apify MCP server as a connector.
claude_desktop_config.json directly).
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-posts-api"
]
}
}
}
Download the desktop app and start a free trial: https://claude.ai/referral/uIlpa7nPLg More help: https://docs.apify.com/platform/integrations/claude-desktop

Claude Code is the command-line tool. Add the Actor's MCP server with one command:
claude mcp add --transport http apify \
"https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-posts-api"
To use a token instead of browser OAuth:
claude mcp add --transport http apify \
"https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-posts-api" \
--header "Authorization: Bearer YOUR_APIFY_TOKEN"
Then verify with claude mcp list, or run /mcp inside a session. Ask Claude Code to call the LinkedIn Posts API.
Try Claude Code free: https://claude.ai/referral/uIlpa7nPLg Claude Code MCP docs: https://code.claude.com/docs/en/mcp

On claude.ai you add Apify as a connector, then enable just this Actor's tool.
johnvc/linkedin-posts-api.https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-posts-api, using OAuth when prompted.Open Claude on the web: https://claude.ai

Cursor reads MCP servers from a project file at .cursor/mcp.json.
.cursor/mcp.json:{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-posts-api"
}
}
}
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-posts-api",
"headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
}
}
}
New to Cursor? Get it here: https://cursor.com/referral?code=XQP4VBLI3NNX

ChatGPT connects to the Apify MCP server through Developer mode (available on ChatGPT Pro, Plus, Business, Enterprise, and Education plans).
https://mcp.apify.com/?tools=actors,docs,johnvc/linkedin-posts-apiMore help: https://docs.apify.com/platform/integrations/mcp
Use the LinkedIn Posts API to power your content research, social listening, and engagement analytics with reliable, structured results.
Last Updated: 2026.07.10
Be the first to review this server!
by Toleno ยท Developer Tools
Toleno Network MCP Server โ Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace ยท Developer Tools
Create, build, and publish Python MCP servers to PyPI โ conversationally.
by Microsoft ยท Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption