openlinkedinmcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| linkedin_loginB | Open a visible browser for LinkedIn sign-in. Complete email/password (and 2FA if prompted). Session is saved for later tools. |
| linkedin_auth_statusB | Check whether the saved Playwright session is logged into LinkedIn. |
| linkedin_logoutB | Sign out of LinkedIn in the automation browser and close the browser context. |
| get_my_profileA | Open your LinkedIn profile and return visible profile text. |
| get_profileA | Open a LinkedIn profile by vanity name or full profile URL and return visible text. |
| update_headlineC | Update your LinkedIn headline via the profile intro edit modal. |
| update_aboutA | Update your LinkedIn About / summary section. |
| open_profile_sectionC | Open a profile edit section (experience, education, skills, etc.) and return visible text for further guided edits. |
| search_jobsC | Search LinkedIn jobs by keywords and optional filters. |
| get_jobB | Open a LinkedIn job posting and return its visible details. |
| save_jobB | Save / bookmark a LinkedIn job posting. |
| get_saved_jobsB | List jobs you have saved on LinkedIn. |
| get_job_applicationsC | Open My Jobs / applications view and return visible text. |
| easy_apply_jobA | Start LinkedIn Easy Apply on a job. By default only opens the form (dry_run=true). Set dry_run=false to submit the first step if possible. |
| get_feedB | Open the LinkedIn home feed and return visible post text. |
| create_postB | Create a LinkedIn text post on your feed. |
| like_postA | Like a post currently visible on the feed, or open a post URL and like it. |
| comment_on_postC | Comment on a LinkedIn post URL. |
| repostB | Repost (reshare) a LinkedIn post URL, optionally with a thought. |
| list_conversationsC | Open LinkedIn messaging and list visible conversation threads. |
| get_conversationB | Open a messaging thread by 1-based index from list_conversations, or by thread URL. |
| send_messageC | Send a message in the currently open thread, a thread URL, or by conversation index. |
| start_conversationC | Start a new LinkedIn message to a person by profile URL or vanity name. |
| search_peopleC | Search LinkedIn people by keywords. |
| send_connection_requestB | Send a connection request to a LinkedIn profile, with optional note. |
| get_pending_invitationsB | List pending invitation / connection requests. |
| accept_invitationC | Accept the Nth pending invitation (1-based) on the invitation manager page. |
| get_connectionsC | Open your connections list and return visible people links. |
| follow_personB | Follow a person from their profile page. |
| search_companiesC | Search LinkedIn companies by keywords. |
| get_companyC | Open a LinkedIn company page by slug or URL and return visible text. |
| follow_companyC | Follow a LinkedIn company page. |
| get_notificationsC | Open LinkedIn notifications and return visible items. |
| navigateA | Navigate the automation browser to any LinkedIn path or absolute URL and return visible text. |
| screenshot_pageC | Capture a PNG screenshot of the current page (base64). |
| close_browserA | Close the Playwright browser context (session cookies remain on disk). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 36 tools
Most tools have clearly distinct purposes targeting different resources/actions (profiles, companies, jobs, messaging, feed). There is minor potential confusion between get_company vs search_companies, get_profile vs search_people, and follow_company vs follow_person, but the descriptions clarify the distinction between search vs direct access. The messaging tools (list_conversations, get_conversation, start_conversation, send_message) are well-separated by their distinct operations.
The naming follows a strong verb_noun pattern throughout: get_*, search_*, create_*, follow_*, update_*, send_*, etc. A few slight deviations exist like linkedin_login, linkedin_auth_status, linkedin_logout (using the linkedin_ prefix rather than a verb_noun pattern) and navigate, screenshot_page, close_browser which don't follow the resource-targeting pattern, but the majority is highly consistent.
36 tools is on the heavy end for a domain that could be consolidated. The server covers many sub-domains (profiles, companies, jobs, messaging, feed, notifications, auth), so the breadth justifies part of the count, but auth helpers (login, logout, auth_status) and utility tools (navigate, screenshot_page, close_browser) could arguably be grouped or reduced. Still, each tool serves a distinct function.
The tool surface is remarkably comprehensive for LinkedIn automation. It covers authentication lifecycle (login, auth_status, logout), profile viewing/editing (get_profile, get_my_profile, update_headline, update_about, open_profile_section), jobs lifecycle (search, get, save, easy_apply, saved, applications), messaging (list, get, start, send), feed engagement (get_feed, create_post, like, comment, repost), and networking (connections, people search, connection requests, invitations). There are no obvious dead-end operations.