Skip to main content
Glama
Maheidem

@maheidem/linkedin-mcp

by Maheidem

@maheidem/linkedin-mcp

npm version License: MIT

A comprehensive LinkedIn API MCP (Model Context Protocol) server that integrates seamlessly with Claude Desktop/Code. This package provides full LinkedIn functionality including post creation, profile optimization, content generation, and analytics - all accessible through Claude's natural language interface.

πŸš€ Quick Start

Install and configure with a single command:

npx @maheidem/linkedin-mcp install

That's it! The installer will:

  • βœ… Install the MCP server

  • βœ… Automatically configure Claude Desktop/Code

  • βœ… Set up token storage

  • βœ… Provide setup instructions

Related MCP server: LinkedIn Intelligence MCP Server

πŸ“‹ Features

✨ Core Functionality

  • πŸš€ LinkedIn Posting: Create and publish posts with full formatting

  • πŸ” Profile Analytics: Get detailed insights and optimization recommendations

  • πŸ“Š Content Analytics: Track post performance and engagement metrics

  • 🎯 Content Generation: AI-powered post creation with industry best practices

  • πŸ‘€ Profile Management: Update and optimize LinkedIn profiles

  • πŸ” Secure OAuth: Robust token management with automatic refresh

πŸ›  Developer Features

  • πŸ“± Cross-Platform: Works on Windows, macOS, and Linux

  • πŸ”§ CLI Management: Easy installation, configuration, and maintenance

  • πŸ“– Comprehensive API: All LinkedIn REST API endpoints available

  • πŸ”’ Security First: Secure token storage and handling

  • πŸ“š Full Documentation: Complete API reference and examples

πŸ“¦ Installation Methods

npx @maheidem/linkedin-mcp install

Method 2: Global Install + Setup

npm install -g @maheidem/linkedin-mcp
linkedin-mcp install

Method 3: Local Install

npm install @maheidem/linkedin-mcp
npx linkedin-mcp install

πŸ”§ CLI Commands

Installation & Setup

# Install and configure for Claude
linkedin-mcp install

# Check installation status  
linkedin-mcp status

# Set up LinkedIn OAuth credentials
linkedin-mcp auth

# Remove configuration
linkedin-mcp uninstall

Usage Examples

# Check if everything is working
linkedin-mcp status

# Set up authentication
linkedin-mcp auth

πŸ” Authentication Setup

After installation, you need to set up LinkedIn OAuth:

  1. Create LinkedIn App:

  2. Configure Redirect URI:

    • Add http://localhost:3000/callback to your app's redirect URIs

  3. Set Up Credentials:

    linkedin-mcp auth
  4. Complete OAuth Flow:

    • Use the LinkedIn OAuth flow to get an access token

    • The token will be automatically managed by the MCP server

🎯 Usage with Claude

Once installed, you can use LinkedIn functionality directly in Claude:

Creating Posts

Create a LinkedIn post about the latest developments in AI, targeting ML engineers and including relevant hashtags.

Profile Optimization

Analyze my LinkedIn profile and provide optimization recommendations for better visibility in the tech industry.

Content Strategy

Generate 5 LinkedIn post ideas about machine learning trends, each with different engagement strategies.

Analytics & Insights

Show me the performance metrics for my last 10 LinkedIn posts and identify the most engaging content types.

πŸ“Š Available Tools

The MCP server provides these tools to Claude:

πŸš€ Posting & Content

  • linkedin_create_post - Create and publish posts

  • linkedin_create_optimized_post - AI-generated optimized posts

  • linkedin_post_profile_update - Announce profile changes

πŸ“Š Analytics & Data

  • linkedin_get_user_posts - Retrieve your posts with pagination

  • linkedin_get_post_details - Detailed post analytics

  • linkedin_get_user_activity - Activity timeline and engagement

πŸ‘€ Profile Management

  • linkedin_get_user_info - User profile information

  • linkedin_analyze_profile_from_data - Profile optimization analysis

  • linkedin_generate_optimized_content - Content generation for profiles

πŸ” Authentication

  • linkedin_get_auth_url - Generate OAuth URLs

  • linkedin_exchange_code - Handle OAuth token exchange

πŸ”§ Configuration

Claude Configuration Location

The installer automatically detects and configures:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%/Claude/claude_desktop_config.json

  • Linux: ~/.config/claude/claude_desktop_config.json

Token Storage

Tokens are securely stored at:

  • All Platforms: ~/.linkedin-mcp/tokens/

Example Configuration

