Skip to main content
Glama
mdnaimul22

LinkedIn MCP Pro Max

by mdnaimul22

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LINKEDIN_EMAILYesYour LinkedIn email address
LINKEDIN_PASSWORDYesYour LinkedIn password
LINKEDIN_USERNAMEYesYour 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

CapabilityDetails
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

NameDescription
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

NameDescription
job_search_workflowGuide through searching for jobs, reviewing listings, and tracking applications.
application_workflowGuide through preparing a complete application for a specific job.
profile_optimizationGuide through optimizing a LinkedIn profile.

Resources

Contextual data attached and managed by the client

NameDescription
applications_resourceSummary of tracked job applications.

Latest Blog Posts

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