linkedin-toolkit-mcp
The MCP server, localhost bridge, HTTP action API, SQLite mirror and lit CLI for
LinkedIn Toolkit.
This package is the half that agents talk to. The other half is a Chrome extension that drives
your own logged-in LinkedIn session — there is no headless browser, no hosted service, no
account and no telemetry. This server does not touch LinkedIn itself; it hands actions to the
extension over a WebSocket on loopback and passes the answers back.
npx linkedin-toolkit-mcp
Pairing
- Install the extension: download the
linkedin-toolkit-extension-*.zip from
Releases, unzip it, then
chrome://extensions → Developer mode → Load unpacked → pick the folder.
- Run
npx linkedin-toolkit-mcp. The first run prints a pairing token and stores it in
~/.linkedin-toolkit/config.json (owner-only).
- Paste that token into the extension popup → Settings → Local bridge, and enable the bridge.
The badge turns to "connected".
Point your agent at the server. Claude Code, .mcp.json in your project root:
{
"mcpServers": {
"linkedin-toolkit": { "command": "npx", "args": ["-y", "linkedin-toolkit-mcp"] }
}
}
lit serve --http additionally exposes POST /actions/{action}, POST /mcp and
GET /openapi.json on 127.0.0.1:47830 for the Node and Python clients, n8n and anything else
that speaks HTTP. Everything binds to loopback and requires the pairing token as a bearer token.
Add --fake to any serve to run the whole surface without a LinkedIn account: real envelopes,
real error codes, demo data, no network calls.
lit cheat-sheet
lit serve --http
lit status
lit config get token --reveal
lit search "CTO fintech London" --json
lit profile ada-lovelace --json
lit invite ada-lovelace --note "…"
lit queue list
lit queue approve <id>
lit sync && lit sql "select * from profiles limit 5"
lit research rows.csv --out packs/
lit --help lists everything.
Safety
Copilot mode is on by default: invites, messages, InMails and comments from an agent wait in an
approval queue until a human approves them in the popup. Views, follows and likes are metered
against the visit bucket and go out directly. Daily hard caps live in the extension and cannot be
raised by this server, the CLI, an agent or a config file.
Automating your LinkedIn account may breach LinkedIn's User Agreement, and accounts are restricted
and banned for it. That risk is yours. Read
docs/safety.md before
you point anything at an account you care about.
Documentation
MIT licensed. Issues and pull requests:
https://github.com/OpenRecruiterTools/linkedin-toolkit