Three servers that turn stored facts into a job application, and then differ on almost everything else. cv-forge is the broadest: fourteen tools that parse a posting, write a CV in four formats, draft a cover letter and an email, and can do all of it in one call. @tgapk/mcp-resume is one tool that renders a Chinese-language CV to PDF with bundled CJK fonts. Ours is narrower on purpose: one profile, Word output, and a letter that is checked against your facts before it is written.
| Fact | Ours | cv-forge | @tgapk/mcp-resume |
|---|---|---|---|
| Tools | 8 plus license_status and license_activate | 14, numbered in its README | 1: generate_resume |
| Transport | stdio (npx or .mcpb bundle) | stdio | stdio |
| Account or API key needed | No | No. Its env vars are output formatting only | No |
| Output format | .docx, markdown, printable HTML | PDF, HTML, markdown, text | |
| Where the files go | Local disk, no network call at all | Local disk, an outputPath per tool | Rendered locally, then uploaded to a hosted URL by default |
| Cover letter | Yes, fact-checked against the profile | Yes, plus four email templates | No |
| Licence | MIT | MIT | ISC |
| Latest release read | publish pending; .mcpb bundle and clone-and-build | 1.0.3, published 2025-10-27 | 1.1.6, published 2025-12-09 |
| Public source repository | Yes | Yes | No. repository is null in the npm record |
| Cost | Free tier, Pro $19 once | Free | Free |
Every row was read on 2026-09-03 from the npm registry record for that package and from the README in it. Download figures below are the last-month point from the npm downloads API for 2026-07-31 to 2026-08-29. Neither competitor was installed or executed, so the tool counts are as documented.
Pick it when you want the whole application produced in one call and you are happy with PDF. Its
draft_complete_application returns the CV, the cover letter and the email together, and
generate_email_template writes four kinds of message, application, follow-up, inquiry and
thank-you, extracting the recipient address and the hiring manager's name from the posting text. We
have nothing that writes the covering email, and no plan to. It also emits PDF, HTML, markdown and text
with configurable page size and margins, where our only PDF route is printing the HTML. It is MIT,
needs no key, and ran 806 downloads in the month read. Two things to check before you commit: the last
publish was 2025-10-27 across four versions, and although docx is listed as a dependency in
its npm record, no DOCX tool is documented, so we could not confirm Word output is reachable.
Pick it if you are writing a Chinese-language CV. It bundles NotoSerifCJK in regular and bold so the
typesetting is correct, and it takes an order array to arrange education, experience,
projects, skills and honours. That is real work we have not done: our document engine has no CJK font
bundled. Be clear about the rest of it. There is one tool and no cover letter, the README, field labels
and examples are Chinese only, output is PDF, and by default the generated file is uploaded
to a hard-coded third-party endpoint on an .icu domain, which its own README tells you to
replace with your own. There is no public repository to audit. It ran 114 downloads in the month read.
Pick ours when the output is a Word file somebody will edit, and when a letter that cannot overstate you is worth more than a letter written faster. The fact-integrity rule is enforced in code, not asked for in a prompt: every proof line in the letter is a verbatim bullet from your profile, a highlight the profile does not support is printed as a bracketed prompt rather than a claim, and every digit run is checked against the profile and your arguments before the file is written. A number that traces to neither returns an error and writes nothing. The job description is deliberately not an allowed source, so the employer's revenue and headcount never come back as yours. Proof lines are printed under the employer that actually holds them.
Ten cover letters were generated against ten postings deliberately stuffed with figures: zero posting numbers reached a letter. Sixty JSON-RPC probes ran over five fresh data directories with no non-JSON line on stdout, and 26 of 26 automated tests pass. Five scenarios were then driven through the real Claude CLI with no tool names mentioned, scoring 14 of 15.
That run also produced the useful surprise. With 300 experience bullets stored, a one-page request
kept 78 and dropped 222, filling 390 words against a 392-word budget in 27 ms. With a realistic profile,
the same request used 134 of a 361-word budget and dropped nothing, while coverage against the posting
came back at 75% with a required keyword missing. Real profiles are too thin, not too fat, which is why
tailor_to_job reports the gap rather than filling it.
Ours, Claude Code:
claude mcp add resume -- npx -y @theluckystrike/mcp-resume
cv-forge:
npm install -g cv-forge
claude mcp add cv-forge -- cv-forge
@tgapk/mcp-resume:
claude mcp add resume-cn -- npx -y @tgapk/mcp-resume
Per client config paths for ours are on the setup pages, the product page is MCP Resume and Cover Letter, and the walkthrough is in writing a resume and cover letter from chat.
Ours does. cv-forge documents PDF, HTML, markdown and text tools; it lists docx as a dependency in its npm record but no DOCX tool appears in its README, so we could not confirm it. @tgapk/mcp-resume writes PDF only.
cv-forge and @tgapk/mcp-resume do. Ours does not, because every pure JavaScript route from Word to PDF needs a native dependency or a cloud API. resume_to_html writes HTML with a print stylesheet, so you print that to PDF.
Not with ours: the server makes no network request of any kind, including for licence checks. cv-forge writes to a local outputPath. @tgapk/mcp-resume renders locally and then uploads the PDF to a hard-coded third-party endpoint unless you change it, which its own README tells you to do.
cv-forge, with 14 documented against our 8 plus two licence tools and @tgapk/mcp-resume's single tool. Its email templates and one-call complete application are genuine capabilities we do not have.
Every row comes from the package's npm registry record and the README inside it, read on 2026-09-03: registry.npmjs.org/cv-forge and registry.npmjs.org/@tgapk/mcp-resume. Download figures are the last-month point from api.npmjs.org for 2026-07-31 to 2026-08-29.