Turn your CV facts into a tailored Word resume and a cover letter that invents nothing: keyword matching against the posting, page-fit trimming, and bracketed prompts wherever a fact is missing. Everything stays on your machine.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Resume.
profile_setStore the facts every output is built from: name, email, phone, location, links, summary, skills, roles with bullets, education, certifications, languages. One profile per data directory; Pro adds named variants
profile_getReturn the stored profile as JSON, exactly as the other tools see it
resume_createWrite the resume as `.docx`. Bullets are ranked by keyword hits and recency, then trimmed to `max_pages` against a measured word budget; matched keywords are bolded, missing ones are reported and never added. Styles: `modern`, `classic`, `compact
cover_letter_createA one-page letter in four parts -- opening, fit, proof, close -- drawn only from the profile. Tones: `formal`, `direct`, `warm`. Unknowns come back as `[add: ...]` prompts
tailor_to_jobGap analysis against a posting: the keywords it actually asks for, which of them your profile already covers, which it does not, a coverage figure, and rewrites that only reorder facts you already stated
resume_readRead an existing resume `.docx` back into the profile shape, section by heading. Best effort; nothing is saved unless `save: true
MCP server for resume and cover letter writing, CV documents in Word format. Resumes and cover letters as Word files from one profile, never invented.
Works with Claude Desktop, Claude Code, Cursor and any Model Context Protocol client. Runs on your own machine, or hosted with no install.
Product page: https://mcp.zovo.one/s/resume β what it does, the tools it exposes, and a live token endpoint.
Hosted, nothing to install. Get a token from https://mcp.zovo.one/mcp/connect (the connect page) or https://mcp.zovo.one/mcp/token (the same token as JSON); a free anonymous one is issued on the spot and a Pro key works the same way. Then point an MCP client at https://mcp.zovo.one/mcp/resume over streamable-http and send the token as Authorization: Bearer <token>.
If your client cannot set headers, put the token in the path instead: https://mcp.zovo.one/mcp/resume/t/<token>. Both forms work. The bare URL with no token answers 401 on tools/call, so the token is not optional.
Claude Desktop, one click. Download resume.mcpb from the latest release and double-click it.
From source. The mirror is self-contained: every @theluckystrike/* dependency is vendored, so a fresh clone builds with no extra setup.
Then point your client at the built entry point:
@theluckystrike/mcp-resumeis not published on npm yet, so annpx -y @theluckystrike/mcp-resumecommand will fail. The three paths above are the working ones and each is exercised by CI.

Read-only mirror of mcp-servers/servers/resume. See MIRROR.md.
Store your CV facts once. Then say "tailor my resume to this posting and write the cover letter" and get two real
.docx files: a resume whose bullets are reordered by relevance to the posting, trimmed to fit the page count you
asked for, with the posting's keywords in bold where you actually have them, and a one-page cover letter that
states nothing you did not put in your profile. Where a fact is missing, the letter leaves a bracketed prompt like
[add: metric] instead of inventing a number. It also reads an existing resume .docx back into the profile shape,
exports markdown for an ATS box, and writes printable HTML. Everything runs locally: no upload, no account, no
native dependency.
In the official MCP Registry (io.github.theluckystrike/resume-cover-letter-docx-generator).
Listed on the AI Product Index β live remote endpoint at mcp.zovo.one/s/resume, free tier, no signup.
npm publish for @theluckystrike/mcp-resume is pending. Until then, the .mcpb one-click bundle or a clone+build
is the working path, both are verified below.
One-click (.mcpb): download resume.mcpb from the latest release and double-click it in Claude Desktop:
https://github.com/theluckystrike/mcp-servers/releases/latest
(claude_desktop_config.json):
Claude Code:
(.cursor/mcp.json):
The npx form above starts working the moment the package is published. Until then, use the .mcpb bundle above, or
build from source with exactly these three commands:
Then point your client's command at node with one arg: the absolute path to servers/resume/dist/index.js.
servers/docx is in that build list because this server shares the document engine with
mcp-docx rather than carrying a second copy of it.
To run in Pro mode set MCP_LICENSE_KEY in the same config block, or call license_activate once with your key.
| Tool | What it does |
|---|---|
profile_set | Store the facts every output is built from: name, email, phone, location, links, summary, skills, roles with bullets, education, certifications, languages. One profile per data directory; Pro adds named variants |
profile_get | Return the stored profile as JSON, exactly as the other tools see it |
resume_create | Write the resume as .docx. Bullets are ranked by keyword hits and recency, then trimmed to max_pages against a measured word budget; matched keywords are bolded, missing ones are reported and never added. Styles: modern, classic, compact |
cover_letter_create | A one-page letter in four parts -- opening, fit, proof, close -- drawn only from the profile. Tones: formal, direct, warm. Unknowns come back as [add: ...] prompts |
tailor_to_job | Gap analysis against a posting: the keywords it actually asks for, which of them your profile already covers, which it does not, a coverage figure, and rewrites that only reorder facts you already stated |
resume_read | Read an existing resume .docx back into the profile shape, section by heading. Best effort; nothing is saved unless save: true |
resume_to_markdown | The resume as markdown, for an application form or an ATS box |
resume_to_html | Printable HTML with a print stylesheet. Open it and print to PDF |
license_status | Show free or Pro mode |
license_activate | Activate a Pro key (verified offline) |
Resource: resume://profile returns the stored profile as JSON.
Prompt: apply_to_job chains tailor_to_job, resume_create and cover_letter_create against one posting, and
makes the model report the gaps back to you instead of filling them in.
This is the part that matters, so it is enforced rather than requested:
highlights entry you pass is checked against the profile first. If the profile does not support it, it is
printed as [add: "..." is not in your profile - add it there or drop it], not as a claim.2012 does not license a letter claiming 12. [add: metric] appended, so the letter asks you for the result instead of
guessing one.tailor_to_job never become skills. The response says so in plain words.| You say | Tool |
|---|---|
| "Here is my CV: Ada Rowe, backend engineer, Acme Pay since 2021, ..." | profile_set |
| "Read my old resume at ~/Documents/cv.docx and set up my profile." | resume_read |
| "How well do I match this posting?" | tailor_to_job |
| "Make me a one-page resume for this Staff Engineer role." | resume_create |
| "Write the cover letter for Zeta Systems, direct tone." | cover_letter_create |
| "Give me the plain-text version for the application form." | resume_to_markdown |
| "I need a PDF to attach." | resume_to_html, then print to PDF |
| "Apply me to this job." | the apply_to_job prompt |
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/resume)<a href="https://allmcps.com/mcp/resume"><img src="https://allmcps.com/api/badge/resume?style=directory" alt="Resume on AllMCPs" /></a>