LinkedIn MCP Zero

LinkedIn MCP Zero

32 MCP tools for job search, resume analysis, matching, alerts, and exports using public LinkedIn endpoints, with optional read-only browser intelligence.

Category
Visit Server

README

<div align="center">

██╗     ██╗███╗   ██╗██╗  ██╗███████╗██████╗ ██╗███╗   ██╗
██║     ██║████╗  ██║██║ ██╔╝██╔════╝██╔══██╗██║████╗  ██║
██║     ██║██╔██╗ ██║█████╔╝ █████╗  ██║  ██║██║██╔██╗ ██║
██║     ██║██║╚██╗██║██╔═██╗ ██╔══╝  ██║  ██║██║██║╚██╗██║
███████╗██║██║ ╚████║██║  ██╗███████╗██████╔╝██║██║ ╚████║
╚══════╝╚═╝╚═╝  ╚═══╝╚═╝  ╚═╝╚══════╝╚═════╝ ╚═╝╚═╝  ╚═══╝
             MCP ZERO - public-first LinkedIn intelligence

LinkedIn MCP Zero

32 MCP tools for jobs, resumes, matching, alerts, exports, and optional read-only browser intelligence.

No Docker required · Public-first · Low-RAM friendly · FastMCP · PyPI published

PyPI Python License MCP

</div>

The Promise

LinkedIn MCP Zero gives AI agents useful LinkedIn intelligence while staying honest about risk:

Principle What it means
Public-first Job search/details use public LinkedIn guest endpoints. No account required.
Read-only No automated posting, applying, connecting, or messaging.
Local by default Resume parsing, alerts, matching, exports, and state live on your machine.
Lazy browser Chrome/CDP tools load only when called, then auto-unload after idle time.
Low-spec friendly The server detects RAM/disk and recommends full, balanced, or lean.
Easy install Claude Code, Claude Desktop, Cursor, and custom MCP clients work with one command.

Install In 10 Seconds

Check your system:

uvx mcp-server-linkedin-zero --doctor

Run as an MCP server:

uvx mcp-server-linkedin-zero

Use the latest GitHub source instead of PyPI:

uvx --from git+https://github.com/SanthaKumar-K-2004/linkedin-mcp-zero mcp-server-linkedin-zero --doctor

One-Line Agent Setup

Claude Code:

claude mcp add linkedin-zero -- uvx mcp-server-linkedin-zero

Claude Desktop:

uvx mcp-server-linkedin-zero --install-client claude-desktop

Claude Desktop with browser/profile/feed tools enabled:

uvx mcp-server-linkedin-zero --install-client claude-desktop --with-extra browser

Cursor, run inside the project where you want .cursor/mcp.json:

uvx mcp-server-linkedin-zero --install-client cursor

Custom MCP clients:

uvx mcp-server-linkedin-zero

Streamable HTTP:

uvx mcp-server-linkedin-zero --transport streamable-http --host 127.0.0.1 --port 8000

GitHub-source agent setup:

claude mcp add linkedin-zero -- uvx --from git+https://github.com/SanthaKumar-K-2004/linkedin-mcp-zero mcp-server-linkedin-zero

Safe Auto Config

The installer does not overwrite your whole MCP config. It:

  • Finds the right config path for Claude Desktop or Cursor.
  • Creates missing folders.
  • Reads existing JSON.
  • Preserves every other MCP server.
  • Adds or updates only linkedin-zero.
  • Uses the absolute uvx path so GUI apps do not fail on missing shell PATH.
  • Adds HOME and a safe PATH to the MCP server environment.
  • Creates a timestamped .bak backup before saving.
  • If the current config JSON is broken, saves it as .invalid.<timestamp>.bak.
  • Recovers from the latest valid backup when one exists.
  • Writes JSON atomically.

Manual config:

{
  "mcpServers": {
    "linkedin-zero": {
      "command": "uvx",
      "args": ["mcp-server-linkedin-zero"]
    }
  }
}

Print the config without editing files:

