MCP_Servers_

hardiksharmmaaaa/MCP_Servers_

3.2

If you are the rightful owner of MCP_Servers_ and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A Model Context Protocol (MCP) server for LinkedIn automation that provides tools for job searching, networking, and contact management.

Tools
3
Resources
0
Prompts
0

LinkedIn MCP Server

A Model Context Protocol (MCP) server for LinkedIn automation that provides three powerful tools for job searching, networking, and contact management.

šŸš€ Features

1. Job Search Tool (find_job_openings)

  • Searches for the latest job openings based on your skills
  • Filters by location, experience level, and job type
  • Returns formatted job listings with company details and direct links

2. Auto Connect & Outreach Tool (auto_connect_and_outreach)

  • Automatically finds and connects with relevant professionals
  • Sends personalized outreach messages
  • Targets specific roles and companies
  • Rate-limited to avoid LinkedIn restrictions

3. Contact Scraper Tool (scrape_contacts_to_excel)

  • Scrapes contact information from LinkedIn profiles
  • Exports data to Excel spreadsheets
  • Supports both direct profile URLs and search queries
  • Collects names, titles, companies, and available contact info

šŸ“ Project Structure

linkedin-mcp-server/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.js                 # Main MCP server implementation
│   └── linkedin-automation.js   # Core LinkedIn automation logic
ā”œā”€ā”€ package.json                 # Dependencies and scripts
ā”œā”€ā”€ config.example.env          # Environment configuration template
└── README.md                   # This documentation

šŸ› ļø Installation

Prerequisites

  • Node.js 18.0.0 or higher
  • npm or yarn
  • A LinkedIn account

Setup Steps

  1. Clone and install dependencies:

    npm install
    
  2. Configure environment (optional):

    cp config.example.env .env
    # Edit .env with your preferences
    
  3. Start the server:

    npm start
    

šŸ”§ How It Works

Architecture Flow:

  1. MCP Server Setup (src/index.js)

    • Initializes the MCP server with tool definitions
    • Handles incoming tool requests and routes them to appropriate functions
    • Returns formatted responses back to the MCP client
  2. LinkedIn Automation (src/linkedin-automation.js)

    • Uses Puppeteer to control a Chrome browser
    • Handles LinkedIn login (manual for security)
    • Implements web scraping and interaction logic
    • Manages rate limiting and error handling
  3. Tool Execution Flow:

    MCP Client → MCP Server → LinkedIn Automation → Browser → LinkedIn → Results
    

Security & Privacy:

  • Manual login required - No password storage
  • Rate limiting - Prevents account restrictions
  • Headless mode option - For production use
  • Error handling - Graceful failure management

šŸ“– Tool Usage

1. Find Job Openings

{
  "name": "find_job_openings",
  "arguments": {
    "skills": ["JavaScript", "React", "Node.js"],
    "location": "San Francisco",
    "experience_level": "mid",
    "job_type": "full-time"
  }
}

Parameters:

  • skills (required): Array of your skills to match against job postings
  • location (optional): Preferred job location (default: "Remote")
  • experience_level (optional): "entry", "mid", "senior", or "executive"
  • job_type (optional): "full-time", "part-time", "contract", or "internship"

2. Auto Connect & Outreach

{
  "name": "auto_connect_and_outreach",
  "arguments": {
    "target_roles": ["Software Engineer", "Frontend Developer"],
    "company_names": ["Google", "Microsoft", "Apple"],
    "message_template": "Hi {name}, I'm interested in opportunities at {company}. Would love to connect!",
    "max_connections": 15
  }
}

Parameters:

  • target_roles (required): Array of job titles/roles to target
  • company_names (optional): Specific companies to focus on
  • message_template (optional): Custom message with {name} and {company} placeholders
  • max_connections (optional): Maximum connections to send (default: 10, max: 50)

3. Scrape Contacts to Excel

{
  "name": "scrape_contacts_to_excel",
  "arguments": {
    "search_query": "Product Manager at Tech Companies",
    "excel_filename": "product_managers.xlsx"
  }
}

Or with specific profile URLs:

{
  "name": "scrape_contacts_to_excel",
  "arguments": {
    "profile_urls": [
      "https://www.linkedin.com/in/johndoe/",
      "https://www.linkedin.com/in/janedoe/"
    ],
    "excel_filename": "specific_contacts.xlsx"
  }
}

Parameters:

  • profile_urls (optional): Array of LinkedIn profile URLs to scrape
  • excel_filename (optional): Name of Excel file to save (default: "linkedin_contacts.xlsx")
  • search_query (optional): Search query to find profiles automatically

āš ļø Important Notes

LinkedIn Terms of Service

  • This tool is for educational and personal use
  • Respect LinkedIn's rate limits and terms of service
  • Use responsibly to avoid account restrictions
  • Consider LinkedIn's Premium features for enhanced functionality

Limitations

  • Contact Information: Email/phone numbers are often protected by LinkedIn's privacy settings
  • Rate Limiting: LinkedIn enforces strict limits on automated actions
  • Selector Changes: LinkedIn may update their website structure, requiring code updates
  • Account Security: Use manual login to maintain account security

Best Practices

  1. Start Small: Test with low limits first (5-10 connections)
  2. Add Delays: Respect rate limits to avoid detection
  3. Personalize Messages: Use meaningful connection requests
  4. Monitor Results: Check success rates and adjust accordingly
  5. Stay Updated: LinkedIn may change their interface

šŸ› ļø Development

Running in Development Mode

npm run dev

Testing

npm test

Browser Configuration

  • Set HEADLESS_MODE=true in .env for production
  • Browser will open for manual login on first run
  • Session persists until server restart

šŸ¤ Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

šŸ“„ License

MIT License - See LICENSE file for details

šŸ”® Future Enhancements

  • Support for LinkedIn Sales Navigator
  • Advanced message templates with AI
  • Integration with CRM systems
  • Automated follow-up sequences
  • Analytics and reporting dashboard
  • Multi-account management
  • Webhook integrations

Disclaimer: This tool is for educational purposes. Users are responsible for complying with LinkedIn's Terms of Service and applicable laws.