Skip to main content
██╗     ██╗███╗   ██╗██╗  ██╗███████╗██████╗ ██╗███╗   ██╗
██║     ██║████╗  ██║██║ ██╔╝██╔════╝██╔══██╗██║████╗  ██║
██║     ██║██╔██╗ ██║█████╔╝ █████╗  ██║  ██║██║██╔██╗ ██║
███████╗██║██║ ╚████║██║  ██╗███████╗██████╔╝██║██║ ╚████║
             MCP ZERO - public-first LinkedIn intelligence

LinkedIn MCP Zero

A public-first MCP server for LinkedIn jobs, resumes, matching, alerts, exports, and opt-in read-only browser intelligence.

No Docker required · Claude Desktop ready · Claude Code ready · Low-RAM friendly · PyPI published

PyPI Python License MCP

Install In One Command

Client Command
Claude Desktop uvx --refresh-package mcp-server-linkedin-zero mcp-server-linkedin-zero --install-client claude-desktop
Claude Code uvx --refresh-package mcp-server-linkedin-zero mcp-server-linkedin-zero --install-client claude-code
Cursor uvx mcp-server-linkedin-zero --install-client cursor
VS Code uvx mcp-server-linkedin-zero --install-client vscode
Any stdio client uvx mcp-server-linkedin-zero
uvx mcp-server-linkedin-zero --doctor

Verify after install:

uvx --refresh-package mcp-server-linkedin-zero mcp-server-linkedin-zero --verify-client claude-desktop

Browser mode:

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

Tool Inventory

Default Tools: 23 Working

These work without LinkedIn login or browser setup.

# Tool Feature Risk
1 search_jobs Search public LinkedIn jobs Public no-login
2 search_jobs_multi Multi-board search; LinkedIn fallback by default Public no-login
3 get_job_details Full public job details Public no-login
4 get_company_jobs Public jobs for a company Public no-login
5 get_company_profile Company signals inferred from public jobs Public no-login
6 search_companies Company discovery from public job data Public no-login
7 get_job_salary Salary extraction from job detail pages Public no-login
8 get_job_trends Role/location hiring trends Public no-login
9 get_industry_insights Market signals for an industry Public no-login
10 search_jobs_advanced Job search with filters Public no-login
11 analyze_resume Local PDF/DOCX/text resume parsing Local
12 get_resume_insights Local skill gaps and suggestions Local
13 match_jobs_to_resume Rank public jobs against a resume Local/public
14 compare_jobs Compare selected jobs Local/public
15 export_jobs Export jobs to CSV/JSON/XLSX Local
16 save_job_alert Save a recurring search Local
17 get_saved_alerts List saved searches Local
18 check_saved_alerts Run alerts and find new matches Local/public
19 get_engine_status Runtime, engine, token, cache status Local
20 get_help Tool documentation Local
21 get_usage_stats Local response-size/token estimates Local
22 get_tool_usage_summary Aggregate local usage by tool Local
23 reset_usage_stats Clear local usage metrics Local

Browser Tools: +11

Enable with --with-extra browser or --enable-browser. These are read-only, but they use your logged-in browser session.

# Tool Feature
24 get_my_profile Read your profile
25 get_person_profile Read a public/person profile page
26 search_people People search through browser
27 get_my_connections Read your connection list
28 get_inbox Recent conversations list
29 get_conversation Read a conversation thread
30 get_feed Read home feed posts
31 get_notifications Read notifications
32 get_sidebar_profiles Suggested/sidebar profiles
33 get_company_employees Company people page
34 check_session Check CDP/login readiness

Gated Private-Risk Tool: +1

# Tool Feature
35 get_profile_voyager Voyager/private API placeholder, disabled by default

Default mode exposes 23 usable tools: 22 core local/public tools plus search_jobs_multi, which falls back to LinkedIn-only results unless the multi extra is installed. Browser tools appear only with --enable-browser or --with-extra browser in an installed client config. Voyager/private API mode is hidden unless explicitly enabled.

Tool counts:

