mcpField
L
LinkedIn MCP Server

LinkedIn MCP Server

Local
github.comSocial Media7Updated 10w ago

About LinkedIn MCP Server

LinkedIn MCP Server exposes LinkedIn job, people, company, post, network, and messaging operations to MCP clients. It uses a locally saved browser session to search and read information, as well as perform supported actions such as publishing posts and sending messages.

Key features

  1. 01Search jobs, people, and companies
  2. 02Read profiles and job details
  3. 03Search and manage posts
  4. 04Browse connections and invitations
  5. 05Read and send messages
  6. 06Inspect session and server status

Use cases

  1. 01Find jobs using location and role filters
  2. 02Research people and companies
  3. 03Publish posts and engage with discussions
  4. 04Manage invitations and conversations

MCP support

The server exposes LinkedIn search, reading, publishing, connection, invitation, and messaging tools to MCP clients. Authentication uses a browser sign-in, with the session saved locally for reuse.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"prakharagarwal-dev-linkedin": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/prakharagarwal-dev/linkedin-mcp-server:0.16.0"
]
}
}
}
Run commanddocker run -i --rm ghcr.io/prakharagarwal-dev/linkedin-mcp-server:0.16.0

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
ocighcr.io/prakharagarwal-dev/linkedin-mcp-server:0.16.0

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

LinkedIn MCP Server

CI CodeQL PyPI Python 3.12–3.14 License: Apache-2.0 MCP Registry Glama OpenSSF Scorecard PyPI provenance Container provenance and SBOM

Disclaimer: LinkedIn is a registered trademark of LinkedIn Corporation and its affiliates. LinkedIn MCP Server is an independent, unofficial project and is not affiliated with, endorsed by, sponsored by, or associated with LinkedIn Corporation or its affiliates.

A LinkedIn MCP server to find jobs, search people, research companies, manage your network, publish and engage with posts, and read or send messages.

⚡ Quickstart

1. Connect Claude Code
claude mcp add --scope user --transport stdio linkedin-mcp -- \
  uvx --from linkedin-mcp-local linkedin-mcp serve --transport stdio
2. Sign in to LinkedIn

Restart Claude Code. A dedicated browser window opens automatically—sign in to LinkedIn and complete any required verification.

Note

Your session is saved locally and reused automatically.

Supported platforms

The server runs natively on Windows, macOS, and Linux. CI executes the complete offline suite on Windows, macOS, Linux x86-64, and Linux ARM64. Browser and OS version requirements follow the official Playwright Python system requirements.

3. Try your first request
Find remote software engineering jobs in India posted on LinkedIn this week.

🛠️ Tools

Tip

Verified means the tool passed an end-to-end live compatibility test against LinkedIn's visible web UI on the date shown.

