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

LinkedIn MCP Server

OCI · GHCR.IO/PRAKHARAGARWAL-DEV/LINKEDIN-MCP-SERVER:0.15.0 · SCANNED AUG 3

Typed, policy-enforced local MCP capabilities over LinkedIn's visible web UI.

29 Trust /100
Trust breakdown (6 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 →

Supply Chain Security0
  • Malware scan not yet available for this package.Unverified
  • CVE data not yet available for this package.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency-health data not yet available.Unverified
Provenance & Transparency45
Schema Quality & AI Usability39
  • AI-judged instruction clarity (poor).Fail
  • Context-footprint check failed: tool/resource definitions use about 3666 tokens (~118/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 Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
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
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 2 categories

Categories scored 0 because we could not verify them: 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.

Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

oci · ghcr.io/prakharagarwal-dev/linkedin-mcp-server:0.15.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.15.0
# add to Codex CLI
codex mcp add prakharagarwal-dev-linkedin-mcp-server -- docker run --rm -i ghcr.io/prakharagarwal-dev/linkedin-mcp-server:0.15.0
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "prakharagarwal-dev-linkedin-mcp-server": {
      "type": "local",
      "command": [
        "docker",
        "run",
        "--rm",
        "-i",
        "ghcr.io/prakharagarwal-dev/linkedin-mcp-server:0.15.0"
      ],
      "enabled": true
    }
  }
}
# ~/.hermes/config.yaml
mcp_servers:
  prakharagarwal-dev-linkedin-mcp-server:
    command: "docker"
    args: ["run", "--rm", "-i", "ghcr.io/prakharagarwal-dev/linkedin-mcp-server:0.15.0"]
// mcp.json
{
  "mcpServers": {
    "prakharagarwal-dev-linkedin-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/prakharagarwal-dev/linkedin-mcp-server:0.15.0"
      ]
    }
  }
}
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.

  • 3 Aug 26 +20
    • 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 Tool coverage: 100 functional
    • First check of Tool coverage: 17 functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: poor functional
    • First check of Schema quality: fail functional
  • 2 Aug 26 9

    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 3 Aug 2026 · Analysed oci/ghcr.io/prakharagarwal-dev/linkedin-mcp-server:0.15.0

Provenance none

Ecosystem: oci · Outcome: none

Reason: no_attestation

MCP tools — 31 exposed · ~3,579 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.

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
companyyes
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_sizeintegerNumber of unique items to return in this page.
query
request_idstringyes
NameTypeReqDescription
companiesarrayyes
context_idstringyes
coverageyes
paginationyes
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_sizeintegerNumber of unique items to return in this page.
request_idstringyes
sort_by
NameTypeReqDescription
connectionsarrayyes
context_idstringyes
coverageyes
paginationyes
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_sizeintegerNumber of unique items to return in this page.
query
request_idstringyes
title_keywords
NameTypeReqDescription
context_idstringyes
coverageyes
paginationyes
peoplearrayyes
replayedboolean
request_idstringyes
sourcesarrayyes
statusstring

No examples provided.

linkedin.invitations.accept.execute ~150

Destructive account action. Codex must show native user confirmation using the supplied approval_preview before invoking this tool. 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_previewyes
context_idstringyes
idempotency_keystringyes
payload_hashstringyesExact payload hash returned by the matching prepare tool.
request_idstringyes
NameTypeReqDescription
context_idstringyes
replayedboolean
request_idstringyes
resultyes
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_previewyes
context_idstringyes
draftyes
replayedboolean
request_idstringyes
sourcesarrayyes
statusstring

No examples provided.

linkedin.invitations.ignore.execute ~146

Destructive account action. Codex must show native user confirmation using the supplied approval_preview before invoking this tool. 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_previewyes
context_idstringyes
idempotency_keystringyes
payload_hashstringyesExact payload hash returned by the matching prepare tool.
request_idstringyes
NameTypeReqDescription
context_idstringyes
replayedboolean
request_idstringyes
resultyes
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_previewyes
context_idstringyes
draftyes
replayedboolean
request_idstringyes
sourcesarrayyes
statusstring

No examples provided.

linkedin.invitations.list ~143

Capture the complete current received or sent invitation inventory once, including a deduplicated union of LinkedIn's current Focused, Other, Verified, Mutual Connections, Your Company, and Your School received views when invitation_filter is all. Every source view reconciles its own visible count before the server returns an immutable cursor page containing each visible invitation entity type, context, note, time, available action, and field evidence.

NameTypeReqDescription
context_idstringyes
cursor
direction
invitation_filter
page_sizeintegerNumber of unique items to return in this page.
request_idstringyes
NameTypeReqDescription
context_idstringyes
coverageyes
invitationsarrayyes
paginationyes
replayedboolean
request_idstringyes
sourcesarrayyes
statusstring

