MCP Server/Documentation
MatchCV MCP Server Docs
The MatchCV MCP server exposes six resume tools over the Model Context Protocol, so an MCP client can check ATS scores, analyze job descriptions, and generate tailored resumes for the user. It is open source (MIT) and needs no API key.
Requirements
- Node.js 20 or newer
- An MCP client — Claude Desktop, Claude Code, Cursor, Codex CLI, or any stdio-capable client
- No API key, no account required to start
Installation
Claude Desktop
Settings → Developer → Edit Config, then add the server and restart Claude.
{
"mcpServers": {
"matchcv": {
"command": "npx",
"args": ["-y", "matchcv-mcp"]
}
}
}Claude Code
claude mcp add matchcv -- npx -y matchcv-mcpCursor
Use ~/.cursor/mcp.json for every project, or .cursor/mcp.json inside one project.
{
"mcpServers": {
"matchcv": {
"command": "npx",
"args": ["-y", "matchcv-mcp"]
}
}
}Codex CLI
[mcp_servers.matchcv]
command = "npx"
args = ["-y", "matchcv-mcp"]Anything else
The server speaks MCP over stdio. Any client that can launch a command will work:
npx -y matchcv-mcpTool reference
ats_check- Input
- resumeText
- Output
- score (0–100), recruiterTake, issues[] with fixes, strengths[], wordCount
Start here when the user just wants to know whether their resume is ATS-safe.
analyze_job_description- Input
- jdText
- Output
- title, company, seniority, industry, mustHave[], niceToHave[], responsibilities[]
Feed mustHave / niceToHave into optimize_resume to close keyword gaps.
optimize_resume- Input
- resumeText, jobTitle?, jdText?, missingMustHave?, missingNiceToHave?
- Output
- suggestions[] with type, priority, section, tip, example rewrite
Works with or without a job description — supplying one makes suggestions role-specific.
roast_resume- Input
- resumeText, jobTitle?
- Output
- url (public report page), token, score, recruiterImpression
Creates a shareable page at an unguessable URL.
extract_resume_text- Input
- filePath, structured?
- Output
- rawText, content (structured JSON when structured: true)
Text-only extraction is unlimited. Scanned or image-only PDFs will fail — paste the text instead.
tailor_resume- Input
- resumeText, jdText, templateId?, targetLanguage?
- Output
- previewUrl, jdAnalysis, content (full tailored resume JSON)
Runs three AI steps and uses the strictest quota. Open previewUrl to download the PDF.
Usage limits
Every AI tool is capped per day, per IP address. Signing in raises the limits; Pro removes them. See pricing.
| Tool | Free | Signed in | Pro |
|---|---|---|---|
| ats_check, analyze_job_description, optimize_resume, roast_resume, structured parsing | 3/day | 10/day | Unlimited |
| tailor_resume | 1/day | 3/day | Unlimited |
| extract_resume_text (text only) | Unlimited | ||
tailor_resume spends one generation credit plus one parsing and one JD-analysis credit, because it chains all three steps.
Configuration
MATCHCV_BASE_URL overrides the API origin (default https://matchcv.co). It is the only setting, and it exists for local development against a dev deployment.
Privacy
The server holds no credentials and stores nothing on your machine. Resume and job description text is sent to the MatchCV API over HTTPS for processing. roast_resume and tailor_resume save their result behind an unguessable public URL so you can open and share it; the other tools store nothing. Full details in the privacy policy.
Troubleshooting
The client shows the server but no tools
Check that Node.js 20 or newer is on PATH for the client process (not just your shell). Run `npx -y matchcv-mcp` in a terminal — it should print "matchcv-mcp ready" to stderr and then wait.
"You've used your free daily checks today"
Free limits are per IP address and reset daily. Sign in to raise them, or go Pro for unlimited use. The limit is enforced server-side, so retrying will not help.
A PDF fails to extract
The file has no text layer — typical for scans and some Apple Pages exports. Re-export with a real text layer, or paste the resume text directly.
Pointing at a development instance
Set MATCHCV_BASE_URL in the server's env block, e.g. "env": { "MATCHCV_BASE_URL": "http://localhost:3000" }.
Source, issues, and changelog: github.com/18boys/matchcv-mcp. Prefer a browser? The same tools run as free web apps.