Universal LinkedIn MCP Server
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_login_statusA | Check LinkedIn authentication status and inspect the active user's identity details. |
| start_loginA | Open an interactive browser window to sign in to LinkedIn, solve 2FA, and save the session. Args: timeout_seconds: Maximum time in seconds to wait for sign-in (default: 300). |
| logoutA | Clear all stored LinkedIn session credentials, cookies, and local profile caches. |
| refresh_sessionB | Test and extend the active LinkedIn session validity with sliding window keep-alive telemetry. |
| get_my_profileA | Retrieve full profile details for your own authenticated LinkedIn profile. Security Notice: This tool can only read your own profile information. |
| update_my_headlineA | Update the headline on your own LinkedIn profile. Security Notice: Strictly locked to your authenticated account. Does not accept any other profile target. Args: headline: New headline text to display under your name. |
| update_my_aboutA | Update the About / summary section on your own LinkedIn profile. Security Notice: Strictly locked to your authenticated account. Args: summary: New bio/summary text for your About section. |
| add_educationA | Add an education credential to your own LinkedIn profile. Security Notice: Strictly locked to your authenticated account (/in/me). Args: school: Name of university or school (e.g. 'Afe Babalola University'). degree: Degree type (e.g. 'Bachelor of Science - BSc'). field_of_study: Major or area of study (e.g. 'Computer Science', 'Data Analysis'). start_month: Starting month (e.g. 'September'). start_year: Starting year (e.g. '2020'). end_month: Graduation or ending month (e.g. 'June'). end_year: Graduation or ending year (e.g. '2024'). grade: GPA or honors (optional). activities: Clubs, societies, sports (optional). description: Notes, courses, or achievements (optional). |
| add_experienceA | Add a work position or experience to your own LinkedIn profile. Security Notice: Strictly locked to your authenticated account (/in/me). Args: title: Job title (e.g. 'Full-Stack AI Engineer'). company: Company or organization name (e.g. 'AltSchool Africa'). employment_type: 'Full-time', 'Part-time', 'Contract', 'Internship', 'Freelance'. location: City or region (e.g. 'Lagos, Nigeria'). location_type: 'On-site', 'Hybrid', or 'Remote'. is_current: Whether you currently work in this role (default: True). start_month: Start month (e.g. 'January'). start_year: Start year (e.g. '2024'). end_month: End month (if not current). end_year: End year (if not current). description: Role accomplishments and responsibilities. |
| add_skillA | Add a skill to your own LinkedIn profile. Security Notice: Strictly locked to your authenticated account (/in/me). Args: skill_name: The name of the skill (e.g. 'Model Context Protocol (MCP)', 'Python', 'FastAPI'). |
| add_projectA | Add a project to your own LinkedIn profile under Projects. Security Notice: Strictly locked to your authenticated account (/in/me). Args: title: Project title or name (e.g. 'Argus Agent', 'NairaPulse AI'). description: Description of the project, architecture, tech stack, and achievements. url: Link to project demo or repository (optional). start_month: Starting month (e.g. 'January'). start_year: Starting year (e.g. '2024'). end_month: Ending month (optional). end_year: Ending year (optional). |
| update_job_preferencesA | Configure your 'Open to work' job preferences on LinkedIn. Security Notice: Strictly locked to your authenticated account (/in/me). Args: job_titles: List of target job titles (e.g. ['AI Engineer', 'Full-Stack Developer']). location_types: Workplace modes: ['On-site', 'Hybrid', 'Remote']. locations: Target cities or countries (e.g. ['Nigeria', 'United Kingdom']). employment_types: Types of work: ['Full-time', 'Part-time', 'Contract', 'Internship']. |
| update_my_servicesA | Configure or update client services listed on your own LinkedIn profile. Security Notice: Strictly locked to your authenticated account (/in/me). Args: services_to_add: List of service names to add (e.g. ['Custom Software Development', 'Web Development']). services_to_remove: List of service names to remove (e.g. ['Graphic Design']). description: Summary of client offerings and experience (up to 500 characters). |
| search_peopleA | Search for professionals on LinkedIn through your authenticated account. Args: keywords: Search term (e.g. name, title, skills). location: Optional location filter (e.g. 'San Francisco', 'United Kingdom'). current_company: Optional current company name. limit: Maximum results to retrieve (default: 10, max: 25). |
| view_profileA | View another LinkedIn member's profile as your authenticated user (strictly read-only). Args: profile_url: The member's profile URL or vanity username. |
| create_postA | Publish a post to your LinkedIn feed authored exclusively by your profile, optionally attaching an image or document. Args: text: The text content of your post. media_path: Optional path to an image (.png, .jpg) or document (.pdf) to attach. |
| create_pollA | Create and publish an interactive poll to your LinkedIn feed. Args: question: The question for the poll (up to 140 chars). options: List of poll answer options (minimum 2, maximum 4 options, each up to 30 chars). duration: Duration for the poll to run: '1_day', '3_days', '1_week', or '2_weeks' (default: '1_week'). |
| get_feedA | Read recent posts from your personal LinkedIn home feed. Args: limit: Number of posts to read (default: 5, max: 15). |
| comment_on_postA | Leave a comment on a LinkedIn post as your authenticated account. Args: post_url: The URL of the post. comment_text: The comment text to publish. |
| get_post_analyticsA | Retrieve engagement metrics (impressions, reactions, comments, reposts) for recent posts authored by your account. Args: limit: Maximum number of recent posts to analyze (default: 5, max: 15). |
| get_profile_viewsA | Retrieve private profile view analytics and viewer demographics for your account. |
| list_conversationsA | List recent direct message conversations from your authenticated inbox. Args: limit: Maximum conversations to retrieve (default: 10, max: 20). |
| get_conversation_messagesA | Read full message history and replies for a specific conversation in your inbox. Args: recipient_name: Name or keyword matching the conversation partner. limit: Maximum number of recent messages to retrieve (default: 10, max: 30). |
| send_messageA | Send a direct message to a LinkedIn member from your authenticated account. Args: recipient_profile_url: Profile URL of the recipient. message_text: The message body to send. |
| send_connection_requestA | Send a connection invitation to a professional from your authenticated account. Args: profile_url: Profile URL of the member to connect with. custom_note: Optional personalized message (up to 300 characters). |
| get_pending_invitationsA | List pending incoming connection invitations received by your account. |
| manage_invitationA | Accept or ignore a pending incoming connection invitation. Args: sender_name: Name of the person whose invitation to manage. action: Either 'accept' or 'ignore' (default: 'accept'). |
| get_network_briefingB | Synthesize a complete daily intelligence briefing: unread messages, pending invitations, post analytics, and top feed trends. Args: limit: Number of feed items and recent posts to include in the briefing (default: 5). |
| analyze_profile_strengthA | Audit your profile completeness, section strength, and generate actionable recommendations to optimize LinkedIn discoverability. |
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 29 tools
Most tools have clearly distinct purposes (e.g., add_education vs add_experience, get_my_profile vs view_profile). Some overlap exists between get_network_briefing and get_feed/get_pending_invitations, but descriptions clarify their roles, so misselection is unlikely.
All tools use snake_case and follow a consistent verb_noun pattern (get, update, add, create, send, list, etc.). Even 'logout' fits the style as a single-word verb. No mixing of conventions or inconsistent styles.
29 tools is above the typical 15-25 range, but the server aims to cover a broad LinkedIn surface (auth, profile, feed, messaging, connections, analytics). While heavy, it is not absurdly excessive, and each tool serves a distinct purpose. Still, it feels slightly over-scoped.
The server covers core LinkedIn workflows well: profile editing, posting, messaging, connections, and analytics. However, there are notable gaps: no update or delete operations for education/experience/skills (only add), no post deletion or editing, and no ability to remove connections. These missing lifecycle operations could cause dead ends for agents.