MCP Documentation
LinkedIn

Tools

Reference for the 14 tools exposed by the LinkedIn MCP server, including the two that take real actions.

Fourteen tools: twelve that only read, two that do something another person will see.

People

get_profile

A member's profile by public identifier or full URL, both are accepted. Returns name, headline, location, current position, and whichever sections you ask for.

ParameterTypeDefaultDescription
profilestring,some-person, or https://linkedin.com/in/some-person
sectionsstring[]["experience", "education"]Any of experience, education, skills, certifications, projects, languages, honors, posts

Each extra section is another page load, so the default is deliberately small rather than everything. posts is the one section that requires a second navigation.

The About text is fenced, see Safety.

get_my_profile

Your own profile. Navigates to /in/me and lets LinkedIn resolve the redirect, then runs the same extractor as get_profile so the two cannot drift apart. No parameters.

search_people

Member search by keyword. Returns name, headline, location, and public identifier per result. Capped at 25; the response says so when your requested limit was reduced.

Messaging

get_inbox

Recent conversation previews, participant, last message, timestamp, unread flag, and the thread id that get_conversation takes.

ParameterTypeDefault
limitnumber20
unread_onlybooleanfalse

get_conversation

Full message history for one thread. Every message body is fenced, this is the highest risk surface in the server, because anyone on LinkedIn can put text into it.

search_conversations

Search your threads by keyword or participant. Returns the same shape as get_inbox plus the matching snippet, fenced.

send_message

Write tool. This sends a real message from your account to another person.

ParameterTypeDescription
conversation_idstring?Reply to an existing thread
recipientstring?Start a new one, by profile id
messagestringThe text

Requires exactly one of conversation_id or recipient, passing both, or neither, is refused rather than guessed. Empty or whitespace-only messages are refused. Returns a character count, not your message text.

connect

Write tool. This sends a real connection invitation.

ParameterTypeDescription
profilestringPublic id or URL
notestring?Optional note, capped at 300 characters by LinkedIn for free accounts

Distinguishes already-connected, request-pending, out-of-network, and weekly-invitation-limit as separate errors, so the model knows which wall it hit instead of retrying blindly.

Companies

get_company

Company page by slug or URL: name, tagline, industry, size, headquarters, founded, website, follower count, and fenced About text.

search_companies

Company search by keyword, name, slug, industry, size, URL.

Jobs

search_jobs

ParameterTypeDescription
keywordsstring,
locationstring?,
remoteboolean?,
posted_within_daysnumber?,
experience_levelstring?,
limitnumberDefault 10

LinkedIn encodes these filters as undocumented query codes (f_WT, f_TPR, f_E); the server maps the friendly arguments onto them.

get_job

One posting in full: title, company, location, posted date, applicant count where shown, employment type, seniority, and the fenced description.

Posts

search_posts

Feed content search. Returns author, posted-at, reaction and comment counts, URL, and the fenced post text.

Feed results load lazily, so reaching your limit needs scrolling. The scrolling is bounded and stops early when a scroll yields nothing new, an unbounded scroll loop from your own account is exactly the runaway behaviour the server exists to prevent. The response says when the limit wasn't reached, and why.

Diagnostics

linkedin_status

Session validity plus your current usage against the rate limits: actions in the last hour, the ceiling, and the configured interval. Never reveals the cookie.

Worth calling before a batch of work, and the thing to check first when something starts failing.

On this page