LinkedIn MCP Pro Max
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LINKEDIN_EMAIL | Yes | Your LinkedIn email address | |
| LINKEDIN_PASSWORD | Yes | Your LinkedIn password | |
| LINKEDIN_USERNAME | Yes | Your LinkedIn profile slug (username) |
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
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| interact_with_postA | Interact with a specific LinkedIn post (read, like, comment). Args: post_url: The URL of the LinkedIn post to interact with. action: Strategy to apply: 'read', 'like', or 'comment'. Default is 'read'. comment: The text to post if action is 'comment'. |
| create_linkedin_postA | Generate and publish a new LinkedIn post using an internal AI writer. The AI will craft a complete, publish-ready post based on the topic you provide. Optionally, a second AI pass generates a detailed visual prompt which is sent to the image generation engine to create and attach a professional image to the post. Full pipeline (when include_image=True): 1. LLM writes the post text (topic + tone + optional CTA). 2. LLM writes a rich, detailed image generation prompt. 3. Image generator (Flux / Gemini) creates the image. 4. Browser uploads image + posts text together on LinkedIn. Args: topic: What the post should be about (e.g., 'why clean code matters', 'lessons from 6 months of remote work'). tone: Writing style — 'professional' (default), 'storytelling', or 'thought-leader'. include_cta: If True (default), end with a question or call-to-action. include_image: If True, generate and attach an AI image to the post. Requires IMAGE_GEN_API_BASE to be configured. If image generation fails, the post is published text-only. Returns: JSON string with: - status: 'success' or 'error' - generated_post: The complete text that was published. - character_count: Length of the published post. - topic: Echo of the original topic for traceability. - image_prompt: (if include_image) The prompt used for image gen. - image_url: (if include_image) Local path of the generated image. - image_warning: (if include_image failed) Reason why image was skipped. - message: Human-readable confirmation. |
| jobA | Discover and manage LinkedIn job postings. Args: action: 'search', 'details', 'recommended', or 'apply', job_id: LinkedIn job ID (required for 'details' and 'apply'), keywords: Search keywords (job title, skills, company), location: Geographic location (city, state, country), job_type: Filter by type: FULL_TIME, PART_TIME, CONTRACT, TEMPORARY, INTERNSHIP, experience_level: Filter: INTERNSHIP, ENTRY_LEVEL, ASSOCIATE, MID_SENIOR, DIRECTOR, EXECUTIVE, remote: Filter for remote jobs only, date_posted: Filter by recency: past-24h, past-week, past-month, page: Page number for pagination (default 1), count: Results per page (1-50, default 20), allowed_args_for_action = { "search": ["keywords", "location", "job_type", "experience_level", "remote", "date_posted", "page", "count"], "details": ["job_id"], "recommended": ["count"], "apply": ["job_id"] } |
| profileB | Manage LinkedIn profiles. Args: action: The profile action to perform ('get', 'analyze', 'update', 'update_cover_image'). profile_id: LinkedIn profile ID (username slug) or 'me' for self (for 'get' and 'analyze'). headline: New profile headline (for 'update'). summary: New profile 'About' summary (for 'update'). image_path: Absolute path to the image file (for 'update_cover_image'). allowed_args_for_action = { "get": ["profile_id"], "analyze": ["profile_id"], "update": ["headline", "summary"], "update_cover_image": ["image_path"] } |
| companyB | Get company information from LinkedIn. Args: company_id: LinkedIn company ID or URL slug, |
| experienceA | Manage experience entries on your LinkedIn profile. Args: action: 'add', 'update', or 'delete', title: Job title (e.g. 'Software Engineer'), company: Company name, position_id: The ID of the position (required for 'update'), employment_type: Type (e.g. 'Full-time', 'Contract'), location: City/Country, description: Role description, start_month: Month name (e.g. 'January'), start_year: Year string (e.g. '2023'), end_month: End Month name (e.g. 'December'), end_year: End Year string (e.g. '2024'), is_current: Whether this is your current role, allowed_args_for_action = { "add": ["title", "company", "employment_type", "location", "description", "start_month", "start_year", "end_month", "end_year", "is_current"], "update": ["position_id", "title", "company", "employment_type", "location", "description", "start_month", "start_year", "end_month", "end_year", "is_current"], "delete": ["title", "company"] } |
| skillsA | Manage skills on your LinkedIn profile. Args: action: 'add' or 'delete', skill_name: Name of the skill (e.g. 'Python', 'Machine Learning'), |
| educationB | Manage education entries on your LinkedIn profile. Args: action: 'add', 'update', or 'delete', school: School/University name, degree: Degree (e.g. 'Bachelor of Science'), field_of_study: Field of study (optional), grade: Grade/GPA (optional), start_year: Start year string (e.g. '2018'), end_year: End year string (e.g. '2022'), description: Description of your studies (optional), education_id: The ID of the education entry (required for 'update'), |
| generate_resumeA | Generate a professional resume from a LinkedIn profile using AI enhancement. Args: profile_id: LinkedIn profile ID or 'me' for self template: Template name (modern, professional) output_format: Output format (html, md, pdf) |
| tailor_resumeA | Generate a resume tailored to a specific job posting. Args: profile_id: LinkedIn profile ID or 'me' for self job_id: LinkedIn job ID to tailor the resume for template: Template name (modern, professional) output_format: Output format (html, md, pdf) |
| generate_cover_letterA | Generate a personalized cover letter for a specific job posting. Args: profile_id: LinkedIn profile ID or 'me' for self job_id: LinkedIn job ID template: Template name (professional, concise) output_format: Output format (html, md, pdf) |
| list_templatesA | List all available templates for resumes and cover letters. Args: template_type: Template type to list: 'resume', 'cover_letter', or 'all' |
| serverC | Manage the MCP server. Args: action: The server action to perform ('restart'), reason: Optional reason for the restart, allowed_args_for_action = { "restart": ["reason"] } |
| applicationA | Manage tracked job applications locally. Args: action: 'list', 'track', or 'update', job_id: LinkedIn job ID, job_title: Job title, company: Company name, status: Application status (interested/applied/interviewing/offered/rejected/withdrawn). For 'list', filters results. notes: Optional notes, url: Optional job URL, allowed_args_for_action = { "list": ["status"], "track": ["job_id", "job_title", "company", "status", "notes", "url"], "update": ["job_id", "status", "notes"] } |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| job_search_workflow | Guide through searching for jobs, reviewing listings, and tracking applications. |
| application_workflow | Guide through preparing a complete application for a specific job. |
| profile_optimization | Guide through optimizing a LinkedIn profile. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| applications_resource | Summary of tracked job applications. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/mdnaimul22/linkedin-mcp-pro-max'
If you have feedback or need assistance with the MCP directory API, please join our Discord server