LinkedIn Profile Optimizer
You can use this MCP server to review and optimize pasted LinkedIn profile text against recruiter-search guidelines and LinkedIn field limits, without logging in, scraping, or posting.
Get section-by-section LinkedIn guidance, or the full guide.
Lint a single profile field for character limits, truncation visibility, AI-sounding phrases, list markers, and emoji.
Review a headline for target role placement, length, vague labels, segments, “open to” line, and keywords.
Review an Experience entry for length, opening line, bullets, numbers, action verbs, duty phrasing, keywords, and AI-sounding text.
Compare profile text against pasted job descriptions to find recurring missing keywords.
Run all checks on a whole profile and get per-section results plus a profile checklist.
Use deterministic, local checks with no network calls or API keys.
Click on "Deploy 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 Profile Optimizer Review my headline for AI Engineer roles: "CS student at State | passionate about AI" and rewrite it"
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 Profile Optimizer (MCP server)
An MCP server that helps people rewrite their LinkedIn profile the way technical recruiters search for candidates. Paste your profile text into Claude (or any MCP client); the server checks every field against LinkedIn's limits and recruiter-search guidelines, and the assistant rewrites sections from your own facts.
It never logs in to LinkedIn, scrapes it, or posts anything. You paste text in and copy the improved text back yourself.
The guidelines come from a senior technical recruiter's talk on how recruiters search LinkedIn, plus lessons from rebuilding real profiles with them.
What it gives your assistant
Tool | What it does |
| Section-by-section guidance (headline, About, Experience, Open to Work, Featured, skills and more) |
| Character limit, what shows before truncation, em dashes, stock AI phrases, list markers, emoji |
| Role in the first 60 characters, length used, vague labels, segments, "open to" line, keywords |
| Opening line, bullet count, numbers per bullet, action verbs, duty phrasing, keywords |
| Terms that recur across the job postings you paste, and which ones your profile is missing |
| All of the above on a whole profile, plus a checklist (location, About, skills, Featured, connections) |
Prompts: optimize_section (rewrite one section, then lint it) and full_profile_review (a recruiter-style review: what I see first, the one fix, then section by section).
Resources: linkedin://guide, linkedin://limits.
All checks are deterministic: no network calls and no API keys.
Related MCP server: resume-kit MCP Server
Install
Requires Node.js 18 or newer. Nothing to clone: npx downloads and runs it.
Claude Code
claude mcp add linkedin-profile -- npx -y linkedin-profile-mcpClaude Desktop, Cursor, Windsurf, Cline
Add to the client's MCP config (claude_desktop_config.json, ~/.cursor/mcp.json, and so on):
{
"mcpServers": {
"linkedin-profile": {
"command": "npx",
"args": ["-y", "linkedin-profile-mcp"]
}
}
}VS Code (Copilot agent mode)
code --add-mcp '{"name":"linkedin-profile","command":"npx","args":["-y","linkedin-profile-mcp"]}'From source
git clone https://github.com/Ruthvik-Bandari/linkedin-profile-mcp.git
cd linkedin-profile-mcp && npm install && npm run build
claude mcp add linkedin-profile -- node "$PWD/dist/index.js"Use it
On LinkedIn, open your profile, click More, then Save to PDF, and copy the text (or paste each section).
Collect 3 to 10 job descriptions for the role you want.
Ask your assistant: "Use the full_profile_review prompt for AI Engineer roles" and paste both. Or: "Rewrite my headline for Data Scientist roles and lint it."
Copy the improved text back into LinkedIn yourself. Turn off "Share profile updates" while you edit.
The assistant is told to use only facts you give it. Check every claim before you paste it: anything on your profile should be something you can explain in an interview.
Example
You: Review my headline for AI Engineer roles: "Student at State University | passionate about AI"
The assistant calls
review_headlineand gets back: vague label (fail), "AI Engineer" not in the first 60 characters (fail), 49 of 220 characters used (fail), no segments (fail), no "open to" line (fail), plus a stock-phrase warning for "passionate about". It then drafts a new headline from facts you give it and re-checks it until every check passes.
Contributing
Issues and pull requests are welcome, especially new checks backed by recruiter guidance, and limit updates when LinkedIn changes its editor. Keep every check deterministic and covered by a test in test/.
Develop
npm test # unit tests (vitest)
npm run build # compile to dist/
npm run inspect # try the tools in the MCP InspectorRules live in src/rules.ts, guidance text in src/guide.ts, and tool registration in src/index.ts.
License
MIT
Available Tools
6 toolsget_guidelinesGet LinkedIn guidelinesARead-only
Return the section-by-section LinkedIn profile guidelines (recruiter-search based). Omit 'section' for the full guide.
Inputs: section.
keyword_coverageKeyword coverage vs job postingsBRead-only
Find terms that recur across the pasted job descriptions and report which ones the profile text contains. Only add a missing term if it truly describes the person's work.
Inputs: profile_text (required), job_descriptions (required), top.
lint_fieldLint a profile fieldARead-only
Check one LinkedIn field against its character limit and for AI-sounding text (em dashes, stock phrases, 'it's not X, it's Y'), list markers and emoji. Shows what is visible before truncation.
Inputs: text (required), field (required).
review_experienceReview an Experience entryBRead-only
Check one Experience description: length, opening line, bullet count, numbers in bullets, action verbs, duty phrasing, keywords and AI-sounding text.
Inputs: description (required), keywords.
review_headlineReview a headlineBRead-only
Score a headline: role in the first 60 characters, length used, vague labels, segments, 'open to' line, and target keywords.
Inputs: headline (required), keywords, target_role.
review_profileReview a whole profileARead-only
Run every check on a pasted profile (for example the text of LinkedIn's 'Save to PDF'). Returns per-section results and a checklist. Never logs in to or scrapes LinkedIn.
Inputs: headline (required), about, skills, location, +5 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool targets a recognizable scope: guidelines retrieval, single-field linting, headline review, experience review, keyword extraction, and full-profile review. The main overlap is that review_profile aggregates the other review tools and lint_field duplicates some character-limit/AI-tone checks already inside review_headline and review_experience, but the descriptions make the aggregate-vs-component relationship clear enough to select correctly.
Five of six names follow a verb_noun pattern (get_guidelines, lint_field, review_headline, review_experience, review_profile), and the shared 'review_' prefix groups the scoring tools predictably. keyword_coverage breaks the pattern as a noun phrase, a minor deviation that is still self-explanatory.
Six tools is a tight, well-scoped set for a profile-review assistant: one reference tool, three field-level checks, one keyword analysis, and one orchestrator. Every tool has a distinct job and none feels like filler.
The surface covers guidelines, headline, experience, keywords, and a full-profile pass, but the guidelines are section-by-section while only the Experience section gets a dedicated reviewer — About/Summary, Skills, and Education have no targeted check. lint_field partially compensates for character limits, but agents reviewing a full profile will hit a dead end on the About section, which is one of the most important LinkedIn fields.
Maintenance
Related MCP Connectors
A job-search companion: tailor your CV to a role, score fit, fix ATS issues. Also via MCP.
A hosted LinkedIn MCP server for your own account. Paste one address into Claude, ChatGPT, Cursor or n8n to read your inbox, send messages and invitations, and search people. Free to start. Not made by LinkedIn.
Research saved LinkedIn contacts, review monitored public activity, and prepare engagement campaigns. Four product/setup tools work anonymously. Company tools require OAuth or a scoped API key: explicitly sign in and refresh tools. Paid actions require a credit budget. MCP cannot post comments or start extension delivery. Setup and examples: https://opencomment.ai/mcp
HR and recruiting: score a job description, or generate a structured role profile. No API key.
Related MCP Servers
- AlicenseBqualityBmaintenance32 MCP tools for job search, resume analysis, matching, alerts, and exports using public LinkedIn endpoints, with optional read-only browser intelligence.334Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP server that evaluates, compares, aligns, generates, and validates resume materials against specific job postings, including ATS parseability checks, match scoring, and gap analysis.1Apache 2.0
- FlicenseNot gradedqualityDmaintenanceMCP server for LinkedIn that lets Claude and ChatGPT read your profile, post updates, and generate a resume PDF pre-formatted for LinkedIn's Import Resume feature.-
- AlicenseAqualityDmaintenanceEnables MCP clients to analyze resumes for ATS compatibility, parse job descriptions, get optimization and roast-style critiques, and generate tailored resumes with shareable preview links.657 npmMIT