Repository navigation
Releases: SanthaKumar-K-2004/linkedin-mcp-zero
Releases · SanthaKumar-K-2004/linkedin-mcp-zero
Release list
v0.4.8: Online Cloud Hosting, Remote Client Configs & Strict Type Safety
Highlights in v0.4.8
- Online Cloud Hosting Out-of-the-Box: Production blueprints and 1-click configs for Render (
render.yaml), Railway (railway.json), Fly.io (fly.toml), Docker GHCR (docker run), and Kubernetes (deploy/k8s.yaml). - Remote AI Client Integration: Production configuration recipes for Anthropic Claude Desktop, Cursor IDE, VS Code, and Google Antigravity connecting over remote SSE with API key security.
- Strict Type Safety: Resolved all static type checking diagnostics and parameter annotations across all 59 repository files with zero regressions.
- Defense-in-Depth Security: Unprivileged non-root Docker container (UID 1001), timing-safe API key validation, sliding-window rate limiting, and zero-login safe mode by default.
- Verification: 100% test pass rate (151/151 tests), zero Mypy issues, zero Bandit security vulnerabilities.
v0.4.7: Google Antigravity Integration & Production Release
Changelog
[0.4.7] - client integration & clean packaging
Added
- Native Google Antigravity IDE & agent framework support via
--install-client antigravity - Idempotent PyPI release publishing with
skip-existing: true - Clean production repository packaging, removing internal audit notes and scratch files
- Dedicated tool integration badges and documentation for Claude, Cursor, VS Code, and Google Antigravity
[0.4.6] - hardening release
Fixed (search)
cocompany filter was sent as LinkedInf_C(needs a numeric id) so company names were ignored; now filtered client-side, numeric ids still usef_C- Duplicate jobs in results (deduped per page and across pages); results now include an ISO
posteddate - Retries: only 429/5xx are retried,
Retry-Afteris honored, 404/403 fail fast and no longer trip the circuit breaker - Results are re-ranked by title relevance to the query (stable, never drops rows)
Added (skills)
config/skill_taxonomy.py: aliases (k8s, golang, postgres...), categories and curated relations incl. IT-support/helpdesk/CRM/automation skills- Fast single-regex extraction, canonical names, guards for ambiguous words (Go, R, C, AI, Spring...)
expand_skill_clusterworks on a fresh install (curated + learned, ranked, 2-hop adjacent);skill_gap()with transferable-skill credit- Multi-word skills are no longer split by whitespace when indexing jobs
Security
- Constant-time API key comparison, brute-force throttling before key check, safe header decoding
- OAuth now fails closed (missing/unverifiable token => 401); OAuth mode no longer also demands the API key
- API key file created with 0600 atomically; secrets hidden from settings repr/logs
- Resume reader blocks hidden paths and files over 10 MB
- Safe mode (default): browser session,
li_at, Voyager and the stealth Patchright fallback are disabled; setLINKEDIN_MCP_SAFE_MODE=falseto opt in (account-ban risk) - Removed User-Agent rotation (evasion + mismatched TLS fingerprint); stable UA
fastmcppinned<5(unpinned install broke with mcp 2.x)
Earlier changes
Added
- Semantic job matching with sentence-transformers
- MCP Resources, Prompts, Sampling, and Elicitation
- IBM Docling AI resume parsing
- API key auth + CORS + rate limiting for HTTP transport
Fixed
- Path traversal vulnerability in resume parsing
- Browser engine race condition
- Duplicate return in get_job_details
Changed
- Replaced httpx with curl_cffi for TLS impersonation
- Replaced BeautifulSoup with selectolax (10x faster)
- Heavy deps moved to optional extras
v0.4.6: Security Hardening & Skill Taxonomy Overhaul
Changelog
[0.4.6] - hardening release
Fixed (search)
cocompany filter was sent as LinkedInf_C(needs a numeric id) so company names were ignored; now filtered client-side, numeric ids still usef_C- Duplicate jobs in results (deduped per page and across pages); results now include an ISO
posteddate - Retries: only 429/5xx are retried,
Retry-Afteris honored, 404/403 fail fast and no longer trip the circuit breaker - Results are re-ranked by title relevance to the query (stable, never drops rows)
Added (skills)
config/skill_taxonomy.py: aliases (k8s, golang, postgres...), categories and curated relations incl. IT-support/helpdesk/CRM/automation skills- Fast single-regex extraction, canonical names, guards for ambiguous words (Go, R, C, AI, Spring...)
expand_skill_clusterworks on a fresh install (curated + learned, ranked, 2-hop adjacent);skill_gap()with transferable-skill credit- Multi-word skills are no longer split by whitespace when indexing jobs
Security
- Constant-time API key comparison, brute-force throttling before key check, safe header decoding
- OAuth now fails closed (missing/unverifiable token => 401); OAuth mode no longer also demands the API key
- API key file created with 0600 atomically; secrets hidden from settings repr/logs
- Resume reader blocks hidden paths and files over 10 MB
- Safe mode (default): browser session,
li_at, Voyager and the stealth Patchright fallback are disabled; setLINKEDIN_MCP_SAFE_MODE=falseto opt in (account-ban risk) - Removed User-Agent rotation (evasion + mismatched TLS fingerprint); stable UA
fastmcppinned<5(unpinned install broke with mcp 2.x)
Earlier changes
Added
- Semantic job matching with sentence-transformers
- MCP Resources, Prompts, Sampling, and Elicitation
- IBM Docling AI resume parsing
- API key auth + CORS + rate limiting for HTTP transport
Fixed
- Path traversal vulnerability in resume parsing
- Browser engine race condition
- Duplicate return in get_job_details
Changed
- Replaced httpx with curl_cffi for TLS impersonation
- Replaced BeautifulSoup with selectolax (10x faster)
- Heavy deps moved to optional extras
v0.4.5 - Critical Search Fixes, Rich Metadata & Parameter Docs
What's Changed in v0.4.5
🐛 Critical Bug Fixes & Improvements
- Search Result Deduplication: Fixed double-matching CSS selector in Lexbor parser (
.base-card, .job-search-card) and introduced cross-paginationseen_idsset. Every job listing now appears exactly once. - Robust Company Filtering:
cofilter now properly handles LinkedIn's guest search requirements. If numerical URN IDs are supplied, passesf_C; otherwise automatically appends company to keyword queries and applies client-side substring matching on company and title. - Exact ISO Posting Dates: Search results now extract exact post dates (
posted: YYYY-MM-DD) from the semantic HTML5<time datetime="...">tag alongside the relative age (age: 4d), eliminating vague "2mo" timestamps. - Rich Metadata: Extracted hiring badges (
benefits: Actively Hiring), compensation hints (sal), and verified applicant counts (applicants: Over 200 applicants) on job detail pages. - Relevance Scoring: Added automated query relevance percentage scoring (
relevance: 85%) to help AI agents prioritize exact keyword matches. - Self-Documenting MCP Tool Parameters: Refactored all tool parameters using
typing.Annotatedandpydantic.Field(description=...). LLM agents no longer guess whatkw,loc,co, oridmean.
🛡️ Architecture & Transparency
- Explicit Account Risk Disclosures: Categorized all tools into clear tiers. Added prominent risk warnings on the 11 opt-in browser tools (
--enable-browser) explaining that reading authenticated sessions carries platform risk, whereas the 33 default tools carry 100% zero account risk. - Privacy Model Transparency: Explicitly documented that all resume parsing (PDF/DOCX/TXT) executes strictly in-memory on local machines, with zero data sent to external servers unless the user triggers client LLM reasoning tools.
- Reconciled Tool Catalog: Reconciled the 33 default tools vs 11 opt-in browser tools vs 1 voyager tool (45 total catalog tools).
🧪 Tests & Quality
- Added
tests/test_critique_bug_fixes.pycovering deduplication, rich fields, applicant extraction, and parameter schemas. - 125 unit tests passing (100% pass rate).
- Bandit security audit: 0 issues identified.
- Strict mypy typecheck: clean across all 41 modules.
v0.4.4 - Production Cloud Hosting & Multi-Platform Deployment
What's Changed in v0.4.4
🚀 Production Cloud Hosting & Multi-Platform Deployment
- Universal Cloud Port & Host Binding: Full support for standard PaaS environment variables (
PORT,HOST,API_KEY,TRANSPORT,LOG_LEVEL) via PydanticAliasChoices, ensuring instant plug-and-play on Render, Railway, Fly.io, AWS App Runner, and Google Cloud Run. - Container Health Check & Probe Bypass: Exempted public health endpoints (
/,/health,/healthz,/ping) and discovery routes (/.well-known/*) from API key middleware and OAuth challenge, completely eliminating container crash loops and failed load balancer probes. - Root Service Status Route: Added public
GET /endpoint returning real-time service health, version0.4.4, and 45-tool MCP catalog status for instant browser verification. - Multi-Cloud Ready Configuration Files:
docker-compose.ymlfor single-command self-hosting with persistent SQLite cache.fly.tomlfor Fly.io edge deployment (fly launch).railway.jsonfor Railway 1-click cloud deployment.deploy/k8s.yamlfor enterprise Kubernetes production clusters with configured liveness/readiness probes.deploy/linkedin-mcp-zero.servicefor Linux systemd production service management.
- 1-Click Render Deploy: Added verified Deploy to Render button and step-by-step setup in README.
💼 Integrated Universal ATS Resume Tailoring Engine (from v0.4.3)
- Real-time ATS match scoring and job-description keyword extraction across all 9 industry disciplines (Software, Product, Marketing, Sales, Finance, Operations, HR, UX/UI Design, Healthcare/Pharma).
- Full live support for 45 tools and zero synthetic/mock data.
Full Changelog: v0.4.3...v0.4.4
v0.4.3 - Universal Multi-Role ATS Resume Tailoring & Cross-Industry Engine
What's Changed in v0.4.3 🚀
- Universal Multi-Role Resume Tailoring: Expanded from software-only to 16 standardized professional domains (Product Management, Data Analytics & BI, Growth & Digital Marketing, Sales & BD, Finance & Accounting, Operations & Supply Chain, Human Resources & Talent Acquisition, Design & Creative, Customer Success, and Healthcare & Clinical Nursing).
- New MCP Tool:
tailor_resume(tr): Evaluates resumes against live target jobs, calculates ATS compatibility score, generates Google XYZ accomplishment formulas, provides domain-specific action verbs, and recommends standard ATS section headings. - Synchronized Tool Catalog: Expanded production tools from 44 to 45 production tools (with 33 zero-login tools).
- Zero Mock Data Guarantee: Authentic, research-backed skill taxonomies and live LinkedIn API extraction with zero synthetic placeholders.
- Docker & Container Images: Live on GitHub Container Registry at
ghcr.io/santhakumar-k-2004/linkedin-mcp-zero:0.4.3andghcr.io/santhakumar-k-2004/linkedin-mcp-zero:latest. - PyPI Release: Live on PyPI as
pip install linkedin-mcp-zero==0.4.3.