Skip to main content

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.

Metadata

Release files for iflow-mcp_mcp-linkedin-server 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iflow-mcp_mcp-linkedin-server 1.0.0
File Size Uploaded
iflow_mcp_mcp_linkedin_server-1.0.0.tar.gz 3.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iflow-mcp_mcp-linkedin-server 1.0.0
File Interpreter ABI Platform
iflow_mcp_mcp_linkedin_server-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 6.2 kB

Release files / iflow_mcp_mcp_linkedin_server-1.0.0.tar.gz

Download URL iflow_mcp_mcp_linkedin_server-1.0.0.tar.gz
Size 3.0 kB
Tags Source
SHA-256 checksum
How to use checksums
56a2fd357702ef48859b7dc76366eb34bc5e0e2fa30137b879f2f8c86268a3e1
BLAKE2b-256 checksum
How to use checksums
bba730f82124eda93785554495a2def16f537be08c21fba9cd4f0fe60f7449ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.8

Release files / iflow_mcp_mcp_linkedin_server-1.0.0-py3-none-any.whl

Download URL iflow_mcp_mcp_linkedin_server-1.0.0-py3-none-any.whl
Size 3.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
49890f52fa87ccaae8301f9858b345bcbd8947a584b7594275a1667fad2d8981
BLAKE2b-256 checksum
How to use checksums
cf9bd03494f627613cb9cfc3a9e6a19d68672bc53dc1a10d20cab7f406684e75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.8

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page