{
  "mcpServers": {
    "linkedin-complete": {
      "command": "node",
      "args": ["/path/to/server/linkedin-complete-mcp.js"],
      "env": {
        "LINKEDIN_TOKEN_STORAGE_PATH": "/home/user/.linkedin-mcp/tokens"
      }
    }
  }
}

πŸ› Troubleshooting

Installation Issues

# Check status
linkedin-mcp status

# Reinstall if needed
linkedin-mcp uninstall
linkedin-mcp install

Authentication Problems

# Reset credentials
linkedin-mcp auth

# Check token storage
ls ~/.linkedin-mcp/tokens/

Claude Integration Issues

  1. Restart Claude Desktop/Code after installation

  2. Check configuration file location matches your system

  3. Verify MCP server permissions

Common Solutions

  • "Server not found": Run linkedin-mcp install again

  • "Token expired": The server automatically refreshes tokens

  • "Permission denied": Check file permissions on token directory

πŸ“š API Reference

Core Methods

Creating Posts

// Through Claude's natural language interface:
"Create a post about AI trends with these key points: [points]"

// Direct API usage:
linkedin_create_post({
  text: "Your post content here",
  visibility: "PUBLIC"
})

Profile Analysis

linkedin_analyze_profile_from_data({
  name: "Your Name",
  currentHeadline: "Current headline",
  industry: "Technology"
})

See API_REFERENCE.md for complete documentation.

πŸ”’ Security & Privacy

  • πŸ” Secure Storage: Tokens encrypted and stored locally

  • πŸ”„ Auto-Refresh: Automatic token renewal

  • 🚫 No Data Collection: No analytics or tracking

  • 🏠 Local First: All processing happens on your machine

🀝 Contributing

Contributions welcome! Please see our contributing guidelines.

Development Setup

git clone https://github.com/maheidem/linkedin-mcp
cd linkedin-mcp
npm install
npm run build

Testing & Examples

# Run unit tests
npm test

# Run example scripts
npm run test:examples
npm run test:oauth

# Try the demo
npm run demo

# Development mode
npm run dev

Project Structure

β”œβ”€β”€ src/                    # TypeScript source code
β”œβ”€β”€ dist/                   # Compiled JavaScript
β”œβ”€β”€ examples/               # Usage examples and demos
β”œβ”€β”€ tests/                  # Test files
β”œβ”€β”€ docs/                   # Documentation
β”œβ”€β”€ configs/                # Configuration templates
└── .github/workflows/      # CI/CD workflows

πŸ“„ License

MIT License - see LICENSE file for details.

πŸ™ Acknowledgments

Built with:

πŸ“ž Support


Made with ❀️ for the Claude community

Available Tools

13 tools
linkedin_analyze_profile_from_dataC

Analyze LinkedIn profile data and provide optimization recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull name
currentHeadlineNoCurrent LinkedIn headline
currentSummaryNoCurrent about section
skillsNoList of current skills
industryNoIndustry/field
experienceNoYears of experience

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states 'analyze' and 'provide recommendations', which implies a read-like operation, but does not disclose whether this modifies data, requires authentication, or how recommendations are structured. Minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It is front-loaded with the action and outcome, achieving conciseness without sacrificing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 6 parameters (one required) and no output schema, the description is too brief. It does not explain the type of analysis, the nature of recommendations, or any limitations. The agent lacks sufficient context to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes all 6 parameters (100% coverage), so the description adds no extra meaning beyond the schema. Baseline is 3; the description does not provide additional context on how parameters influence analysis.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Analyze LinkedIn profile data') and the outcome ('provide optimization recommendations'), indicating the verb and resource. However, it does not differentiate from sibling tools like 'linkedin_generate_optimized_content', which may also involve profile analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no context for appropriate use. The agent is left without information on when to choose this over other LinkedIn tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_create_optimized_postC

✨ Generate and create an optimized LinkedIn post

ParametersJSON Schema
NameRequiredDescriptionDefault
accessTokenYesLinkedIn access token
topicYesPost topic or theme
roleYesYour professional role
industryNoYour industry
toneNoPost tone
includeHashtagsNoInclude relevant hashtags
includeQuestionNoInclude engagement question

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It states it generates and creates a post, but does not disclose key behaviors such as whether it posts immediately, requires authentication beyond accessToken, or has any destructive effects. The word 'create' implies writing, but no further detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence with an emoji, which is concise but not particularly structured. It front-loads the core action but lacks any breakdown or additional context. It is acceptable but could be more informative without adding length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, no output schema, and no annotations, the description is insufficient. It does not explain what the tool returns (e.g., post URL or confirmation), how it uses the parameters, or any side effects. The complexity of generating and posting warrants a richer description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema; it merely restates the tool's purpose. Parameters are well-described in the schema itself, so the description does not enhance understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'generate and create' and the resource 'optimized LinkedIn post'. It distinguishes from the sibling 'linkedin_create_post' by implying optimization, but does not explicitly differentiate from 'linkedin_generate_optimized_content', which may cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'linkedin_create_post' or 'linkedin_generate_optimized_content'. No exclusions or prerequisites mentioned, leaving the agent to guess the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_create_postC

