Skip to main content
Glama

@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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/markswendsen-code/mcp-linkedin'

If you have feedback or need assistance with the MCP directory API, please join our Discord server