mcp linkedin server

Local 2025-09-01 00:22:02 0

A FastMCP-based server that enables programmatic LinkedIn automation and data extraction through browser automation, offering secure authentication and tools for profile operations and post interactions while respecting LinkedIn's rate limits.


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

  2. Create and activate a virtual environment:

    python -m venv env
    source env/bin/activate  # On Windows: envScriptsactivate

  3. Install dependencies:

    pip install -r requirements.txt
    playwright install chromium

  4. Set up environment variables: Create a .env file in the root directory with:

    [email protected]
    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

  2. Available Tools:

  3. login_linkedin_secure: Securely log in using environment credentials

  4. browse_linkedin_feed: Browse and extract posts from feed
  5. search_linkedin_profiles: Search for profiles matching criteria
  6. view_linkedin_profile: View and extract data from specific profiles
  7. 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:
  2. Maximum 5 login attempts per hour
  3. Automatic session reuse
  4. Cookie persistence to minimize login needs

  5. Error Handling: Comprehensive error handling for:

  6. Network issues
  7. Authentication failures
  8. LinkedIn security challenges
  9. Invalid URLs or parameters

  10. Session Management:

  11. Automatic cookie encryption
  12. Session persistence
  13. 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.