Content
# MCP LinkedIn Sales Navigator
[](https://github.com/globodai-group/mcp-linkedin-sales-navigator/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/globodai-mcp-linkedin-sales-navigator)
**MCP server for LinkedIn Sales Navigator** — Browser automation via Playwright.
> LinkedIn Sales Navigator doesn't provide a public API. This MCP server uses browser automation (Playwright) to control Sales Navigator through an authenticated browser session. It enables AI assistants to search leads, view profiles, manage lists, send InMails, and export data — all through the standard [Model Context Protocol](https://modelcontextprotocol.io/).
## ⚠️ Important Disclaimers
- **This tool requires an active LinkedIn Sales Navigator subscription**
- **Browser automation**: This operates by controlling a real browser — no API hacking
- **Session required**: You must be logged into LinkedIn in the browser instance
- **Rate limiting**: Use responsibly. LinkedIn may restrict accounts that perform excessive automation
- **Terms of Service**: Review LinkedIn's ToS before using automation tools
- **No credentials stored**: This tool never stores or handles LinkedIn passwords
## Features
| Tool | Description |
|------|-------------|
| `linkedin_search_leads` | Search leads with filters (title, company, location, industry, seniority, etc.) |
| `linkedin_get_lead_profile` | Get detailed profile information for a lead |
| `linkedin_save_lead` | Save a lead to a list |
| `linkedin_list_lead_lists` | List all lead lists |
| `linkedin_create_lead_list` | Create a new lead list |
| `linkedin_send_inmail` | Send an InMail message (with dry-run support) |
| `linkedin_export_leads` | Export leads to JSON or CSV format |
## Quick Start
### Prerequisites
- **Node.js** ≥ 20
- **LinkedIn Sales Navigator** subscription with active session
- A browser with an active LinkedIn login (Chrome recommended)
### Install
```bash
npm install globodai-mcp-linkedin-sales-navigator
```
Or clone and build from source:
```bash
git clone https://github.com/globodai-group/mcp-linkedin-sales-navigator.git
cd mcp-linkedin-sales-navigator
npm install
npm run build
```
### Configuration
The server is configured via environment variables:
| Variable | Default | Description |
|----------|---------|-------------|
| `LSN_AUTH_METHOD` | `cdp` | Authentication method: `cdp`, `session`, or `cookies` |
| `LSN_CDP_ENDPOINT` | `http://localhost:9222` | Chrome DevTools Protocol endpoint |
| `LSN_USER_DATA_DIR` | — | Path to Chrome user data directory (for `session` method) |
| `LSN_COOKIES_PATH` | — | Path to cookies JSON file (for `cookies` method) |
| `LSN_HEADLESS` | `false` | Run browser in headless mode |
| `LSN_VIEWPORT_WIDTH` | `1280` | Browser viewport width |
| `LSN_VIEWPORT_HEIGHT` | `900` | Browser viewport height |
| `LSN_NAVIGATION_TIMEOUT` | `30000` | Navigation timeout in ms |
| `LSN_ACTION_TIMEOUT` | `10000` | Action timeout in ms |
## Authentication Methods
### 1. CDP (Chrome DevTools Protocol) — Recommended
Connect to an already-running Chrome browser with an active LinkedIn session.
Start Chrome with remote debugging:
```bash
# macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
--remote-debugging-port=9222
# Linux
google-chrome --remote-debugging-port=9222
# Windows
chrome.exe --remote-debugging-port=9222
```
Then log into LinkedIn Sales Navigator manually. The MCP server connects to this browser.
```bash
LSN_AUTH_METHOD=cdp LSN_CDP_ENDPOINT=http://localhost:9222 npx globodai-mcp-linkedin-sales-navigator
```
### 2. User Data Directory
Use an existing Chrome profile that's already logged into LinkedIn:
```bash
LSN_AUTH_METHOD=session LSN_USER_DATA_DIR=/path/to/chrome/profile npx globodai-mcp-linkedin-sales-navigator
```
### 3. Cookie-Based
Export your LinkedIn cookies and provide them as a JSON file:
```bash
LSN_AUTH_METHOD=cookies LSN_COOKIES_PATH=/path/to/linkedin-cookies.json npx globodai-mcp-linkedin-sales-navigator
```
## Clawdbot / CORTX Integration
This MCP server is designed to work seamlessly with [Clawdbot](https://clawd.bot) browser relay:
```json
{
"mcpServers": {
"linkedin-sales-navigator": {
"command": "npx",
"args": ["globodai-mcp-linkedin-sales-navigator"],
"env": {
"LSN_AUTH_METHOD": "cdp",
"LSN_CDP_ENDPOINT": "http://localhost:9222"
}
}
}
}
```
When using Clawdbot's browser relay, the AI assistant can directly control a browser tab where you're logged into Sales Navigator — no additional setup needed.
## Tool Examples
### Search for leads
```json
{
"tool": "linkedin_search_leads",
"arguments": {
"title": "VP of Engineering",
"location": "San Francisco Bay Area",
"companySize": "201-500",
"industry": "Computer Software"
}
}
```
### Get a lead's profile
```json
{
"tool": "linkedin_get_lead_profile",
"arguments": {
"profileUrl": "https://www.linkedin.com/sales/lead/ACwAAAxxxxxx"
}
}
```
### Send an InMail (with dry run)
```json
{
"tool": "linkedin_send_inmail",
"arguments": {
"profileUrl": "https://www.linkedin.com/sales/lead/ACwAAAxxxxxx",
"subject": "Quick question about your team",
"body": "Hi, I noticed your team is growing...",
"dryRun": true
}
}
```
### Export leads to CSV
```json
{
"tool": "linkedin_export_leads",
"arguments": {
"source": "current_search",
"format": "csv",
"limit": 50
}
}
```
## Architecture
```
┌─────────────────────────────────────────────────┐
│ AI Assistant (Claude, GPT, etc.) │
│ ↕ MCP Protocol (stdio) │
├─────────────────────────────────────────────────┤
│ MCP Server (this package) │
│ ├── Tools (search, leads, inmails, lists, etc.)│
│ ├── Browser Controller (Playwright) │
│ └── Selectors & Auth │
├─────────────────────────────────────────────────┤
│ Playwright → Chromium / Chrome │
│ ↕ CDP or Direct │
├─────────────────────────────────────────────────┤
│ LinkedIn Sales Navigator (web app) │
└─────────────────────────────────────────────────┘
```
## Development
```bash
# Install dependencies
npm install
# Install Playwright browsers
npx playwright install chromium
# Development mode (watch)
npm run dev
# Build
npm run build
# Lint
npm run lint
# Type check
npm run typecheck
```
## Selector Maintenance
LinkedIn periodically updates their DOM structure. If tools stop working:
1. Open Sales Navigator in Chrome DevTools
2. Inspect the elements that changed
3. Update selectors in `src/browser/selectors.ts`
4. Submit a PR with the updated selectors
## License
MIT — see [LICENSE](LICENSE)
## Disclaimer
This project is not affiliated with, endorsed by, or sponsored by LinkedIn Corporation. LinkedIn and Sales Navigator are trademarks of LinkedIn Corporation. Use this tool responsibly and in accordance with LinkedIn's Terms of Service.
MCP Config
Below is the configuration for this MCP Server. You can copy it directly to Cursor or other MCP clients.
mcp.json
Connection Info
You Might Also Like
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
firecrawl
Firecrawl MCP Server enables web scraping, crawling, and content extraction.
Appwrite
Build like a team of hundreds
Context 7
Context7 MCP provides up-to-date code documentation for any prompt.
awesome-claude-skills
A curated list of awesome Claude Skills, resources, and tools for...
semantic-kernel
Build and deploy intelligent AI agents with Semantic Kernel's orchestration...