An MCP server for LinkedIn automation powered by Playwright and Browserbase.
@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
- Create a session in the Browserbase dashboard or via their API.
- The session will expose a CDP WebSocket URL, typically in the format:
wss://connect.browserbase.com?apiKey=YOUR_API_KEY&sessionId=SESSION_ID - 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.tsmay 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
Tools (6)
get_profileGet a LinkedIn user profile including name, headline, experience, and education.search_jobsSearch job listings by title, location, and company.get_job_detailsGet full details of a specific job posting.get_connectionsList your LinkedIn connections with an optional name filter.get_messagesGet recent messages and InMail conversations.send_connection_requestSend a connection request with an optional personalised note.Environment Variables
BROWSERBASE_CDP_URLrequiredBrowserbase CDP WebSocket endpoint URLConfiguration
{"mcpServers": {"linkedin": {"command": "npx", "args": ["-y", "@striderlabs/mcp-linkedin"], "env": {"BROWSERBASE_CDP_URL": "wss://connect.browserbase.com?apiKey=YOUR_KEY&sessionId=YOUR_SESSION"}}}}