uvx mcp-server-linkedin-zero --print-config

Print a browser-enabled config:

uvx mcp-server-linkedin-zero --print-config --with-extra browser

Platform Matrix

Platform Command
Claude Code claude mcp add linkedin-zero -- uvx mcp-server-linkedin-zero
Claude Desktop uvx mcp-server-linkedin-zero --install-client claude-desktop
Cursor uvx mcp-server-linkedin-zero --install-client cursor
Custom stdio client uvx mcp-server-linkedin-zero
HTTP client uvx mcp-server-linkedin-zero --transport streamable-http --port 8000
Docker Not required
Low-spec laptop Supported, browser tools stay lazy

What --doctor Checks

uvx mcp-server-linkedin-zero --doctor

It detects:

  • OS and Python version.
  • Python executable.
  • CPU count.
  • Total and available RAM.
  • Free disk.
  • Local data directory.
  • Chrome, Chromium, Brave, or Edge.
  • CDP URL.
  • Docker/display state.
  • Optional packages: JobSpy, PyMuPDF, Playwright, Patchright.
  • Recommended mode: full, balanced, or lean.

Example:

{
  "python": "3.12.13",
  "cpu_count": 8,
  "ram_total_mb": 7135,
  "ram_available_mb": 2539,
  "chrome": "/usr/bin/google-chrome",
  "mode": "full",
  "notes": ["Browser tools need `uv sync --extra browser`."]
}

Tool Inventory

# Tool Engine Risk What it does
1 search_jobs E1 Zero Search LinkedIn jobs
2 search_jobs_multi E1 Zero Search LinkedIn, Indeed, Google, ZipRecruiter, Glassdoor
3 get_job_details E1 Zero Full public job details
4 get_company_jobs E1 Zero Public jobs at a company
5 get_company_profile E1 Zero Company signals from public jobs
6 search_companies E1 Zero Company search from job signals
7 get_job_salary E1 Zero Salary extraction
8 get_job_trends E1 Zero Role/location trend summary
9 get_industry_insights E1 Zero Industry job insights
10 search_jobs_advanced E1 Zero Search with filters
11 analyze_resume RE Zero Parse TXT, MD, DOCX, optional PDF
12 get_resume_insights RE Zero Skill gaps and suggestions
13 match_jobs_to_resume ME Zero Rank jobs against resume
14 compare_jobs ME Zero Compare 2-5 jobs
15 export_jobs LO Zero CSV/JSON export
16 save_job_alert ST Zero Save recurring search
17 get_saved_alerts ST Zero List alerts
18 check_saved_alerts E1+ST Zero Run alerts and find new matches
19 get_my_profile E2 Minimal Read your profile through Chrome CDP
20 get_person_profile E2 Minimal Read a public/person profile
21 search_people E2 Minimal LinkedIn people search
22 get_my_connections E2 Minimal Read connection list
23 get_inbox E2 Minimal Read inbox list
24 get_conversation E2 Minimal Read one thread
25 get_feed E2 Minimal Read home feed
26 get_notifications E2 Minimal Read notifications
27 get_sidebar_profiles E2 Minimal Read sidebar suggestions
28 get_company_employees E2 Low Read company people page
29 check_session E2 Minimal Check Chrome/CDP readiness
30 get_engine_status System Zero Runtime and engine status
31 get_help System Zero Tool documentation
32 get_profile_voyager E3 Low Gated off by default

Architecture

Claude / Cursor / Custom Agent
        |
        | MCP stdio or Streamable HTTP
        v
┌──────────────────────────────────────────────────────────────┐
│ LinkedIn MCP Zero                                            │
│                                                              │
│  FastMCP tool layer  ->  32 compact tools                    │
│          |                                                   │
│          +-- E1 Public APIs      LinkedIn guest jobs         │
│          +-- Resume Engine       local TXT/MD/DOCX/PDF       │
│          +-- Matching Engine     local scoring               │
│          +-- Storage             SQLite + exports            │
│          +-- E2 Browser          real Chrome via CDP         │
│          +-- E3 Voyager          off by default              │
│                                                              │
│  Shared: cache, rate limit, config, autodetect, logging      │
└──────────────────────────────────────────────────────────────┘