Mode Exposed Tools Notes
Default 23 Safe local/public tools; no LinkedIn login required
Browser enabled 34 Adds 11 read-only browser tools; needs Chrome/CDP login
Browser + Voyager 35 Adds gated private-API placeholder

Safety Model

Mode Label Account Risk
Local resume/alerts/exports local_zero_account_risk None
Public no-login job data public_no_login_read_only No LinkedIn login required
Browser tools browser_readonly_account_risk Opt-in account risk
Voyager/private API disabled_private_api_risk Disabled by default

No tool posts, likes, connects, follows, applies, or sends messages.

Browser Mode

Install browser dependencies into the isolated uvx runtime:

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

Start Chrome with remote debugging and log in manually:

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

Then call check_session from your MCP client.

Global Playwright installs do not count for uvx; use --with-extra browser.

Token Usage Tracking

Claude Desktop has no built-in per-MCP token counter. This server provides a privacy-safe tracker instead:

  • Estimated tokens: ceil(response_chars / 4), always on.
  • Exact-style counts: optional Anthropic /v1/messages/count_tokens.
  • Full tool responses are not stored in the metrics database.
  • Exact-style counting sends the counted response text to Anthropic only when ANTHROPIC_API_KEY and LINKEDIN_MCP_EXACT_TOKEN_COUNT=true are both set.

Enable exact-style counting:

ANTHROPIC_API_KEY=sk-ant-... LINKEDIN_MCP_EXACT_TOKEN_COUNT=true uvx mcp-server-linkedin-zero

Use a different token-count model if needed:

LINKEDIN_MCP_TOKEN_COUNT_MODEL=claude-sonnet-4-5

Usage tools:

get_usage_stats
get_tool_usage_summary
reset_usage_stats

Avoid terminal transcript logging as a token strategy; it can expose private profile, inbox, resume, or job data.

Client Config

Print without editing files:

uvx mcp-server-linkedin-zero --print-config --client claude-desktop
uvx mcp-server-linkedin-zero --print-config --client vscode

Claude Desktop and Cursor use:

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

VS Code uses:

{
  "servers": {
    "linkedin-zero": {
      "command": "/absolute/path/to/uvx",
      "args": ["mcp-server-linkedin-zero"]
    }
  }
}

Doctor

uvx mcp-server-linkedin-zero --doctor
uvx mcp-server-linkedin-zero --doctor --json

Checks OS, Python, RAM, disk, Chrome, CDP URL, display state, optional extras, and recommended mode.

Development

uv sync --extra dev
uv run --extra dev ruff check .
uv run --extra dev pytest
uv build

Publish only the new version files:

UV_PUBLISH_TOKEN=... uv publish dist/mcp_server_linkedin_zero-0.2.0*

Metadata

Release files for mcp-server-linkedin-zero 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-server-linkedin-zero 0.2.0
File Size Uploaded Provenance
mcp_server_linkedin_zero-0.2.0.tar.gz 204.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-server-linkedin-zero 0.2.0
File Interpreter ABI Platform
mcp_server_linkedin_zero-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 248.0 kB

Release files / mcp_server_linkedin_zero-0.2.0.tar.gz

Download URL mcp_server_linkedin_zero-0.2.0.tar.gz
Size 204.9 kB
Tags Source
SHA-256 checksum
How to use checksums
1a93af8ec71c23b9df22f077a7da05e44a4df02125a4c975da1270ad3805dec8
BLAKE2b-256 checksum
How to use checksums
2c2317cf68598c96bb9ac7306917be7702e910cb885cb5812861f4c16c26ce87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / mcp_server_linkedin_zero-0.2.0-py3-none-any.whl

Download URL mcp_server_linkedin_zero-0.2.0-py3-none-any.whl
Size 43.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5bb65028568222fd422e80b19d22509382a13a363955c2cf8501895adced0327
BLAKE2b-256 checksum
How to use checksums
29ecf42d8b01ffda29676e5f905cdafeff63778ef777e46eebbed2d5d608e670
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Linux Mint","version":"22.3","id":"zena","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for mcp-server-linkedin-zero 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page