mcp-linkedin-server

MCP.Pizza Chef: alinaqi

The mcp-linkedin-server is a FastMCP-based server enabling automated LinkedIn interactions and data extraction through secure browser automation. It supports profile viewing, keyword-based profile search, feed browsing, and post engagement actions like liking and commenting. Features include secure authentication with encrypted cookie storage, session persistence, rate limiting, and automatic session recovery, ensuring compliance with LinkedIn's terms of service.

Use This MCP server To

Extract LinkedIn profile data programmatically Search LinkedIn profiles by keywords automatically Automate liking and commenting on LinkedIn posts Browse and analyze LinkedIn feed content Maintain persistent LinkedIn sessions with secure authentication Recover sessions automatically after interruptions Respect LinkedIn rate limits during automation

README

LinkedIn Browser MCP Server

A FastMCP-based server for LinkedIn automation and data extraction using browser automation. This server provides a set of tools for interacting with LinkedIn programmatically while respecting LinkedIn's terms of service and rate limits.

Features

  • Secure Authentication

    • Environment-based credential management
    • Session persistence with encrypted cookie storage
    • Rate limiting protection
    • Automatic session recovery
  • Profile Operations

    • View and extract profile information
    • Search for profiles based on keywords
    • Browse LinkedIn feed
    • Profile visiting capabilities
  • Post Interactions

    • Like posts
    • Comment on posts
    • Read post content and engagement metrics

Prerequisites

  • Python 3.8+
  • Playwright
  • FastMCP library
  • LinkedIn account

Installation

  1. Clone the repository:
git clone [repository-url]
cd mcp-linkedin-server
  1. Create and activate a virtual environment:
python -m venv env
source env/bin/activate  # On Windows: env\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
playwright install chromium
  1. Set up environment variables: Create a .env file in the root directory with:
LINKEDIN_USERNAME=your_email@example.com
LINKEDIN_PASSWORD=your_password
COOKIE_ENCRYPTION_KEY=your_encryption_key  # Optional: will be auto-generated if not provided

Usage

  1. Start the MCP server:
python linkedin_browser_mcp.py
  1. Available Tools:
  • login_linkedin_secure: Securely log in using environment credentials
  • browse_linkedin_feed: Browse and extract posts from feed
  • search_linkedin_profiles: Search for profiles matching criteria
  • view_linkedin_profile: View and extract data from specific profiles
  • interact_with_linkedin_post: Like, comment, or read posts

Example Usage

from fastmcp import FastMCP

# Initialize client
client = FastMCP.connect("http://localhost:8000")

# Login
result = await client.login_linkedin_secure()
print(result)

# Search profiles
profiles = await client.search_linkedin_profiles(
    query="software engineer",
    count=5
)
print(profiles)

# View profile
profile_data = await client.view_linkedin_profile(
    profile_url="https://www.linkedin.com/in/username"
)
print(profile_data)

Security Features

  • Encrypted cookie storage
  • Rate limiting protection
  • Secure credential management
  • Session persistence
  • Browser automation security measures

Best Practices

  1. Rate Limiting: The server implements rate limiting to prevent excessive requests:

    • Maximum 5 login attempts per hour
    • Automatic session reuse
    • Cookie persistence to minimize login needs
  2. Error Handling: Comprehensive error handling for:

    • Network issues
    • Authentication failures
    • LinkedIn security challenges
    • Invalid URLs or parameters
  3. Session Management:

    • Automatic cookie encryption
    • Session persistence
    • Secure storage practices

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

MIT

Disclaimer

This tool is for educational purposes only. Ensure compliance with LinkedIn's terms of service and rate limiting guidelines when using this software.

mcp-linkedin-server FAQ

How does mcp-linkedin-server handle authentication securely?
It uses environment-based credential management and encrypted cookie storage for session persistence.
Can mcp-linkedin-server automatically recover sessions if interrupted?
Yes, it supports automatic session recovery to maintain continuous operation.
Does the server respect LinkedIn's rate limits?
Yes, it includes rate limiting protection to comply with LinkedIn's usage policies.
What programming language and libraries are required?
Python 3.8+, Playwright for browser automation, and the FastMCP library are required.
Is it possible to interact with LinkedIn posts using this server?
Yes, you can like, comment, and read post content and engagement metrics.
How does the server ensure compliance with LinkedIn's terms of service?
By implementing rate limiting, secure authentication, and session management to avoid abusive behavior.
Can I search for LinkedIn profiles based on keywords?
Yes, the server supports keyword-based profile searches.
What platforms or environments does this server support?
It runs on any environment supporting Python 3.8+ and Playwright, typically local or cloud servers.