Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@LinkedIn MCP Serversearch for software engineer jobs at Anthropic in San Francisco"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@striderlabs/mcp-linkedin
A Model Context Protocol (MCP) server for LinkedIn automation, powered by Playwright and Browserbase.
Features
Tool | Description |
| Get a LinkedIn user profile (name, headline, experience, education) |
| Search job listings by title, location, and company |
| Get full details of a specific job posting |
| List your LinkedIn connections with optional name filter |
| Get recent messages and InMail conversations |
| 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-linkedinOr install from a local tarball:
npm install ./striderlabs-mcp-linkedin-1.0.0.tgzConfiguration
Set the following environment variable before starting the server:
Variable | Required | Description |
| 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_IDEnsure 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-linkedinClaude 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 devLicense
MIT — Copyright (c) 2024 Strider Labs