πŸš€ Create a LinkedIn post (WORKING!)

ParametersJSON Schema
NameRequiredDescriptionDefault
accessTokenYesLinkedIn access token
textYesPost content text
visibilityNoPost visibility (default: PUBLIC)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description lacks behavioral details beyond 'create'. With no annotations, it should disclose permissions required, side effects, or return value, but it only states the tool is 'WORKING!', which is vague and not informative.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with an emoji, achieving high conciseness. It could be more structured, but there is no unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description should explain return values, error handling, or completion confirmation. It only says 'create', leaving the agent underinformed for a tool with many siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains each parameter. The description adds no additional parameter meaning, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Create a LinkedIn post' clearly states the action and resource. However, it does not differentiate from the sibling tool 'linkedin_create_optimized_post', which also creates posts. The verb 'create' and resource 'LinkedIn post' are specific enough for basic understanding.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'linkedin_create_optimized_post'. There is no mention of prerequisites, such as needing an access token, which is already required in the schema but not noted in the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_exchange_codeB

Exchange authorization code for access token

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesAuthorization code from callback

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It only states the action without revealing any side effects, idempotency, required permissions, rate limits, or error handling. For a tool that likely makes an API call and stores tokens, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with no wasted words. It is a single sentence that front-loads the key information. However, it could potentially include more detail without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema, no annotations), the description is adequate but not fully complete. It does not mention the return value (access token) or potential error states. For a straightforward OAuth exchange, it covers the essential action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the 'code' parameter described as 'Authorization code from callback'. The description adds no additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Exchange authorization code for access token' uses a specific verb 'Exchange' and clearly identifies the resource (authorization code) and the outcome (access token). It distinguishes this tool from its sibling 'linkedin_get_auth_url' which generates the URL to obtain the code.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention that it should be used after obtaining an authorization code via 'linkedin_get_auth_url', nor does it specify prerequisites or post-conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_generate_optimized_contentC

Generate optimized LinkedIn content (headlines, summaries, posts)

ParametersJSON Schema
NameRequiredDescriptionDefault
contentTypeYesType of content to generate
currentRoleYesCurrent job title
skillsNoKey skills
achievementsNoKey achievements or metrics
industryNoIndustry/field
toneNoContent tone

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description states it 'generates' content but does not disclose whether it posts to LinkedIn, returns text, or has any side effects. For a generation tool, it should clarify its output behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but vague. It could be improved by adding structure (e.g., listing what the tool does and does not do).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and 6 parameters, the description does not explain return values, error conditions, or complete usage context. It fails to cover important aspects like what the generated content looks like or how it is delivered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds little extra meaning beyond listing content types, which is already in the schema enum. It does not elaborate on parameter usage or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Generate optimized LinkedIn content' and lists specific content types (headlines, summaries, posts), providing a clear verb-resource relationship. However, it does not distinguish this from sibling tools like 'linkedin_create_optimized_post', which may have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives (e.g., linkedin_create_optimized_post). There is no mention of prerequisites, context, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_get_auth_urlA

Generate LinkedIn OAuth authorization URL

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoOptional state parameter

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It states that the tool generates a URL, which is a safe, read-only operation. However, it does not disclose if the tool makes external calls, requires authentication, or has rate limits. For a simple URL generation tool, the description is minimally adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no extraneous information. It is front-loaded with the core purpose and efficient in conveying the tool's function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, no output schema, low complexity), the description is complete enough. It explains the tool's purpose without needing to detail return values. The context of OAuth flow is implied, but the description could mention what to do with the generated URL for better completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the single 'state' parameter is described). The description adds no additional context beyond the schema. Per the scoring rubric, high schema coverage gives a baseline of 3, and the description does not detract or add value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Generate') and the resource ('LinkedIn OAuth authorization URL'). It is distinct from sibling tools like linkedin_exchange_code, which handles the code exchange step, and other tools that involve creating posts or analyzing profiles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives, such as linkedin_exchange_code. However, by naming the output as an 'authorization URL', it implies a prerequisite step in the OAuth flow, providing limited implicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_get_feedC