No examples provided.

linkedin.invitations.send.execute ~170

Destructive account action. Codex must show native user confirmation using the supplied approval_preview before invoking this tool. 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_previewyes
context_idstringyes
idempotency_keystringyes
payload_hashstringyesExact payload hash returned by the matching prepare tool.
request_idstringyes
NameTypeReqDescription
context_idstringyes
replayedboolean
request_idstringyes
resultyes
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 native-approval preview.

NameTypeReqDescription
context_idstringyes
note
profile_slugstringyes
request_idstringyes
NameTypeReqDescription
approval_previewyes
context_idstringyes
draftyes
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
jobyes
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_hoursDate posted: 24, 168 (past week), 720 (past month), or null for Any time.
location
max_results
page_sizeintegerNumber of unique items to return in this page.
query
request_idstringyes
NameTypeReqDescription
context_idstringyes
coverageyes
jobsarrayyes
paginationyes
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
conversationyes
replayedboolean
request_idstringyes
sourcesarrayyes
statusstring

No examples provided.

linkedin.messaging.message.execute ~150

Destructive account action. Codex must show native user confirmation using the supplied approval_preview before invoking this tool. 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_previewyes
context_idstringyes
idempotency_keystringyes
payload_hashstringyesExact payload hash returned by the matching prepare tool.
request_idstringyes
NameTypeReqDescription
context_idstringyes
replayedboolean
request_idstringyes
resultyes
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_previewyes
context_idstringyes
draftyes
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_sizeintegerNumber of unique items to return in this page.
query
request_idstringyes
NameTypeReqDescription
context_idstringyes
conversationsarrayyes
coverageyes
paginationyes
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
sectionsarrayVisible profile sections to return. Use ['all'] for the complete server-bounded read; the canonical overview is always captured for identity.
NameTypeReqDescription
context_idstringyes
personyes
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_sizeintegerNumber of unique items to return in this page.
query
request_idstringyes
title_keywords
NameTypeReqDescription
context_idstringyes
coverageyes
paginationyes
peoplearrayyes
replayedboolean
request_idstringyes
sourcesarrayyes
statusstring

No examples provided.

linkedin.posts.comment.execute ~135

Destructive account action. Codex must show native user confirmation using the supplied approval_preview before invoking this tool. 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_previewyes
context_idstringyes
idempotency_keystringyes
payload_hashstringyesExact payload hash returned by the matching prepare tool.
request_idstringyes
NameTypeReqDescription
context_idstringyes
replayedboolean
request_idstringyes
resultyes
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_previewyes
context_idstringyes
draftyes
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_sizeintegerNumber of unique items to return in this page.
post_refstringyes
request_idstringyes
sort_by
NameTypeReqDescription
context_idstringyes
coverageyes
paginationyes
replayedboolean
request_idstringyes
sourcesarrayyes
statusstring
threadsarrayyes

No examples provided.

linkedin.posts.create.execute ~143

Destructive account action. Codex must show native user confirmation using the supplied approval_preview before invoking this tool. 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_previewyes
context_idstringyes
idempotency_keystringyes
payload_hashstringyesExact payload hash returned by the matching prepare tool.
request_idstringyes
NameTypeReqDescription
context_idstringyes
replayedboolean
request_idstringyes
resultyes
sourcesarrayyes
statusstring

No examples provided.

linkedin.posts.create.prepare ~162

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. This tool never publishes and never publishes as a company Page.

NameTypeReqDescription
audience
brand_partnershipboolean
collaboratorsarray
comment_control
contentyes
context_idstringyes
group_target
request_idstringyes
scheduled_at
NameTypeReqDescription
approval_previewyes
context_idstringyes
draftyes
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
postyes
replayedboolean
request_idstringyes
sourcesarrayyes
statusstring

No examples provided.

linkedin.posts.reaction.execute ~136

Destructive account action. Codex must show native user confirmation using the supplied approval_preview before invoking this tool. 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_previewyes
context_idstringyes
idempotency_keystringyes
payload_hashstringyesExact payload hash returned by the matching prepare tool.
request_idstringyes
NameTypeReqDescription
context_idstringyes
replayedboolean
request_idstringyes
resultyes
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_reactionyes
post_refstringyes
request_idstringyes
NameTypeReqDescription
approval_previewyes
context_idstringyes
draftyes
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_sizeintegerNumber of unique items to return in this page.
query
request_idstringyes
NameTypeReqDescription
context_idstringyes
coverageyes
paginationyes
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
namestring
operation_statestring
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_stateyes
automatic_login_enabledbooleanyes
browser_setup_stateyes
browser_startedbooleanyes
login_browser_openbooleanyes
pause_reason
pausedbooleanyes
profile_presentbooleanyes
status_message

No examples provided.