Server facts
MCP Server for LinkedIn
Project
- Author
- stickerdaniel
- License
- Apache-2.0
- Category
- Communication
Tech
- Runtime / language
- pythonPython
- Transports
- stdio
- Remote available
- No
- Authentication
- Not specified
Activity
- GitHub stars
- 3,897
- Last commit
- Data as of
Tags
- Browser Sessions
- Job Search
- Profiles
Overview
MCP Server for LinkedIn gives assistants access to LinkedIn using the browser session of the person running it. Rather than requiring a separate hosted LinkedIn API, it operates locally and works with an authenticated account. Its tools cover personal and company profiles, employee discovery, job searches, and individual job postings. Profile requests can select particular sections, which helps focus retrieval on the experience, education, skills, or other information needed for a task. This makes it relevant to professional research and job exploration workflows.
The same integration can inspect the signed-in user's feed, list inbox conversations, read a thread, and search messages. The README also lists connection requests and message sending, but associates those actions with open issue references; message sending requires confirmation. Setup uses uvx, with a managed Chromium browser prepared in the background. Authentication can reuse a compatible local browser session or open a login window. Initial requests may need to wait for setup or sign-in to finish. Both stdio and Streamable HTTP are documented, while a single process queues tool requests to protect its shared session. This is an independent community integration, not an authorized LinkedIn or Microsoft product.
Install & configure
Requirements
- uv
- A LinkedIn account and authenticated browser session
- An MCP-compatible client
uvx mcp-server-linkedin@latestThe README launches the local server with uvx. Browser preparation happens automatically; first use may require sign-in. Streamable HTTP is also documented.
Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"linkedin-mcp-server": {
"command": "uvx",
"args": [
"mcp-server-linkedin@latest"
],
"env": {
"UV_HTTP_TIMEOUT": "<uv package download timeout in seconds>"
}
}
}
}Config file · Project: .cursor/mcp.json
User: ~/.cursor/mcp.json
The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"linkedin-mcp-server": {
"command": "uvx",
"args": [
"mcp-server-linkedin@latest"
],
"env": {
"UV_HTTP_TIMEOUT": "<uv package download timeout in seconds>"
}
}
}
}Config file · Workspace: .vscode/mcp.json
For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.
{
"servers": {
"linkedin-mcp-server": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-server-linkedin@latest"
],
"env": {
"UV_HTTP_TIMEOUT": "<uv package download timeout in seconds>"
}
}
}
}Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json
Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"linkedin-mcp-server": {
"command": "uvx",
"args": [
"mcp-server-linkedin@latest"
],
"env": {
"UV_HTTP_TIMEOUT": "<uv package download timeout in seconds>"
}
}
}
}Config file · Project scope: .mcp.json at the repository root
The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"linkedin-mcp-server": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-server-linkedin@latest"
],
"env": {
"UV_HTTP_TIMEOUT": "<uv package download timeout in seconds>"
}
}
}
}Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Tools
Source: repository README. Tool descriptions are a documented snapshot, not a live capability check.
| Tool | What it does |
|---|---|
| get_person_profile | Read selected sections of a LinkedIn member profile. |
| get_my_profile | Read chosen sections of the signed-in account's profile. |
| connect_with_person | Request a connection or accept one, optionally including a note; the README links known issues. |
| get_sidebar_profiles | Collect recommended profile links from a member's sidebar. |
| get_inbox | List the account's recent messaging threads. |
| get_conversation | Read a thread identified by username or conversation ID. |
| search_conversations | Find conversations containing a keyword. |
| send_message | Send a message after confirmation; the README links known issues. |
| get_company_profile | Read company information and selected company sections. |
| get_company_posts | Retrieve recent updates from a company feed. |
| search_companies | Find companies matching keywords. |
| get_company_employees | Explore a company's people page with an optional keyword filter. |
| search_jobs | Find job postings using keywords and location criteria. |
| search_people | Find members by keywords, location, connection distance, or current employer. |
| get_job_details | Inspect the information in a particular job listing. |
| get_feed | Read recent posts in the authenticated home feed. |
| close_session | Shut down the browser session and release its resources. |
Names, permissions, and defaults can change. Check the current upstream documentation before granting access.
Use cases
- Research selected sections of a professional profile.
- Find job listings by keyword and location.
- Review a company profile, employees, and recent posts.
- Read inbox threads before drafting a response.
Strengths
- Uses your existing authenticated browser session.
- Supports section-specific profile retrieval and multiple search types.
- Documents local stdio and Streamable HTTP operation.
Limitations
- Requires a working LinkedIn session and may need manual login or CAPTCHA handling.
- Requests within one server process run sequentially.
- Connection and message actions have issue references in the README.
Frequently asked questions
Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.