πŸ“° Get LinkedIn feed/timeline posts

ParametersJSON Schema
NameRequiredDescriptionDefault
accessTokenYesLinkedIn access token
countNoNumber of posts to retrieve (default: 10, max: 50)
startNoStart position for pagination (default: 0)

TDQS

C2.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears full responsibility for behavioral disclosure. It merely states the operation without any details on authentication, rate limits, error handling, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with an emoji, making it concise but lacking structured information. The emoji adds no functional value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a feed retrieval tool, the description omits details about return format, pagination behavior (beyond basic parameters), and potential errors. It is insufficient for an agent to fully utilize the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds no extra parameter information beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'LinkedIn feed/timeline posts', making the tool's purpose unambiguous. It distinguishes from sibling tools like 'linkedin_get_user_posts' which focus on individual user posts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool over alternatives like 'linkedin_get_user_posts' or 'linkedin_get_post_details'. There is no mention of prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_get_post_commentsC

πŸ’¬ Get comments on a specific post

ParametersJSON Schema
NameRequiredDescriptionDefault
accessTokenYesLinkedIn access token
postIdYesLinkedIn post/share ID
countNoNumber of comments to retrieve (default: 10, max: 50)
startNoStart position for pagination (default: 0)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not mention authentication requirements, rate limits, or behavior when no comments exist. It only states the basic action, missing opportunities to add value beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with an emoji, which is concise but too minimal. It is front-loaded but lacks substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, no output schema, and no annotations, the description is insufficient. It does not cover return format, pagination details, or error handling, leaving the agent without critical context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage, so baseline is 3. The description does not add extra meaning to parameters like count or start; pagination behavior is implied but not explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves comments on a specific post, distinguishing it from siblings like get_feed or get_post_details. However, it lacks specificity about scope or filtering beyond the post ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as linkedin_get_post_details or linkedin_get_feed. No context on prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_get_post_detailsC

πŸ” Get detailed information about a specific post

ParametersJSON Schema
NameRequiredDescriptionDefault
accessTokenYesLinkedIn access token
postIdYesLinkedIn post/share ID
includeStatsNoInclude engagement statistics (default: true)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description fails to disclose what 'detailed information' includes, auth requirements, or any side effects. It does not compensate for the lack of structured metadata.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief but lacks essential details. It is front-loaded but too minimal to be fully useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and multiple sibling tools, the description is insufficient for an agent to understand the returned data or when to prefer this tool. Missing context on auth response format and statistics behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover all parameters, so baseline is 3. The tool description adds no extra meaning beyond the schema, such as postId format or the impact of includeStats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves detailed information about a post, but it does not differentiate it from siblings like linkedin_get_user_posts or linkedin_get_post_comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives or any prerequisites. Sibling tools exist that could overlap in functionality.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_get_user_activityB

πŸ“Š Get user's recent activity (likes, comments, shares)

ParametersJSON Schema
NameRequiredDescriptionDefault
accessTokenYesLinkedIn access token
activityTypesNoTypes of activities to retrieve (default: all)
countNoNumber of activities to retrieve (default: 20, max: 100)
startNoStart position for pagination (default: 0)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose authentication requirements beyond 'accessToken', rate limits, or what happens if the token is invalid. The mutability or side effects are not addressed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with an emoji, front-loading the purpose. It conveys the core function without extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description does not explain the response format, pagination behavior (beyond parameters), or error scenarios. Given the complexity and lack of output schema, the description is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%; all four parameters have descriptions in the schema. The tool description adds no extra meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get user's recent activity' with specific types in parentheses (likes, comments, shares), using a specific verb-resource pair. It distinguishes from sibling tools like 'linkedin_get_user_posts' by focusing on activity rather than posts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. Sibling tools like 'linkedin_get_user_posts' and 'linkedin_get_feed' exist, but the description provides no context for differentiation or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_get_user_infoC

Get user information via OpenID Connect

ParametersJSON Schema
NameRequiredDescriptionDefault
accessTokenYesLinkedIn access token

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only states the operation and protocol. It omits critical behavioral details such as error cases, authentication requirements beyond token presence, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence expresses the tool's purpose efficiently with no superfluous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite low complexity, the lack of an output schema and any description of return data means the agent cannot infer what user information is retrieved, leaving a significant gap for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter 'accessToken' is well-documented in the schema. The description adds 'via OpenID Connect' which provides context on token origin, but no additional syntax or constraints beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get user information via OpenID Connect' clearly conveys the action and resource, hinting at authentication-based identity data. However, it does not explicitly differentiate from sibling tools like 'linkedin_get_user_activity' which also retrieve user-related information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, nor does it mention prerequisites or context for invocation. The description is purely functional.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_get_user_postsA

πŸ“– Get user's own posts with pagination

ParametersJSON Schema
NameRequiredDescriptionDefault
accessTokenYesLinkedIn access token
countNoNumber of posts to retrieve (default: 10, max: 50)
startNoStart position for pagination (default: 0)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions pagination behavior but omits details like rate limits, authentication requirements (accessToken is required but implied), post ordering, or additional side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no redundant words. Efficiently conveys the core purpose and a key behavior (pagination).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description should hint at return format. It does not. The tool is simple but lacks information about what the response contains (e.g., list of posts, metadata). Adequate but incomplete given no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter described (accessToken, count, start). The description adds 'with pagination' which aligns with start and count, but does not provide extra semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get user's own posts with pagination' uses a specific verb and resource, clearly distinguishing it from sibling tools like 'linkedin_get_feed' (likely for feed posts). The emoji adds a helpful visual cue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. No explicit 'when not to use' or comparison to siblings such as 'linkedin_get_feed'. The agent must infer context from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

linkedin_post_profile_updateC

πŸ“’ Create a post announcing your profile updates

ParametersJSON Schema
NameRequiredDescriptionDefault
accessTokenYesLinkedIn access token
updateTypeYesType of profile update
detailsYesDetails about the update

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description lacks disclosure of side effects, authorization requirements, or rate limits. The accessToken parameter implies auth, but that's from schema, not description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is efficient and front-loaded. However, it may be too brief given the need for clarification on parameter usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 3 required parameters and no output schema, the description is minimally adequate but doesn't explain return values or error conditions. Sibling tools exist, so more context would help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The tool description adds no extra meaning beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (create a post) and the specific context (announcing profile updates). It distinguishes from sibling tools like linkedin_create_post by focusing on updates, but could be more explicit about the scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like linkedin_create_post or linkedin_create_optimized_post. Missing when-not-to-use and prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 13 tool updatesv1.1.0
    • First observedlinkedin_analyze_profile_from_data
    • First observedlinkedin_create_optimized_post
    • First observedlinkedin_create_post
    • First observedlinkedin_exchange_code
    • First observedlinkedin_generate_optimized_content
    • First observedlinkedin_get_auth_url
    • First observedlinkedin_get_feed
    • First observedlinkedin_get_post_comments
    • First observedlinkedin_get_post_details
    • First observedlinkedin_get_user_activity
    • First observedlinkedin_get_user_info
    • First observedlinkedin_get_user_posts
    • First observedlinkedin_post_profile_update

TDQS

B3.4/5.0
Disambiguation4/5

Most tools are clearly distinct, but there is some overlap between linkedin_create_post, linkedin_create_optimized_post, and linkedin_post_profile_update, which all create posts. The first two are distinguished by optimization, but the third could be confused as a different action. Overall, boundaries are mostly clear.

Naming Consistency5/5

All tools follow a consistent linkedin_verb_noun pattern using snake_case. Verbs like create, get, generate, and post are used predictably. The naming is uniform and easy to parse, with no mixing of conventions.

Tool Count5/5

With 13 tools, the server covers a substantial but focused set of LinkedIn operationsβ€”auth, profile, posts, feed, comments, and activity. This is well within the typical 3-15 range and feels complete without being bloated.

Completeness4/5

The tool surface covers the main LinkedIn use cases (auth, profile, posts, feed, comments, activity, optimization). Minor gaps exist, such as lacking update/delete operations for posts or comments, but the core workflows are supported and agents can operate without major dead ends.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A powerful LinkedIn Profile Analyzer that seamlessly integrates with Claude AI to fetch and analyze public LinkedIn profiles, enabling users to extract, search, and analyze posts data through RapidAPI's LinkedIn Data API.
    33
    MIT
  • A
    license
    B
    quality
    F
    maintenance
    Connects Claude Desktop to LinkedIn's data layer for AI-powered networking, enabling profile research, content creation and scheduling, engagement automation, analytics tracking, and messaging through natural language.
    14
    85
    41
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables Claude Desktop to manage your LinkedIn profile and company pages, including posting, reading posts, and fetching profile information.
    7
    214
    4
    MIT

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/Maheidem/linkedin-optimizer-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server