Hidden Gems Wired

Hidden gem Used for
LinkedIn Guest Jobs API Zero-login public job search/details
JobSpy Optional 5-board job search
JSON-LD Schema.org Stable salary, skills, dates, job detail parsing
FastMCP MCP server, schemas, stdio/HTTP transports
Chrome DevTools Protocol Real Chrome read-only profile/feed/inbox tools
Patchright Opt-in fallback when CDP is unavailable
python-docx + PyMuPDF Local resume parsing
pydantic-settings Type-safe environment config
structlog Structured logs

Full-Power Local Mode

Clone and install everything:

git clone https://github.com/SanthaKumar-K-2004/linkedin-mcp-zero.git
cd linkedin-mcp-zero
uv sync --extra dev --extra multi --extra pdf --extra browser

Run checks:

uv run pytest
uv run ruff check .
uv run linkedin-mcp-zero --doctor

Run server:

uv run linkedin-mcp-zero

Browser Tools

Important: uvx runs this MCP in an isolated Python environment. If Playwright is installed globally, in Node, or in another virtual environment, this MCP will not see it. Browser support must be installed in the MCP runtime with the browser extra.

Install Claude Desktop config with browser extra:

uvx mcp-server-linkedin-zero --install-client claude-desktop --with-extra browser

Install Cursor config with browser extra:

uvx mcp-server-linkedin-zero --install-client cursor --with-extra browser

Start Chrome with CDP:

google-chrome --remote-debugging-port=9222

Then call:

check_session
get_my_profile
search_people
get_feed
get_inbox

Opt-in Patchright fallback:

LINKEDIN_MCP_ENABLE_PATCHRIGHT_FALLBACK=true uvx mcp-server-linkedin-zero

Optional Extras Guide

Feature Why status may show unavailable Fix
Browser tools Python Playwright is not installed inside uvx MCP runtime --with-extra browser
Multi-board search JobSpy is not installed inside uvx MCP runtime --with-extra multi
PDF resume parsing PyMuPDF is not installed inside uvx MCP runtime --with-extra pdf

Examples:

uvx mcp-server-linkedin-zero --install-client claude-desktop --with-extra browser
uvx mcp-server-linkedin-zero --install-client claude-desktop --with-extra multi
uvx mcp-server-linkedin-zero --install-client claude-desktop --with-extra pdf

Combine extras:

uvx mcp-server-linkedin-zero --install-client claude-desktop --with-extra browser --with-extra multi --with-extra pdf

For a local clone:

uv sync --extra browser --extra multi --extra pdf
uv run linkedin-mcp-zero --install-client claude-desktop

Low-Spec Mode

No Docker. No always-on browser. No heavy services.

If RAM or disk is low, the server still works:

  • Public job tools keep running.
  • Resume tools stay local.
  • Alerts use SQLite.
  • Browser tools wait until called.
  • Browser auto-unloads after idle time.
  • Optional extras are skipped unless installed.

Quality is not reduced; only engine loading is smarter.

Development And Release

Build:

uv build

Publish a new version:

uv publish

Publish the current 0.1.2 installer-recovery patch:

UV_PUBLISH_TOKEN="pypi-YOUR_NEW_TOKEN" uv publish dist/mcp_server_linkedin_zero-0.1.2*

Run from PyPI:

uvx mcp-server-linkedin-zero

Run from GitHub source:

uvx --from git+https://github.com/SanthaKumar-K-2004/linkedin-mcp-zero mcp-server-linkedin-zero

Safety

This project intentionally avoids automated write actions. It does not apply to jobs, send messages, create posts, connect with people, or modify your LinkedIn account. Browser tools are read-only and require your own Chrome session.

Voyager is gated off by default because it is riskier than public APIs or real browser reading.

License

Apache 2.0. See LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured