Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

LinkedIn MCP Server

OCI · GHCR.IO/PRAKHARAGARWAL-DEV/LINKEDIN-MCP-SERVER:0.16.0

Find LinkedIn jobs and people, research companies, manage network, posts, and messages with MCP.

+9 this week 57 Trust /100

Last scanned (19 hours ago)

Scores higher than 97% of OCI servers

Category CRM and Sales

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: this image's dependency list comes from an SBOM its publisher attached, which nothing verifies, so we will not report it as a clean result. View diagnostics → Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this image's dependency list comes from an SBOM its publisher attached. It names packages and versions but not whether each is deprecated, still maintained or linked to its source, so there is nothing we can fairly grade.Unverified
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to prakharagarwal-dev/linkedin-mcp-server). View diagnostics → Pass
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 73 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability67
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 3830 tokens (~123/item across 31 items; 31 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management63
  • Stability observed for 19 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage76
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 17% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 8 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 32 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 16 Oct 26 +9
    • Stability: unverified → 0.60 ▲ functional
  • 28 Sept 26 +28
    • Injection markers: unverified → pass ▲ security
    • First check of Judged manipulation: pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • MCP protocol: unverified → pass ▲ functional
    • Tool coverage: unverified → 100 ▲ functional
    • First check of Destructive annotations: 100 functional
    • Schema quality: fair → good functional
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Sept 26 +10
    • Provenance: fail → pass ▲ security
    • The attested source repository moved: prakharagarwal-dev/linkedin-mcp-server security
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 11 Aug 26 0
    • Stability: Stability not yet verified: this package installed, but its server did not start, so we have no schema to compare. security
    • Capabilities: pass → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Schema quality: Schema quality not yet verified: this package installed, but its server did not start, so we have no schema to assess. functional
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 8 Aug 26 0
    • Security disclosure: fail → pass ▲ functional
  • 5 Aug 26 0
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 100 ▲ functional
    • MCP protocol: unverified → pass ▲ functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: fair functional
    • First check of Schema quality: fail functional
    • First check of Tool coverage: 17 functional
    • First check of Tool coverage: 100 functional
  • 4 Aug 26 0

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 17 Oct 2026 · Analysed oci/ghcr.io/prakharagarwal-dev/linkedin-mcp-server:0.16.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem oci
Reason Verified
Discovered via OCI referrers API
Source repo prakharagarwal-dev/linkedin-mcp-server
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/prakharagarwal-dev/linkedin-mcp-server/.github/workflows/publish.yml@refs/tags/v0.16.0
Rekor log index 2340518763
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha256:270d766b7aaf9b85a8014b08cb3dd92bebf7a21b99b85b8aa299f569bd176b9d

Background: How many MCP packages publish verified provenance →

Vulnerabilities 46 ungraded findings

From the publisher's SBOM, not graded. These advisories match packages listed in the SBOM the publisher attached to this image. A publisher naming a vulnerable package in their own image is credible, so we show them. Nothing verifies that SBOM, though, so the Known CVEs signal does not grade the image from it.

ID CVE Severity Vector Fix available
GHSA-g6cj-pr64-35w5 CVE-2026-69247 high yes
GHSA-jwv3-5hgf-82ww CVE-2026-69249 high yes
GHSA-m2h6-j472-rp4c CVE-2026-69248 medium yes
PYSEC-2026-3552 CVE-2026-69247 none yes
PYSEC-2026-3553 CVE-2026-69249 none yes
PYSEC-2026-3554 CVE-2026-69248 none yes
GHSA-84m7-p3x7-pcfv CVE-2026-59951 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-qwm4-qh6w-59xr CVE-2026-13346 medium yes
PYSEC-2026-3721 CVE-2026-13346 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N yes
GHSA-2gx3-rcp4-g85q CVE-2026-101917 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
GHSA-42vr-xj54-vc7v CVE-2026-101918 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
GHSA-8wjv-2p76-3863 CVE-2026-102265 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
GHSA-9j54-fg26-wv3r CVE-2026-102266 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
GHSA-9v7f-9g4p-ffgj CVE-2026-102267 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
GHSA-ffc3-869f-jxw9 CVE-2026-102268 critical CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N yes
GHSA-gvp8-978c-rx2q CVE-2026-103001 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N no
GHSA-hxm8-2xgr-2p9m CVE-2026-102269 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N yes
GHSA-jwrc-g2q2-pq5p CVE-2026-102270 medium CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H yes
GHSA-p4g4-x82p-q773 CVE-2026-102271 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
GHSA-r6x4-923q-g947 CVE-2026-102272 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
GHSA-w2cx-738m-mc7w CVE-2026-102273 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
GHSA-w6j9-cwv2-h6wq CVE-2026-102274 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H yes
GHSA-x33g-cr3x-6449 CVE-2026-102275 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N yes
PYSEC-2026-4140 CVE-2026-101917 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
PYSEC-2026-4141 CVE-2026-101918 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
PYSEC-2026-4142 CVE-2026-102265 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L yes
PYSEC-2026-4143 CVE-2026-102266 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
PYSEC-2026-4144 CVE-2026-102267 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
PYSEC-2026-4145 CVE-2026-102268 critical CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N yes
PYSEC-2026-4146 CVE-2026-103001 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N no
PYSEC-2026-4147 CVE-2026-102269 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N yes
PYSEC-2026-4148 CVE-2026-102270 medium CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H yes
PYSEC-2026-4149 CVE-2026-102271 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
PYSEC-2026-4150 CVE-2026-102272 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
PYSEC-2026-4151 CVE-2026-102273 high CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N yes
PYSEC-2026-4152 CVE-2026-102274 medium CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H yes
PYSEC-2026-4183 CVE-2026-102275 high CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N yes
GHSA-4gg8-gxpx-9rph medium yes
GHSA-94p9-xgh2-xp45 CVE-2026-102930 high yes
GHSA-9h9j-4vrj-gf7g CVE-2026-102938 medium yes
GHSA-p58f-9548-mpm2 CVE-2026-102925 high CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H yes
GHSA-x78j-v8h9-3j2q CVE-2026-102937 high yes
PYSEC-2026-4011 CVE-2026-102930 none yes
PYSEC-2026-4012 CVE-2026-102938 none yes
PYSEC-2026-4013 CVE-2026-102925 high CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H yes
PYSEC-2026-4014 CVE-2026-102937 none yes

Background: What a vulnerability scan can and cannot prove →

MCP tools · 31 exposed · ~3,708 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
linkedin.capabilities.list ~21

List installed capabilities and whether runtime policy enables each one.

Input schema present but exposes no named parameters.

NameTypeReqDescription
capabilitiesarrayyes–

No examples provided.

linkedin.companies.get ~104

Read an exact visible LinkedIn Company by public slug. Always captures exactly the Company overview and About page, including identity, tagline, description, website, industry, company-size range, associated-member and follower counts, headquarters, organization type, founding year, specialties, and exact field evidence.

NameTypeReqDescription
company_slugstringyesPublic LinkedIn company slug from /company/{company_slug}/.
context_idstringyes–
request_idstringyes–
NameTypeReqDescription
company–yes–
context_idstringyes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.companies.search ~126

Search visible LinkedIn Company results using LinkedIn's complete current Company-search filter surface: keywords, headquarters location, industry, company-size range, visible job listings, and first-degree connection presence. Exact names are resolved only through visible filter controls; callers may alternatively provide stable facet IDs. Returns one cursor page.

NameTypeReqDescription
context_idstringyes–
cursor–––
filters–––
max_results–––
page_sizeinteger–Number of unique items to return in this page.
query–––
request_idstringyes–
NameTypeReqDescription
companiesarrayyes–
context_idstringyes–
coverage–yes–
pagination–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.connections.list ~88

List one cursor page of the configured account's visible first-degree connection inventory in LinkedIn's selected visible sort order. This tool does not search.

NameTypeReqDescription
context_idstringyes–
cursor–––
max_results–––
page_sizeinteger–Number of unique items to return in this page.
request_idstringyes–
sort_by–––
NameTypeReqDescription
connectionsarrayyes–
context_idstringyes–
coverage–yes–
pagination–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.connections.search ~163

Search only the configured account's established first-degree connections through LinkedIn's current People surface. The server always enforces first degree. Supports the remaining current visible People filters: any/specific-title hiring, locations, current/past companies, connections-of, followers-of, schools, industries, profile languages, service categories, and first-name, last-name, title, company, and school keywords. Use linkedin.people.search for broader second-, third-plus-, or mixed-degree discovery.

NameTypeReqDescription
context_idstringyes–
cursor–––
filters–––
max_results–––
page_sizeinteger–Number of unique items to return in this page.
query–––
request_idstringyes–
title_keywords–––
NameTypeReqDescription
context_idstringyes–
coverage–yes–
pagination–yes–
peoplearrayyes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.invitations.accept.execute ~166

Account-changing action. Invoke only when the MCP client's configured approval policy authorizes this exact execute tool. Interactive confirmation is the safe default; an explicit durable per-tool approval may authorize unattended execution. Accept exactly one immutable incoming-request draft after the server verifies the preview, payload hash, draft expiry, idempotency, exact profile identity, and current request controls; then verify those controls are absent and the exact profile visibly shows a first-degree connection.

NameTypeReqDescription
action_idstringyesImmutable action ID returned by the matching prepare tool.
approval_preview–yes–
context_idstringyes–
idempotency_keystringyes–
payload_hashstringyesExact payload hash returned by the matching prepare tool.
request_idstringyes–
NameTypeReqDescription
context_idstringyes–
replayedboolean––
request_idstringyes–
result–yes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.invitations.accept.prepare ~62

Revalidate the exact member profile's paired visible incoming-request controls and create an immutable acceptance draft. This does not accept the request.

NameTypeReqDescription
context_idstringyes–
profile_slugstringyes–
request_idstringyes–
NameTypeReqDescription
approval_preview–yes–
context_idstringyes–
draft–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.invitations.ignore.execute ~162

Account-changing action. Invoke only when the MCP client's configured approval policy authorizes this exact execute tool. Interactive confirmation is the safe default; an explicit durable per-tool approval may authorize unattended execution. Ignore exactly one immutable incoming-request draft after the server verifies the preview, payload hash, draft expiry, idempotency, exact profile identity, and current request controls; then verify those controls are absent on a fresh exact-profile read.

NameTypeReqDescription
action_idstringyesImmutable action ID returned by the matching prepare tool.
approval_preview–yes–
context_idstringyes–
idempotency_keystringyes–
payload_hashstringyesExact payload hash returned by the matching prepare tool.
request_idstringyes–
NameTypeReqDescription
context_idstringyes–
replayedboolean––
request_idstringyes–
result–yes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.invitations.ignore.prepare ~62

Revalidate the exact member profile's current visible incoming connection request and create an immutable ignore draft. This does not ignore the request.

NameTypeReqDescription
context_idstringyes–
profile_slugstringyes–
request_idstringyes–
NameTypeReqDescription
approval_preview–yes–
context_idstringyes–
draft–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.invitations.list ~135

Read one live cursor page from the current received or sent invitation inventory, including the deduplicated union of LinkedIn's current Focused, Other, Verified, Mutual Connections, Your Company, and Your School received views when invitation_filter is all. Continuations rescan a bounded live prefix, suppress stable identities already returned, and claim completion only after the selected visible counts reconcile.

NameTypeReqDescription
context_idstringyes–
cursor–––
direction–––
invitation_filter–––
page_sizeinteger–Number of unique items to return in this page.
request_idstringyes–
NameTypeReqDescription
context_idstringyes–
coverage–yes–
invitationsarrayyes–
pagination–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.invitations.send.execute ~186

Account-changing action. Invoke only when the MCP client's configured approval policy authorizes this exact execute tool. Interactive confirmation is the safe default; an explicit durable per-tool approval may authorize unattended execution. Send exactly one immutable invitation draft after the server verifies the exact preview, payload hash, draft expiry, idempotency key, target identity, and actionable Send control. After the click, one fresh exact-profile read is the complete postcondition: Pending is verified success and Connect is verified LinkedIn failure. An unreadable or ambiguous fresh profile remains uncertain.

NameTypeReqDescription
action_idstringyesImmutable action ID returned by the matching prepare tool.
approval_preview–yes–
context_idstringyes–
idempotency_keystringyes–
payload_hashstringyesExact payload hash returned by the matching prepare tool.
request_idstringyes–
NameTypeReqDescription
context_idstringyes–
replayedboolean––
request_idstringyes–
result–yes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.invitations.send.prepare ~80

Inspect one exact visible profile and create an immutable invitation draft. This does not send the invitation. An optional personalized note is limited to 200 characters and returned with the exact client-approval preview.

NameTypeReqDescription
context_idstringyes–
note–––
profile_slugstringyes–
request_idstringyes–
NameTypeReqDescription
approval_preview–yes–
context_idstringyes–
draft–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.jobs.get ~65

Read one current visible LinkedIn job by numeric ID, including its primary header metadata, application method, hiring-team identities, and fully expanded About the job description.

NameTypeReqDescription
context_idstringyes–
job_idstringyes–
request_idstringyes–
NameTypeReqDescription
context_idstringyes–
job–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.jobs.search ~170

Search current visible LinkedIn Jobs pages with optional keywords and typed location, Date posted, sorting, distance, workplace, experience, job type, company, industry, function, title, benefit, commitment, Easy Apply, verification, applicant-count, network, and Fair Chance filters. Hydrates LinkedIn's virtualized result cards and returns one deduplicated cursor page.

NameTypeReqDescription
context_idstringyes–
cursor–––
filters–––
freshness_hours––Date posted: 24, 168 (past week), 720 (past month), or null for Any time.
location–––
max_results–––
page_sizeinteger–Number of unique items to return in this page.
query–––
request_idstringyes–
NameTypeReqDescription
context_idstringyes–
coverage–yes–
jobsarrayyes–
pagination–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.messaging.conversation.get ~119

Traverse LinkedIn's reverse-virtualized visible history and read both incoming and outgoing messages, attachments, replies, edits, and reaction summaries by exact profile slug, visible conversation ID, or a conversation_ref returned by messaging.search. Returns explicit history completeness and truncation evidence. Opening a conversation may cause LinkedIn to mark it seen.

NameTypeReqDescription
context_idstringyes–
conversation_id–––
conversation_ref–––
max_messagesinteger––
profile_slug–––
request_idstringyes–
NameTypeReqDescription
context_idstringyes–
conversation–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.messaging.message.execute ~166

Account-changing action. Invoke only when the MCP client's configured approval policy authorizes this exact execute tool. Interactive confirmation is the safe default; an explicit durable per-tool approval may authorize unattended execution. Send exactly one immutable text/file message or immediate-send GIF, optionally as an exact visible reply, after the server verifies the preview, payload and asset hashes, draft expiry, recipient, idempotency, and exact visible outgoing postcondition in the same conversation surface.

NameTypeReqDescription
action_idstringyesImmutable action ID returned by the matching prepare tool.
approval_preview–yes–
context_idstringyes–
idempotency_keystringyes–
payload_hashstringyesExact payload hash returned by the matching prepare tool.
request_idstringyes–
NameTypeReqDescription
context_idstringyes–
replayedboolean––
request_idstringyes–
result–yes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.messaging.message.prepare ~165

Open one visible one-to-one standard conversation, using the exact profile's Message button for profile targets and accepting its recipient-bound compact pane or following its exact visible Messaging href in the same operation page, then create an immutable message draft containing exact text/emoji, hash-locked current desktop file attachments, one exact KLIPY GIF title, and optionally an exact reply-to message_ref. This does not send the message. Group chats, message requests, and paid InMail are excluded.

NameTypeReqDescription
attachmentsarray––
context_idstringyes–
conversation_id–––
conversation_ref–––
gif–––
message–––
profile_slug–––
reply_to_message_ref–––
request_idstringyes–
NameTypeReqDescription
approval_preview–yes–
context_idstringyes–
draft–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.messaging.search ~126

Search the current desktop inbox by recipient or message keywords, optionally within Focused, Other, Archived, or Spam and exactly one of Jobs, Unread, Connections, InMail, or Starred. At least one search criterion is required. Results are cursor-paginated current conversation cards.

NameTypeReqDescription
category–––
context_idstringyes–
cursor–––
filter–––
max_results–––
page_sizeinteger–Number of unique items to return in this page.
query–––
request_idstringyes–
NameTypeReqDescription
context_idstringyes–
conversationsarrayyes–
coverage–yes–
pagination–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.people.get ~124

Read a visible LinkedIn member profile directly by validated public profile slug. Returns typed introduction, About, experience, education, every visible profile section owned by the member, full retained text, field evidence, and bounded section-page coverage.

NameTypeReqDescription
context_idstringyes–
profile_slugstringyesPublic LinkedIn profile slug from linkedin.com/in/{profile_slug}.
request_idstringyes–
sectionsarray–Visible profile sections to return. Use ['all'] for the complete server-bounded read; the canonical overview is always captured for identity.
NameTypeReqDescription
context_idstringyes–
person–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.people.search ~147

Search visible LinkedIn People results using natural-language or Boolean keywords, connection degree, any/specific-title hiring, location, current/past company, connections-of, followers-of, school, industry, profile-language, service-category, and exact first-name, last-name, title, company, and school keyword filters. Returns one cursor page; name-to-ID resolution and traversal safety bounds remain private.

NameTypeReqDescription
context_idstringyes–
cursor–––
filters–––
max_results–––
page_sizeinteger–Number of unique items to return in this page.
query–––
request_idstringyes–
title_keywords–––
NameTypeReqDescription
context_idstringyes–
coverage–yes–
pagination–yes–
peoplearrayyes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.posts.comment.execute ~151

Account-changing action. Invoke only when the MCP client's configured approval policy authorizes this exact execute tool. Interactive confirmation is the safe default; an explicit durable per-tool approval may authorize unattended execution. Submit exactly one immutable personal-member comment or reply after the server verifies the preview, actor, target author, exact parent, payload, local asset hash, expiry, and idempotency.

NameTypeReqDescription
action_idstringyesImmutable action ID returned by the matching prepare tool.
approval_preview–yes–
context_idstringyes–
idempotency_keystringyes–
payload_hashstringyesExact payload hash returned by the matching prepare tool.
request_idstringyes–
NameTypeReqDescription
context_idstringyes–
replayedboolean––
request_idstringyes–
result–yes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.posts.comment.prepare ~107

Inspect one exact visible post or parent comment and prepare an immutable personal-member comment or reply. Supports text, links, emoji, exact member/company mentions, one local hash-locked photo, or one exact visible GIF result. This tool never submits.

NameTypeReqDescription
attachment–––
context_idstringyes–
mentionsarray––
parent_comment_ref–––
post_refstringyes–
request_idstringyes–
text–––
NameTypeReqDescription
approval_preview–yes–
context_idstringyes–
draft–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.posts.comments.list ~122

Read one cursor page of visible top-level comments and bounded nested replies, with relevant/recent ordering, stable comment references, exact author identities, visible text, timestamps, reaction/reply counts, and truncation coverage.

NameTypeReqDescription
context_idstringyes–
cursor–––
max_comments–––
max_replies_per_commentinteger––
page_sizeinteger–Number of unique items to return in this page.
post_refstringyes–
request_idstringyes–
sort_by–––
NameTypeReqDescription
context_idstringyes–
coverage–yes–
pagination–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––
threadsarrayyes–

No examples provided.

linkedin.posts.create.execute ~159

Account-changing action. Invoke only when the MCP client's configured approval policy authorizes this exact execute tool. Interactive confirmation is the safe default; an explicit durable per-tool approval may authorize unattended execution. Publish or schedule exactly one immutable personal-post draft after the server verifies the exact preview, payload and asset hashes, actor, expiry, options, and global idempotency key. An interrupted final action is never retried automatically.

NameTypeReqDescription
action_idstringyesImmutable action ID returned by the matching prepare tool.
approval_preview–yes–
context_idstringyes–
idempotency_keystringyes–
payload_hashstringyesExact payload hash returned by the matching prepare tool.
request_idstringyes–
NameTypeReqDescription
context_idstringyes–
replayedboolean––
request_idstringyes–
result–yes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.posts.create.prepare ~187

Inspect the active personal member composer and prepare one immutable post. Supports typed text/link, up to 20 edited photos with alt text and member/company tags, video with thumbnail/captions, document, poll, celebration, event, existing-job hiring, and expert-request content. Exact audience/group, comment control, brand partnership, eligible collaborators, mentions, local asset hashes, and optional schedule are captured. The content discriminator is mode, not kind. This tool never publishes and never publishes as a company Page.

NameTypeReqDescription
audience–––
brand_partnershipboolean––
collaboratorsarray––
comment_control–––
content–yesTyped post content discriminated by the required mode field; use mode, not kind.
context_idstringyes–
group_target–––
request_idstringyes–
scheduled_at–––
NameTypeReqDescription
approval_preview–yes–
context_idstringyes–
draft–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.posts.get ~124

Read one exact visible LinkedIn post by stable activity, share, or ugc-post reference. Returns typed author/header data, fully expanded text, scoped links, mentions and hashtags, current image/video/document/link-card/poll details, viewer reaction and engagement counts, visibility, timestamps, immutable field evidence, and bounded completeness coverage. Reposts retain the wrapper and read the visibly linked original as one additional bounded page.

NameTypeReqDescription
context_idstringyes–
post_refstringyesStable post reference returned by LinkedIn post search.
request_idstringyes–
NameTypeReqDescription
context_idstringyes–
post–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.posts.reaction.execute ~152

Account-changing action. Invoke only when the MCP client's configured approval policy authorizes this exact execute tool. Interactive confirmation is the safe default; an explicit durable per-tool approval may authorize unattended execution. Set, change, remove, or safely no-op one prepared exact reaction state after the server verifies the preview, actor, target author, prior state, expiry, and idempotency.

NameTypeReqDescription
action_idstringyesImmutable action ID returned by the matching prepare tool.
approval_preview–yes–
context_idstringyes–
idempotency_keystringyes–
payload_hashstringyesExact payload hash returned by the matching prepare tool.
request_idstringyes–
NameTypeReqDescription
context_idstringyes–
replayedboolean––
request_idstringyes–
result–yes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.posts.reaction.prepare ~89

Inspect the exact current reaction state on one visible post or comment and prepare an immutable target state: none, like, celebrate, support, love, insightful, or funny. This tool never changes the reaction.

NameTypeReqDescription
comment_ref–––
context_idstringyes–
desired_reaction–yes–
post_refstringyes–
request_idstringyes–
NameTypeReqDescription
approval_preview–yes–
context_idstringyes–
draft–yes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.posts.search ~142

Search visible LinkedIn content using keywords plus sort, date, content type, From-member/company, posted-by relationship, mentioning-member/company, author-industry/company, and Author Keywords filters. Content type follows LinkedIn's current single-choice Videos, Images, Job posts, Live videos, or Documents control. Names resolve only through exact visible choices. Returns one cursor page while browser traversal remains privately bounded.

NameTypeReqDescription
context_idstringyes–
cursor–––
filters–––
max_results–––
page_sizeinteger–Number of unique items to return in this page.
query–––
request_idstringyes–
NameTypeReqDescription
context_idstringyes–
coverage–yes–
pagination–yes–
postsarrayyes–
replayedboolean––
request_idstringyes–
sourcesarrayyes–
statusstring––

No examples provided.

linkedin.server.status ~18

Return non-secret server configuration and readiness metadata.

Input schema present but exposes no named parameters.

NameTypeReqDescription
accepting_callsboolean––
active_browser_operationboolean––
active_capability–––
connected_clientsinteger––
namestring––
operation_statestring––
queue_depthinteger––
queued_clientsinteger––
runtime_modelstring––
transportstringyes–
versionstringyes–

No examples provided.

linkedin.session.status ~20

Return non-secret browser-session state for the configured account.

Input schema present but exposes no named parameters.

NameTypeReqDescription
account_idstringyes–
authentication_state–yes–
automatic_login_enabledbooleanyes–
browser_setup_state–yes–
browser_startedbooleanyes–
login_browser_openbooleanyes–
pause_reason–––
pausedbooleanyes–
profile_presentbooleanyes–
status_message–––

No examples provided.

Install

How do I install the LinkedIn MCP Server server?

LinkedIn MCP Server runs locally as a container image, launched with docker run --rm -i ghcr.io/prakharagarwal-dev/linkedin-mcp-server:0.16.0. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · ghcr.io/prakharagarwal-dev/linkedin-mcp-server:0.16.0

# add to Claude Code
claude mcp add prakharagarwal-dev-linkedin-mcp-server -- docker run --rm -i ghcr.io/prakharagarwal-dev/linkedin-mcp-server:0.16.0
Common questions

What is the LinkedIn MCP Server server?

LinkedIn MCP Server is listed in the public MCP registry as io.github.prakharagarwal-dev/linkedin-mcp-server. Find LinkedIn jobs and people, research companies, manage network, posts, and messages with MCP. This page covers its container image (ghcr.io/prakharagarwal-dev/linkedin-mcp-server:0.16.0).

Is the LinkedIn MCP Server server safe to use?

LinkedIn MCP Server scores 57 out of 100 on VerifyMCP. The SBOM its publisher attached lists packages with 46 known advisories as of 17 October 2026. We do not grade that SBOM, as nothing verifies it. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the LinkedIn MCP Server server expose?

LinkedIn MCP Server exposes 31 tools: linkedin.server.status, linkedin.capabilities.list, linkedin.session.status, linkedin.jobs.search, linkedin.jobs.get, and 26 more. Their descriptions and schemas cost roughly 3,708 tokens of context every time the server is loaded.

Is the LinkedIn MCP Server server still maintained?

LinkedIn MCP Server is still listed as active in the MCP registry. We last reached this channel on 17 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the LinkedIn MCP Server server under?

LinkedIn MCP Server declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.