LinkedIn MCP Server - AI Assistant avatar

LinkedIn MCP Server - AI Assistant

Pricing

from $0.01 / 1,000 results

Go to Apify Store
LinkedIn MCP Server - AI Assistant

LinkedIn MCP Server - AI Assistant

Model Context Protocol server for LinkedIn automation. Enable AI assistants to search profiles, send messages & manage connections programmatically.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

The Howlers

The Howlers

Maintained by Community

Actor stats

2

Bookmarked

17

Total users

0

Monthly active users

12 minutes ago

Last modified

Share

LinkedIn MCP Server

MCP server for LinkedIn. It lets AI assistants like Claude scrape profiles and posts, build a voice profile from someone's posts, and write or improve posts in that voice. Scraping and AI work are delegated to dedicated LinkedIn actors (profile scraper, post scraper, voice trainer).

BYOK (Bring Your Own Key): real data needs your own LinkedIn cookies, and the AI tools need your own Claude or OpenAI API key.


How it runs

  • On Apify: each run executes one tool (the tool input) with toolArguments, writes one result row to the dataset, and exits.
  • Locally (Claude Desktop or any MCP client): node dist/main.js starts an MCP server over stdio. Credentials can come from tool arguments or the LINKEDIN_COOKIES, ANTHROPIC_API_KEY and OPENAI_API_KEY environment variables.

Live mode never returns sample data. If cookies or keys are missing, or a scrape fails, you get a result row with success: false, an error message and an errorType, and nothing is charged for that tool call.


Quick start

See the available tools (free)

{
"tool": "list_tools"
}

Scrape a profile

{
"tool": "scrape_profile",
"toolArguments": { "profileUrl": "https://www.linkedin.com/in/someone/", "maxPosts": 20 },
"linkedinCookies": "[{\"name\":\"li_at\",\"value\":\"...\"}]"
}

Build a voice profile and write a post

  1. Run analyze_voice with toolArguments {"profileUrl": "..."} (needs cookies) or {"posts": [...]}, plus claudeApiKey or openaiApiKey.
  2. Run generate_post with {"topic": "...", "voiceProfile": <the voiceProfile from step 1>} and the same AI key.

Sample output

Set demoMode to true to get labeled sample output (isSample: true) for any tool. Sample output is never charged.


Tools

ToolNeedsNotes
list_toolsnothingTool catalog with input schemas
scrape_profilecookiesProfile details and recent posts
scrape_postscookiesPosts by profileUrl, hashtag or keyword
analyze_voiceAI key (+ cookies with profileUrl)Returns a voiceProfile object
generate_postAI key + voiceProfilePost in that voice
improve_draftAI key + voiceProfileImproved draft
suggest_topicsAI key + voiceProfileTopic ideas
analyze_performanceposts, or profileUrl + cookiesEngagement summary and recommendations
search_peopleNot supported yet (returns an error)
get_voice_profile, list_voice_profilesNot supported yet: voice profiles are not stored between runs. Pass the voiceProfile object instead

Input parameters

ParameterTypeDefaultDescription
toolstringlist_toolsTool to run once on Apify
toolArgumentsobject{}Arguments for that tool
linkedinCookiesstringJSON array of LinkedIn cookies (must include li_at)
linkedinEmail / linkedinPasswordstringAlternative to cookies, passed to the scraper actors
claudeApiKey / openaiApiKeystringAI key for the voice and writing tools
demoModebooleanfalseLabeled sample output, never charged
webhookUrlstringReceives the result row via POST
modestringstdioLegacy. demo behaves like Demo Mode

Pricing

Pay per event:

EventWhen it is chargedPrice
Profile SearchedOnce per tool call that returned real LinkedIn profile or post data: scrape_profile, scrape_posts, and analyze_voice or analyze_performance when they scrape a profileUrl$0.05

Apify also applies its standard actor start and per-result platform events listed on the pricing tab. Sample output, errors, list_tools and the AI-only tools do not charge Profile Searched.

The delegated actors (LinkedIn Profile Scraper, LinkedIn Post Scraper, LinkedIn Voice Trainer) run in your Apify account and bill their own events.


Troubleshooting

  • MISSING_LINKEDIN_COOKIES: add linkedinCookies, or set demoMode to true for sample output.
  • MISSING_AI_KEY: add claudeApiKey or openaiApiKey.
  • DELEGATE_RETURNED_SAMPLE or NO_RESULTS: the scraper could not log in or found nothing. Export fresh cookies and try again.
  • DELEGATE_TIMEOUT: the delegated scrape took longer than 5 minutes and was stopped. Try fewer posts.

Built by John Rippy | Actor Arsenal