P
mcp-linkedin-server
...
Created 2/18/2025byalinaqi
Language:
Python
Stars:
2
Forks:
0
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
- Clone the repository:
git clone [repository-url]
cd mcp-linkedin-server
- Create and activate a virtual environment:
python -m venv env
source env/bin/activate # On Windows: env\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
playwright install chromium
- 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
- Start the MCP server:
python linkedin_browser_mcp.py
- Available Tools:
login_linkedin_secure
: Securely log in using environment credentialsbrowse_linkedin_feed
: Browse and extract posts from feedsearch_linkedin_profiles
: Search for profiles matching criteriaview_linkedin_profile
: View and extract data from specific profilesinteract_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
-
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
-
Error Handling: Comprehensive error handling for:
- Network issues
- Authentication failures
- LinkedIn security challenges
- Invalid URLs or parameters
-
Session Management:
- Automatic cookie encryption
- Session persistence
- Secure storage practices
Contributing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- 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.
Last updated: 3/1/2025
Publisher info
Ali Shaheen
Constantly hacking. Applying AI to improve customer & employee experiences.
12
followers4
following35
reposMore MCP servers built with Python
mcp-logo-gen
By sshtunnelvision137