linkedin-mcp-server
Open-source MCP server for LinkedIn. Give Claude and any MCP-compatible AI agent access to profiles, companies, jobs, and messages.
How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.
| Tool | Risk | Side effects | Approval |
|---|---|---|---|
| search_conversations Search messages by keyword. | read | false | unknown |
| connect_with_person Send a LinkedIn connection request or accept an incoming one.
The tool is annotated with destructiveHint so MCP clients will
prompt for user confirmation before execution. | unknown | unknown | unknown |
| get_company_posts Get recent posts from a company's LinkedIn feed. | read | false | unknown |
| get_sidebar_profiles Get profile links from sidebar recommendation sections on a LinkedIn profile page.
Extracts profiles from "More profiles for you", "Explore premium profiles",
and "People you may know" sidebar sections. Follows "Show all" links to
return the full list from each section. Sections that redirect to
linkedin.com/premium are skipped. | read | false | unknown |
| search_companies Search for companies on LinkedIn. | read | false | unknown |
| get_inbox List recent conversations from the LinkedIn messaging inbox. | read | false | unknown |
| get_feed Get posts from the authenticated user's LinkedIn feed. | read | false | unknown |
| get_company_profile Get a specific company's LinkedIn profile. | read | false | unknown |
| get_my_profile Get the authenticated user's own LinkedIn profile.
Navigates to /in/me/ and resolves the redirect to obtain the real
username before scraping, so the url field in the result is the actual
profile URL (e.g. linkedin.com/in/johndoe/) rather than /in/me/. | read | false | unknown |
| get_job_details Get job details for a specific job posting on LinkedIn. | read | false | unknown |
| close_session Close the current browser session and clean up resources. | unknown | unknown | unknown |
| send_message Send a message to a LinkedIn user.
The recipient must be directly messageable from the profile page. This is a
write operation when confirm_send is True. | write | true | unknown |
| get_person_profile Get a specific person's LinkedIn profile. | read | false | unknown |
| get_conversation Read a specific messaging conversation.
Provide either linkedin_username or thread_id to identify the conversation.
When looked up by linkedin_username, resolution searches the messaging
inbox for the participant's display name and click-visits every
matching row to capture its thread ID — LinkedIn's sidebar has no
anchor hrefs or thread-id attributes, so this is the only available
path. Each visit selects the row in the LinkedIn UI and may mark it
as read. Pass thread_id directly to skip this enumeration. | read | false | unknown |
| get_saved_jobs List job postings saved by the authenticated LinkedIn user.
Returns job_ids that can be passed to get_job_details for full info. | read | false | unknown |
| search_people Search for people on LinkedIn. | read | false | unknown |
| search_posts Search LinkedIn posts/content globally by keyword (the "Posts" tab).
Use this to catch informal hiring posts ("we're hiring", "Buscamos
...", "estamos contratando", "join our team") that often appear before
a formal job listing exists. This is global content search, distinct
from get_feed (your own home feed) and get_company_posts (one
company's page). | read | false | unknown |
| get_company_employees List employees at a company from the LinkedIn /people/ page, including
the demographics aggregate that this view exposes: where employees
live, where they studied, and a function breakdown (Engineering, Sales,
Operations, etc.). The demographics are unique to this tool.
For filtered search by network degree (1st/2nd/3rd) or location, prefer
search_people with current_company set to the company URN id. That path
also returns more result pages than the /people/ tab.
The optional keywords filter narrows results by name, title, or skill.
company_name must be the exact LinkedIn URL slug (the path segment after
/company/), not the display name. LinkedIn assigns unique slugs and the
display name often does not match. For example, the AI lab Anthropic
lives at /company/anthropicresearch/, not /company/anthropic/. If you
are unsure of the slug, call search_companies first and pick the slug
from the returned references. | read | false | unknown |
| search_jobs Search for jobs on LinkedIn.
Returns job_ids that can be passed to get_job_details for full info. | read | false | unknown |
- repohttps://github.com/stickerdaniel/linkedin-mcp-server
- licenseApache-2.0
- adoption3128 stars · 543 forks
The access this server can exercise, inferred from its verified tools — not a declared OAuth scope.
Add the “as seen on MCPExplorer” badge to your README.
This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.
Explore loadouts →