markswendsen-code

@striderlabs/mcp-linkedin

Community markswendsen-code
Updated

MCP connector for linkedin

@striderlabs/mcp-linkedin

A Model Context Protocol (MCP) server for LinkedIn automation, powered by Playwright and Browserbase.

Features

Tool Description
get_profile Get a LinkedIn user profile (name, headline, experience, education)
search_jobs Search job listings by title, location, and company
get_job_details Get full details of a specific job posting
get_connections List your LinkedIn connections with optional name filter
get_messages Get recent messages and InMail conversations
send_connection_request Send a connection request with an optional personalised note

Requirements

  • Node.js 18+
  • A Browserbase account with a CDP-enabled session URL
  • LinkedIn account (the browser session must already be logged in to LinkedIn)

Installation

npm install @striderlabs/mcp-linkedin

Or install from a local tarball:

npm install ./striderlabs-mcp-linkedin-1.0.0.tgz

Configuration

Set the following environment variable before starting the server:

Variable Required Description
BROWSERBASE_CDP_URL Yes Browserbase CDP WebSocket endpoint URL

Getting your Browserbase CDP URL

  1. Create a session in the Browserbase dashboard or via their API.
  2. The session will expose a CDP WebSocket URL, typically in the format:
    wss://connect.browserbase.com?apiKey=YOUR_API_KEY&sessionId=SESSION_ID
    
  3. Ensure the browser session is logged into LinkedIn before invoking LinkedIn tools.

Usage

Running the MCP server

BROWSERBASE_CDP_URL="wss://connect.browserbase.com?apiKey=..." npx @striderlabs/mcp-linkedin

Claude Desktop configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "linkedin": {
      "command": "npx",
      "args": ["-y", "@striderlabs/mcp-linkedin"],
      "env": {
        "BROWSERBASE_CDP_URL": "wss://connect.browserbase.com?apiKey=YOUR_KEY&sessionId=YOUR_SESSION"
      }
    }
  }
}

Tool Reference

get_profile

Fetch a LinkedIn profile summary.

{
  "profile_url": "https://www.linkedin.com/in/username"
}

Omit profile_url to fetch the currently logged-in user's own profile.

search_jobs

Search for job listings.

{
  "title": "Software Engineer",
  "location": "San Francisco",
  "company": "Anthropic",
  "limit": 10
}

All fields are optional. limit defaults to 10 (max 25).

get_job_details

Get full details of a job posting.

{
  "job_url": "https://www.linkedin.com/jobs/view/1234567890"
}

get_connections

List your connections.

{
  "limit": 20,
  "search": "Alice"
}

search is optional. limit defaults to 20 (max 50).

get_messages

Get recent message conversations.

{
  "limit": 10
}

limit defaults to 10 (max 20).

send_connection_request

Send a connection request.

{
  "profile_url": "https://www.linkedin.com/in/username",
  "note": "Hi! I'd love to connect and discuss opportunities."
}

note is optional and must be 300 characters or fewer (LinkedIn limit).

Important Notes

  • Authentication: This server does not handle LinkedIn login. Your Browserbase session must already be authenticated with LinkedIn.
  • Rate limits: LinkedIn may rate-limit or flag automated activity. Use responsibly.
  • Selectors: LinkedIn frequently updates its UI. If scraping breaks, the CSS selectors in src/index.ts may need updating.
  • LinkedIn ToS: Automated access to LinkedIn may violate their Terms of Service. Use for personal productivity and authorised use cases only.

Development

# Install dependencies
npm install

# Build TypeScript
npm run build

# Run in development mode
npm run dev

License

MIT โ€” Copyright (c) 2024 Strider Labs

MCP Server ยท Populars

MCP Server ยท New