Mmcp.market

Linkedin MCP server

by devag7·io.github.devag7/linkedin-mcp·v2.0.3

LinkedIn for AI assistants — search, profiles, jobs, feed, messaging, and gated writes.

A88/100grade A
What users say
No reviews yet
Be the first
Safety scan
A88/100

full report

Adoption
Growing

10 stars103 downloads/wk

Reviews

Write one

Nobody has reviewed Linkedin yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Linkedin tools (22, 4 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • close_session

    Close the browser context and release resources (kills the Chrome process).

  • comment_on_postwrite action

    [ALPHA, write] Comment on a post. Gated: requires confirm:true. Returns a structured status.

  • connect_with_person

    [ALPHA, write] Send a connection request. Gated: requires confirm:true. Returns a structured status (ok | duplicate | already_connected | restricted | quota_exhausted | failed). Counts against the daily connect cap.

  • create_postwrite action

    [ALPHA, write] Publish a text post to your feed. Gated: requires confirm:true. Returns a structured status.

  • get_company

    Get a company by its LinkedIn URL slug (e.g. "google", "microsoft"). Returns name, description, website, industry, size, HQ.

  • get_company_employees

    List employees LinkedIn surfaces for a company (by URL slug). Returns name, headline, and public identifier (feed the slug to get_profile). Prospecting core.

  • get_company_posts

    Get a company's recent posts by its LinkedIn URL slug (e.g. "google"). Returns post text + a short meta line.

  • get_conversation

    Read messages in a LinkedIn conversation by its URN (get the URN from get_inbox).

  • get_feed

    Get recent posts from your LinkedIn home feed (author + post text).

  • get_inbox

    List your recent LinkedIn messaging conversations (title, last activity, unread count).

  • get_job_details

    Get full details for a job posting by its numeric id (the digits in /jobs/view/<id> or from search_jobs jobUrn).

  • get_my_profile

    Get the authenticated user's own LinkedIn profile (experience, education, headline, summary).

  • get_notifications

    Get your recent LinkedIn notifications (headline, time, read state).

  • get_pending_invitations

    List your pending connection invitations \u2014 received (inbound, with the urn/sharedSecret to accept later) and sent (outbound). Read-only.

  • get_profile

    Get a LinkedIn profile by public identifier (the slug in the profile URL, e.g. "satyanadella").

  • health_check

    Deep health check: cookie login state, a LIVE Voyager probe (confirms the API actually answers, not just that a cookie exists), and today's safety-budget headroom (per-action used/cap/remaining + pending invites).

  • react_to_postwrite action

    [ALPHA, write] React to a post. Gated: requires confirm:true. Returns a structured status.

  • search_companies

    Search LinkedIn companies by keywords. Returns name + universalName slug (pass that to get_company for full details).

  • search_jobs

    Search LinkedIn jobs by keywords (and optional location). Returns title, location, posted time.

  • search_people

    Search LinkedIn people by keywords. Returns name, headline, location, and public identifier (pass that to get_profile for full details).

  • send_messagewrite action

    [ALPHA, write] Send a message. Pass thread_id / conversation_urn to REPLY into an existing conversation (verified); otherwise a new thread is started to recipient_urn (best-known). Gated: requires confirm:true. Returns a structured status. Counts against the daily message cap.

  • whoami

    Report server version, browser/login status, and capabilities.

Public scan report

scanner v0.1.9 · 2026-09-26 · same rubric, same numbers if you re-run it

no findings
  • Code scan2 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 30 days ago12/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 88/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

What the publisher says

From the Linkedin repository's README, as published. We do not edit it. Read it on GitHub

🔗 LinkedIn MCP

LinkedIn for AI assistants — structured data via a real, stealth browser session

Give Claude, Cursor, and any MCP client access to LinkedIn — profiles, people/job/company search, feed, messaging, and your network — as clean structured JSON.

22 tools · reads + gated writes (connect, message, post, react, comment) · a real safety layer (daily caps, human pacing, circuit breaker) · 166 tests.

⚠️ Automating LinkedIn violates its User Agreement and can get an account restricted. No tool is ban-proof — and this one says so up front. Use a secondary account; read Account safety and DISCLAIMER.md first.

Why this exists

LinkedIn's internal Voyager API (the one its own web app uses) returns rich, structured JSON — but it sits behind Cloudflare bot-management, which rejects plain HTTP requests (a stateless fetch or curl gets stuck in an endless redirect, even with a valid cookie). The only reliable way to read LinkedIn data programmatically in 2026 is from inside a real browser that clears the challenge.

This project's approach:

  1. Drive a real Chrome via patchright (an undetected Playwright fork) so Cloudflare's challenge is solved with a genuine browser fingerprint.
  2. Query Voyager from inside the authenticated page — same-origin, the exact network path LinkedIn's own SPA uses → structured JSON, not scraped DOM text.

That last point is the edge over DOM-scraping tools: in-page API calls are locale-independent and resilient to UI redesigns, so they don't break on a moved CSS selector or a translated label.

✨ What's good here

How it compares

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Install directly

Runs npx -y linkedin-mcp-tools on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add linkedin-mcp -- npx -y linkedin-mcp-tools
Add to Cursor

Linkedin: common questions

Is Linkedin MCP server safe?
Yes, by our scan: it is graded A (88/100). Read the Linkedin safety report
How do I install Linkedin?
It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
Does Linkedin need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Linkedin maintained?
The last commit was 31 days ago (2026-08-27). The latest release is v2.0.3.
What can I use instead of Linkedin?
Servers from other publishers that do the same job: Linkedin Data MCP server, ZOOQ - LinkedIn Data for AI Agents MCP server and LinkedIn Toolkit MCP server. Compare all Linkedin alternatives.

Alternatives to Linkedin

Same job from other publishers: the closest match first, then the best rated.

All Linkedin alternatives →
  • Linkedin Data
    LinkedIn data for AI agents: profiles, companies, jobs, posts, search. Sales research, recruiting.
    A
  • ZOOQ - LinkedIn Data for AI Agents
    Live LinkedIn data for AI agents: profiles, companies, jobs, posts, email finding. No account risk.
    A
  • LinkedIn Toolkit
    LinkedIn for AI agents from your own Chrome session: search, profiles, lists, outreach queue.
    A
  • LinkedIn MCP Server (Salesbot)
    Human-in-the-loop LinkedIn outreach and a built-in sales CRM for AI agents. Safety-gated, anti-spam.
    B
  • LinkedIn MCP Server
    Find LinkedIn jobs and people, research companies, manage network, posts, and messages with MCP.
    A

More from devag7 →