What's new in v2.3.9
🍪 Cookies page redesign
- Hero card with status icon + badge + 4-stat meta row
- Timeline strip: last-saved / last-verified / last-failed
- Error explainer that names the failure reason + 4 common causes
- Tab bar (browser / li_at / json) — only one panel visible at a time
- Cookie inventory: search box + filter chips (auth, linkedin, secure, expiring)
- Cookie table: masked values, day-count in expires, sticky header, virtual scroll
- Re-verify button + refresh button in inventory section
🔐 Profile endpoint: full session validation
- Loads
JSESSIONIDfromstorage_state.jsonalongsideli_at - Passes both to Voyager client so LinkedIn validates the full session
- Previously only
li_atwas sent — LinkedIn rotated to require both
🩺 Profile health endpoint enhancements
- New
timelinefield (last_saved, last_verified, last_failed) read from audit log - New
last_errorfield with the rejection reason from LinkedIn - Auto-detects
created_atvstscolumn in audit table
Files changed
linkedin_mcp/static/cookies.html— full redesign (+514 / -129)linkedin_mcp/cookies_api.py— timeline + last_error fields (+73)linkedin_mcp/web.py— JSESSIONID loader in api_profile (+14)
Install
```bash
pipx install git+https://github.com/horizonbymuneeb/linkedin-mcp-pro.git@v2.3.9
linkedin-mcp-web --port 8080
```
⭐ Star if this saves you from a LinkedIn ban.