linkedin-analyzer
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-analyzeranalyze my LinkedIn profile"
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.
LinkedIn Analyzer
Analyze your own LinkedIn profile through LM Studio using an MCP server and Playwright — without the official LinkedIn API.
The tool reuses your existing browser session (including 2FA) to fetch your profile data as structured JSON, which a local LLM can then analyze for optimization opportunities.
⚠️ Legal / Compliance notice
This tool uses browser automation, not LinkedIn's official API.
Using it may violate LinkedIn's Terms of Service. Account restrictions are theoretically possible.
Use it only for your own profile, for personal, non-commercial purposes. Do not scrape third-party profiles, do not hammer the site.
You are solely responsible for how you use this software.
Related MCP server: LinkedIn MCP Pro Max
Architecture
┌─────────────┐ ┌──────────────┐ ┌─────────────────────┐ ┌──────────┐
│ LM Studio │ ───→ │ MCP Server │ ───→ │ Background Server │ ───→ │ Browser │
│ (LLM) │ MCP │ (stdio) │ HTTP │ (127.0.0.1:8766) │ │ Playwright│
└─────────────┘ └──────────────┘ └─────────────────────┘ └──────────┘Component | Purpose |
| MCP server (stdio JSON-RPC) exposed to LM Studio |
| Long-running daemon that keeps the browser open (port 8766) |
| Encrypts and persists the browser session locally |
| Environment-driven configuration |
Prerequisites
Python 3.10+
LM Studio (local)
A LinkedIn account (you will log in manually once)
Playwright browser: the project drives the browser via Playwright. Run
playwright install chromium(step 4 below) once — it downloads a managed Chrome for Testing build automatically. No separate Chrome or Chrome for Testing installation is required.
Installation
# 1. Clone and enter the repo
git clone <your-repo-url>
cd linkedin-analyzer
# 2. Create a virtual environment (recommended)
python -m venv venv
source venv/bin/activate # macOS/Linux
# or: venv\Scripts\activate # Windows
# 3. Install dependencies
pip install -r requirements.txt
# 4. Install the Playwright browser
playwright install chromium
# 5. Configure
cp .env.example .env
# edit .env as needed (see below)Configuration (.env)
Variable | Default | Description |
|
| Bind address of the background server |
|
| Port of the background server |
|
| Where the encrypted session file is stored |
| (empty) | Optional explicit Fernet key |
|
| Key file, created automatically if missing |
|
|
|
Running
Option A — Start the daemon manually
./start-daemon.sh # starts background_server.py on PORT (default 8766)
./stop-daemon.sh # stops it againThe background server must keep running while you use the MCP tools — it holds the browser open.
Verify it is up:
curl http://127.0.0.1:8766/healthOption B — Auto-start wrapper (recommended for LM Studio)
Use scripts/linkedin-analyzer-mcp-wrapper.sh as the MCP command in LM Studio. It
ensures a session key exists, starts the background server if needed, waits
until it is healthy, then runs the MCP server:
{
"mcpServers": {
"linkedin-analyzer": {
"command": "/path/to/linkedin-analyzer/scripts/linkedin-analyzer-mcp-wrapper.sh",
"args": ["--stdio"]
}
}
}Note: point the
commandat the full absolute path of the wrapper inside your clone (the wrapper derives all other paths from its own location). If LM Studio reports it cannot start the server, the path is almost always wrong — e.g. acommand not foundfrom a stale filename.
Setup in LM Studio
Add the MCP server (see above) and restart LM Studio.
Start a chat with the system prompt — pick
docs/system-prompt.en.md(or the Germandocs/system-prompt.de.md) and paste it in.Ask the assistant to check your session or analyze your profile.
First login (one-time)
Call the
linkedin_logintool — the browser opens at LinkedIn's login page.Log in manually in the browser (2FA is supported).
The session auto-saves as soon as the login is detected. You can also force it with
linkedin_save_session.Verify with
linkedin_check_session.
MCP tools
Tool | Description |
| Check whether a session exists and you are logged in |
| Open the browser at LinkedIn's login page (does not wait for login) |
| Persist the current session after a manual login |
| Fetch the raw profile data (JSON) |
| Fetch the profile data for analysis |
| Delete the saved session |
HTTP API (background server)
Endpoint | Method | Description |
| GET | Health check |
| GET | Session/login status |
| POST | Open the browser at the login page |
| POST | Persist the current session |
| DELETE | Clear the saved session |
| GET | Full profile data (name, headline, about, experience, education, skills) |
| GET | Debugging aids |
Security
Aspect | Implementation |
Passwords | Never stored in code |
Session | Stored locally and encrypted with Fernet ( |
2FA | Fully supported during the initial login |
Data | Stays on your machine; the LLM only sees what you send it |
Important: The browser_sessions/ files contain login tokens. They are
encrypted, but treat them like passwords. The key lives in
SESSION_ENCRYPTION_KEY_FILE (default ~/.linkedin-analyzer/session.key).
Both are git-ignored — never commit them.
Troubleshooting
"Not logged in" / authwall redirects
curl -X DELETE http://127.0.0.1:8766/session # clear session
curl -X POST http://127.0.0.1:8766/login # log in again in the opened browserBrowser does not open
Make sure
BROWSER_HEADLESS=Falsein.env(or unset).Reinstall the browser:
playwright install chromiumOn Linux only, you may also need system libraries:
playwright install-deps
Server not reachable
Is it running?
curl http://127.0.0.1:8766/healthPort taken? Set another
PORTin.env(the wrapper respectsPORTtoo).
LinkedIn shows a captcha / rate limit
Wait a few hours.
Clear the session and log in again.
Do not send requests too frequently.
Project layout
linkedin-analyzer/
├── background_server.py # Long-running daemon (keeps browser open, HTTP API)
├── session_manager.py # Encrypted session persistence
├── config.py # Environment configuration
├── mcp-server/
│ └── linkedin_mcp.py # MCP server for LM Studio (stdio)
├── scripts/
│ └── linkedin-analyzer-mcp-wrapper.sh # Optional auto-start wrapper for LM Studio
├── docs/
│ ├── system-prompt.en.md # English system prompt for LM Studio
│ └── system-prompt.de.md # German system prompt for LM Studio
├── start-daemon.sh / stop-daemon.sh
├── requirements.txt
├── .env.example
└── browser_sessions/ # Encrypted sessions (git-ignored)Development
Test the MCP server directly:
venv/bin/python mcp-server/linkedin_mcp.py --stdioThen send JSON-RPC lines over stdin (initialize, tools/list, tools/call).
License
MIT — see LICENSE.
Credits
Playwright — browser automation
FastAPI — API framework
MCP Protocol — LLM integration
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server for LinkedIn automation that enables users to search for jobs, retrieve profile details, manage connections, and read or send messages. It leverages Playwright and Browserbase to interact with LinkedIn through an existing authenticated browser session.681MIT
- Alicense-qualityDmaintenanceHigh-performance autonomous MCP server that turns LinkedIn into an API for AI workflows, enabling profile management, job search, content posting, and document generation.1MIT
- Alicense-qualityBmaintenanceLocal-first MCP server for research on AI-assisted browsing of a user-owned professional-network account (e.g., LinkedIn), providing read-focused tools such as profile, company, search, and feed reads.MIT
- Alicense-qualityCmaintenanceMCP server for programmable LinkedIn automation via Playwright, offering 20 tools for profile management, messaging, feed interaction, and job searching through real browser automation.24MIT
Related MCP Connectors
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
MCP server for LeadDelta — manage LinkedIn connections and CRM data via AI assistants.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FinleyVeeDub/linkedin-analyzer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server