AreaFunctionMCP toolLinkedIn UI compatibilityWhat it does
JobsSearch jobslinkedin.jobs.searchLinkedIn UI compatibility
Compatibility check date
Search by keywords, location, distance, date, workplace, experience, employment type, company, industry, function, title, benefits, Easy Apply, verification, applicant count, network, and other visible filters.
Read job detailslinkedin.jobs.getLinkedIn UI compatibility
Compatibility check date
Read the complete job description, company, application method, and visible hiring team.
PeopleSearch peoplelinkedin.people.searchLinkedIn UI compatibility
Compatibility check date
Search by keywords, connection degree, hiring status, location, current or past company, title, school, industry, services, language, connections, and followers.
Read profileslinkedin.people.getLinkedIn UI compatibility
Compatibility check date
Read the complete visible profile or request selected sections such as About, experience, education, skills, projects, certifications, and recommendations.
CompaniesSearch companieslinkedin.companies.searchLinkedIn UI compatibility
Compatibility check date
Search by keywords, headquarters, industry, size, available jobs, and first-degree connections.
Read company detailslinkedin.companies.getLinkedIn UI compatibility
Compatibility check date
Read Overview and About information, including website, headquarters, size, type, founding year, and specialties.
PostsSearch postslinkedin.posts.searchLinkedIn UI compatibility
Compatibility check date
Search by keywords, date, content type, author, company, relationship, mentions, author industry, and other visible filters.
Read postslinkedin.posts.getLinkedIn UI compatibility
Compatibility check date
Read complete content, media, links, mentions, hashtags, reactions, and engagement.
Read discussionslinkedin.posts.comments.listLinkedIn UI compatibility
Compatibility check date
Read paginated comments, replies, attachments, and reactions.
Publish postslinkedin.posts.createLinkedIn UI compatibility
Compatibility check date
Publish supported personal text, link, image, video, document, poll, celebration, event, hiring, and expert-request posts.
Commentlinkedin.posts.commentLinkedIn UI compatibility
Compatibility check date
Add text, links, emoji, mentions, photos, or GIFs to posts.
Reactlinkedin.posts.reactLinkedIn UI compatibility
Compatibility check date
Add, change, or remove reactions on posts.
NetworkList connectionslinkedin.connections.listLinkedIn UI compatibility
Compatibility check date
Browse established first-degree connections with sorting and pagination.
Search connectionslinkedin.connections.searchLinkedIn UI compatibility
Compatibility check date
Search existing connections using applicable People filters.
List invitationslinkedin.invitations.listLinkedIn UI compatibility
Compatibility check date
Browse received and sent invitations using LinkedIn's visible filters.
Send invitationslinkedin.invitations.sendNot checkedSend connection requests with optional notes.
Accept invitationslinkedin.invitations.acceptNot checkedAccept incoming connection requests.
Ignore invitationslinkedin.invitations.ignoreNot checkedIgnore incoming connection requests.
MessagingSearch messageslinkedin.messaging.searchLinkedIn UI compatibility
Compatibility check date
Search by recipient or message text using inbox categories and filters.
Read conversationslinkedin.messaging.conversation.getLinkedIn UI compatibility
Compatibility check date
Read message history, replies, edits, reactions, and attachments.
Send messageslinkedin.messaging.sendLinkedIn UI compatibility
Compatibility check date
Send or reply in one-to-one conversations with text, links, emoji, files, images, and GIFs.
ServerCheck runtimelinkedin.server.statusLinkedIn UI compatibility
Compatibility check date
Inspect the shared runtime, queue, and active browser operation.
Check LinkedIn sessionlinkedin.session.statusLinkedIn UI compatibility
Compatibility check date
Inspect browser-profile, authentication, login, and pause state.
List capabilitieslinkedin.capabilities.listLinkedIn UI compatibility
Compatibility check date
Inspect available capabilities, versions, read/write effects, and required LinkedIn surfaces.

NOT CHECKED tools remain covered by the offline simulator on every pull request.

See the capability matrix for exact filters, supported formats, inputs, outputs, limits, and unsupported features.

📦 Installation

Claude Code
claude mcp add --scope user --transport stdio linkedin-mcp -- \
  uvx --from linkedin-mcp-local linkedin-mcp serve --transport stdio

Check it with claude mcp list. See the Claude Code MCP documentation.

Claude Desktop

Download for Claude Desktop

Download the .mcpb file, then open Settings → Extensions → Advanced settings → Install Extension. See Claude Desktop's extension documentation.

Codex and ChatGPT Desktop
codex mcp add linkedin-mcp -- \
  uvx --from linkedin-mcp-local linkedin-mcp serve --transport stdio

Check it with codex mcp list. Codex CLI, the Codex IDE extension, and ChatGPT Desktop share this local configuration. Restart the client after adding it. See the Codex MCP documentation.

VS Code and GitHub Copilot

Install in VS Code Install in VS Code Insiders

Or add this to .vscode/mcp.json:

{
  "servers": {
    "linkedin-mcp": {
      "command": "uvx",
      "args": ["--from", "linkedin-mcp-local", "linkedin-mcp", "serve", "--transport", "stdio"]
    }
  }
}

See the VS Code MCP documentation.

Cursor

Install in Cursor

For manual setup, open Cursor Settings → MCP → Add new MCP server, set the command to uvx, and set the arguments to --from linkedin-mcp-local linkedin-mcp serve --transport stdio. See the Cursor MCP documentation.

Gemini CLI

In ~/.gemini/settings.json, add a local server named linkedin-mcp under mcpServers with command uvx and arguments --from linkedin-mcp-local linkedin-mcp serve --transport stdio, then run gemini mcp list. See the Gemini CLI MCP documentation.

Windsurf

Open Settings → AI → Manage MCP Servers, or add a local server named linkedin-mcp to ~/.codeium/windsurf/mcp_config.json with command uvx and arguments --from linkedin-mcp-local linkedin-mcp serve --transport stdio. See the Windsurf MCP documentation.

Cline

Open MCP Servers → Configure, then add a local server named linkedin-mcp with command uvx and arguments --from linkedin-mcp-local linkedin-mcp serve --transport stdio. See the Cline MCP documentation.

Roo Code

Open Roo Code's MCP settings and add a local server named linkedin-mcp to the global file or .roo/mcp.json, using command uvx and arguments --from linkedin-mcp-local linkedin-mcp serve --transport stdio. See the Roo Code MCP documentation.

Zed

Add this to Zed settings:

{
  "context_servers": {
    "linkedin-mcp": {
      "command": "uvx",
      "args": ["--from", "linkedin-mcp-local", "linkedin-mcp", "serve", "--transport", "stdio"]
    }
  }
}

See the Zed MCP documentation.

Goose

Install in Goose

Or add a custom stdio extension with command uvx and arguments --from linkedin-mcp-local linkedin-mcp serve --transport stdio, or start one CLI session with:

goose session --with-extension \
  "uvx --from linkedin-mcp-local linkedin-mcp serve --transport stdio"

See the Goose documentation.

OpenCode

For OpenCode v2, add this to opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "servers": {
      "linkedin-mcp": {
        "type": "local",
        "command": ["uvx", "--from", "linkedin-mcp-local", "linkedin-mcp", "serve", "--transport", "stdio"]
      }
    }
  }
}

See the OpenCode MCP documentation.

JetBrains AI Assistant

Open Settings → Tools → AI Assistant → Model Context Protocol (MCP), click Add, set the command to uvx, and set the arguments to --from linkedin-mcp-local linkedin-mcp serve --transport stdio. See the JetBrains MCP documentation.

Continue

Create .continue/mcpServers/linkedin-mcp.json with a local server named linkedin-mcp, command uvx, and arguments --from linkedin-mcp-local linkedin-mcp serve --transport stdio. See the Continue MCP documentation.

Warp

Open Settings → AI → Manage MCP Servers → Add, name the server linkedin-mcp, set the command to uvx, and set the arguments to --from linkedin-mcp-local linkedin-mcp serve --transport stdio. See the Warp MCP documentation.

💡 Examples

Find jobs
Find remote software engineering jobs in India posted on LinkedIn this week with Easy Apply.
Research people
Find LinkedIn profiles for engineering managers at Stripe in India and show me their relevant experience.
Research companies
Find fintech companies in Bengaluru on LinkedIn with 51–200 employees and summarize each company.
Explore posts
Find recent LinkedIn posts about AI agents and summarize the most useful discussions.
Manage your network
Show my latest received connection requests on LinkedIn.
Send a LinkedIn connection request to <profile URL> with the note <note>.
Send messages
Send <message> on LinkedIn to <profile URL>.

🏗️ Architecture

[Claude | Codex | Cursor | ...]
               |
       stdio / loopback HTTP
               v
      [Typed MCP boundary]
               |
               v
       [Fair queue + pacing]
               |
      one operation at a time
               v
[Capability executor] ---> [Process-local calls, cursors, evidence]
               |
               v
      [Capability page objects]
               |
               v
[Browser manager: fresh page per call] <--> [Persistent auth profile]
               |
        visible web UI only
               v
           [LinkedIn]

Everything runs locally. There is no hosted backend, telemetry, database, external queue, LangGraph runtime, or credential service. Browser cookies live only in the local Playwright profile. The first client starts one shared local runtime; later clients attach to it, and fair scheduling gives each client a turn between complete tool calls. Operation state lasts only for that runtime. Read the full architecture and privacy policy.

🔒 Privacy Policy

The server has no maintainer-operated backend, analytics, advertising, or telemetry. LinkedIn receives normal visible-UI requests, and the invoking MCP client receives tool results under its own data policy; the project sends nothing to the maintainer. Read the complete privacy policy for processing, storage, sharing, retention, and deletion details.

🛡️ Safety

Use of this software is at your own risk. You are solely responsible for complying with LinkedIn's User Agreement, applicable laws, and third-party rights. LinkedIn may limit or restrict accounts that use prohibited automation. The maintainers do not authorize spam, unauthorized data collection, privacy violations, or circumvention of access controls.

  • Use only accounts and activity you are authorized to operate.
  • The server pauses on authentication expiry, checkpoints, restriction pages, permission failures, and configuration errors.
  • It does not implement CAPTCHA bypass, proxy rotation, fingerprint spoofing, credential harvesting, stealth plugins, or private LinkedIn endpoints.
  • Never commit or share the persistent browser profile or local assets.

See SECURITY.md and the security design.

📚 More documentation

❤️ Support the project

If LinkedIn MCP Server is useful to you:

🌐 Let's connect

Have feedback or an idea for LinkedIn MCP Server?

⚖️ License

Licensed under the Apache License 2.0.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.