CV Forge MCP
About
Forge powerful, ATS-friendly CVs tailored to any job - an MCP server for intelligent CV generation
Explore
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
CV Forge MCPCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
You can also run the server directly for testing:
The server runs on stdio and communicates via the Model Context Protocol.
Parses job requirements and extracts key information for CV tailoring.
- jobTitle(string, required): The job title/position
- company(string, required): Company name
- jobDescription(string, required): Full job description text
- requirements(array, optional): Specific requirements if separated
- preferredSkills(array, optional): Preferred skills if separated
- location(string, optional): Job location
- salaryRange(string, optional): Salary range if provided
Generates tailored CV content based on user profile and job requirements.
- userProfile(object, required): Complete user profile information
- jobRequirements(object, required): Job requirements object
{ "personalInfo": { "fullName": "John Doe", "email": "[email protected]", "phone": "+1-555-0123", "location": "City, State", "linkedIn": "linkedin.com/in/johndoe", "github": "github.com/johndoe", "website": "johndoe.com" }, "summary": "Professional summary text...", "experience": [ { "jobTitle": "Software Engineer", "company": "Tech Corp", "location": "City, State", "startDate": "2020-01", "endDate": "2023-12", "description": "Job description...", "achievements": [ "Achievement 1", "Achievement 2" ] } ], "education": [ { "degree": "Bachelor of Science in Computer Science", "institution": "University Name", "location": "City, State", "graduationYear": "2020", "gpa": "3.8", "honors": ["Magna Cum Laude"] } ], "skills": { "technical": ["JavaScript", "Python", "React"], "soft": ["Leadership", "Communication"], "languages": ["English", "Spanish"], "certifications": ["AWS Certified"] }, "projects": [ { "name": "Project Name", "description": "Project description...", "technologies": ["React", "Node.js"], "url": "github.com/johndoe/project" } ] }
Saves CV content as a formatted text file.
- cvData(object, required): Tailored CV data object (from generate_cv_data)
- outputPath(string, required): Directory path where the CV should be saved
- fileName(string, optional): Custom filename (without extension), defaults to "generated_cv"
userProfile
(object, required): Complete user profile information
jobRequirements
(object, required): Job requirements object
outputPath
(string, optional): Directory path where the CV should be saved (uses DEFAULT_OUTPUT_PATH if not provided)
fileName
(string, optional): Custom filename (without extension), defaults to "professional_cv"
format
(string, optional): Output format - "pdf" (default), "html", or "markdown"
pageSize
(string, optional): PDF page size (e.g., 'A4', 'Letter', 'Legal') - uses PDF_PAGE_SIZE env var if not provided
margins
(object, optional): PDF margins with top, right, bottom, left properties (e.g., '10mm', '0.8in') - uses PDF_MARGIN_* env vars if not provided
Generate tailored CV and save to specified location or default folder.Defaults to PDF formatif no format is specified.
- userProfile(object, required): Complete user profile information
- jobRequirements(object, required): Job requirements object
- outputPath(string, optional): Directory path where the CV should be saved (uses DEFAULT_OUTPUT_PATH if not provided)
- fileName(string, optional): Custom filename (without extension), defaults to "professional_cv"
- format(string, optional): Output format - "pdf" (default), "html", or "markdown"
- pageSize(string, optional): PDF page size (e.g., 'A4', 'Letter', 'Legal') - uses PDF_PAGE_SIZE env var if not provided
- margins(object, optional): PDF margins with top, right, bottom, left properties (e.g., '10mm', '0.8in') - uses PDF_MARGIN_* env vars if not provided
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"cv forge mcp": {
"server": {
"command": "npx",
"args": [
"-y",
"cv-forge"
]
}
}
}
}
McpServers
{
"server": {
"command": "npx",
"args": [
"-y",
"cv-forge"
]
}
}
Transport
"stdio"
Package
"cv-forge"
Registry
"npm"
Forge powerful, ATS-friendly CVs tailored to any job requirement.
An intelligent MCP (Model Context Protocol) server that analyzes job postings and crafts perfectly-matched CVs.
- Parse Job Requirements: Extract key skills, qualifications, email addresses, and hiring manager names from job postings
- Generate Tailored CVs: Create customized CV content based on user profile and job requirements
- Cover Letter Generation: Generate personalized cover letters tailored to specific job applications
- Email Template Creation: Create professional email templates with automatic email address detection
- Complete Application Packages: Generate CV, cover letter, and email template in one command
- PDF by Default: Automatically generates professional PDF documents when no format is specified
- Multiple Output Formats: Generate documents in PDF (default), HTML, Markdown, and text formats
- Professional PDF Generation: Create publication-ready PDF documents with professional styling
- ATS-Friendly: Optimized for Applicant Tracking Systems with proper keyword placement
- Smart Contact Extraction: Automatically extracts email addresses and hiring manager names from job descriptions
- Clone this repository
- Install dependencies:
npm install
To use this MCP server with Claude Desktop, you need to add it to your Claude configuration file.
Step 2: Find your Claude Desktop config file
- Windows:%APPDATA%\Claude\claude_desktop_config.json
- macOS:~/Library/Application Support/Claude/claude_desktop_config.json
- Linux:~/.config/Claude/claude_desktop_config.json
Step 3: Add the MCP server to your config
For global installation, add this to yourclaude_desktop_config.jsonfile:
{ "mcpServers": { "cv-forge": { "command": "cv-forge" } } }
Or if installed locally, specify the full path:
{ "mcpServers": { "cv-forge": { "command": "node", "args": ["d:/TopSecret/cv-forge/build/index.js"], "cwd": "d:/TopSecret/cv-forge" } } }
Step 4: (Optional) Add environment configuration
You can customize the server with environment variables:
{ "mcpServers": { "cv-forge": { "command": "cv-forge", "env": { "DEFAULT_OUTPUT_PATH": "D:/CV", "PDF_BASE_FONT_SIZE": "12px", "PDF_LINE_HEIGHT": "1.4" } } } }
Step 5: Restart Claude DesktopAfter adding the configuration, restart Claude Desktop application.
Step 6: Verify ConnectionIn Claude Desktop, you should see the CV Forge tools available. You can ask Claude to use tools like:
- "Parse this job posting for me"
- "Generate a tailored CV based on my profile and this job"
- "Save my CV as a PDF file"
Running the MCP Server Standalone (for testing)
You can also run the server directly for testing:
The server runs on stdio and communicates via the Model Context Protocol.
Parses job requirements and extracts key information for CV tailoring.
- jobTitle(string, required): The job title/position
- company(string, required): Company name
- jobDescription(string, required): Full job description text
- requirements(array, optional): Specific requirements if separated
- preferredSkills(array, optional): Preferred skills if separated
- location(string, optional): Job location
- salaryRange(string, optional): Salary range if provided
Generates tailored CV content based on user profile and job requirements.
- userProfile(object, required): Complete user profile information
- jobRequirements(object, required): Job requirements object
{ "personalInfo": { "fullName": "John Doe", "email": "[email protected]", "phone": "+1-555-0123", "location": "City, State", "linkedIn": "linkedin.com/in/johndoe", "github": "github.com/johndoe", "website": "johndoe.com" }, "summary": "Professional summary text...", "experience": [ { "jobTitle": "Software Engineer", "company": "Tech Corp", "location": "City, State", "startDate": "2020-01", "endDate": "2023-12", "description": "Job description...", "achievements": [ "Achievement 1", "Achievement 2" ] } ], "education": [ { "degree": "Bachelor of Science in Computer Science", "institution": "University Name", "location": "City, State", "graduationYear": "2020", "gpa": "3.8", "honors": ["Magna Cum Laude"] } ], "skills": { "technical": ["JavaScript", "Python", "React"], "soft": ["Leadership", "Communication"], "languages": ["English", "Spanish"], "certifications": ["AWS Certified"] }, "projects": [ { "name": "Project Name", "description": "Project description...", "technologies": ["React", "Node.js"], "url": "github.com/johndoe/project" } ] }
Saves CV content as a formatted text file.
- cvData(object, required): Tailored CV data object (from generate_cv_data)
- outputPath(string, required): Directory path where the CV should be saved
- fileName(string, optional): Custom filename (without extension), defaults to "generated_cv"
4.generate_cv(Recommended - Main CV Generation Tool)
Generate tailored CV and save to specified location or default folder.Defaults to PDF formatif no format is specified.
- userProfile(object, required): Complete user profile information
- jobRequirements(object, required): Job requirements object
- outputPath(string, optional): Directory path where the CV should be saved (uses DEFAULT_OUTPUT_PATH if not provided)
- fileName(string, optional): Custom filename (without extension), defaults to "professional_cv"
- format(string, optional): Output format - "pdf" (default), "html", or "markdown"
- pageSize(string, optional): PDF page size (e.g., 'A4', 'Letter', 'Legal') - uses PDF_PAGE_SIZE env var if not provided
- margins(object, optional): PDF margins with top, right, bottom, left properties (e.g., '10mm', '0.8in') - uses PDF_MARGIN_ env vars if not provided
5.generate_and_save_cv_pdf(Legacy - Use generate_cv instead)
Generate tailored CV and save directly as professional PDF (combines CV generation and PDF creation in one step).
- userProfile(object, required): Complete user profile information
- jobRequirements(object, required): Job requirements object
- outputPath(string, optional): Directory path where the CV should be saved (uses DEFAULT_OUTPUT_PATH if not provided)
- fileName(string, optional): Custom filename (without extension), defaults to "professional_cv"
6.generate_and_save_cv_markdown(Recommended)
Generate tailored CV and save directly as Markdown (combines CV generation and Markdown creation in one step).
- userProfile(object, required): Complete user profile information
- jobRequirements(object, required): Job requirements object
- outputPath(string, required): Directory path where the CV should be saved
- fileName(string, optional): Custom filename (without extension), defaults to "cv_markdown"
7.generate_and_save_cv_html(Recommended)
Generate tailored CV and save directly as HTML (combines CV generation and HTML creation in one step).
- userProfile(object, required): Complete user profile information
- jobRequirements(object, required): Job requirements object
- outputPath(string, required): Directory path where the CV should be saved
- fileName(string, optional): Custom filename (without extension), defaults to "cv_html"
Generate and save CV as a professional PDF document from pre-generated CV data.
- cvData(object, required): Tailored CV data object (from generate_cv_data)
- outputPath(string, required): Directory path where the CV should be saved
- fileName(string, optional): Custom filename (without extension), defaults to "professional_cv"
Generate CV as Markdown format from pre-generated CV data.
- cvData(object, required): Tailored CV data object (from generate_cv_data)
- outputPath(string, required): Directory path where the CV should be saved
- fileName(string, optional): Custom filename (without extension), defaults to "cv_markdown"
Generate CV as styled HTML document from pre-generated CV data.
- cvData(object, required): Tailored CV data object (from generate_cv_data)
- outputPath(string, required): Directory path where the CV should be saved
- fileName(string, optional): Custom filename (without extension), defaults to "cv_web"
Generate a tailored cover letter for a specific job application. Returns formatted text that can be displayed on screen or saved as PDF.
- userProfile(object, required): Complete user profile information
- jobRequirements(object, required): Job requirements object
- hiringManagerName(string, optional): Name of the hiring manager if known
- format(string, optional): Output format - "text" (default) for on-screen display, "html" for styled viewing
Generate and save a cover letter as PDF to specified location. Automatically extracts email addresses and hiring manager names from job descriptions.
- userProfile(object, required): Complete user profile information
- jobRequirements(object, required): Job requirements object
- outputPath(string, optional): Directory path where the cover letter should be saved
- fileName(string, optional): Custom filename (without extension), defaults to "cover_letter"
- hiringManagerName(string, optional): Name of the hiring manager if known
- pageSize(string, optional): PDF page size (e.g., 'A4', 'Letter', 'Legal')
- margins(object, optional): PDF margins with top, right, bottom, left properties
Generate a professional email template for job application. Automatically detects email addresses from job description.
- userProfile(object, required): Complete user profile information
- jobRequirements(object, required): Job requirements object
- templateType(string, optional): Type of email template - "application" (default), "follow_up", "inquiry", "thank_you"
- recipientEmail(string, optional): Recipient email address (optional, will use extracted email from job description if available)
- hiringManagerName(string, optional): Name of the hiring manager if known
14.draft_complete_application(Recommended - One-Stop Solution)
Draft a complete job application package: CV, cover letter, and email template. Automatically generates PDF CV and cover letter, plus email template if email address is found in the job description.
- userProfile(object, required): Complete user profile information
- jobRequirements(object, required): Job requirements object
- outputPath(string, optional): Directory path where files should be saved
- baseFileName(string, optional): Base filename for generated files (without extension), defaults to "job_application"
- hiringManagerName(string, optional): Name of the hiring manager if known
The MCP server supports various configuration options via environment variables in the Claude Desktop config:
{ "mcpServers": { "cv-forge": { "command": "node", "args": ["path/to/cv-forge/build/index.js"], "cwd": "path/to/cv-forge", "env": { "DEFAULT_OUTPUT_PATH": "D:/CV", "TEMP_DIR": "C:/Users/YourName/AppData/Local/Temp/cv-maker", "PDF_TIMEOUT": "300000", "PDF_PAGE_SIZE": "A4", "PDF_MARGIN_TOP": "10mm", "PDF_MARGIN_RIGHT": "10mm", "PDF_MARGIN_BOTTOM": "10mm", "PDF_MARGIN_LEFT": "10mm", "PDF_BASE_FONT_SIZE": "12px", "PDF_LINE_HEIGHT": "1.4", "PDF_H1_FONT_SIZE": "20px", "PDF_H2_FONT_SIZE": "15px", "PDF_H3_FONT_SIZE": "13px", "PDF_PARAGRAPH_SPACING": "8px", "PDF_SECTION_SPACING": "12px" } } } }
- DEFAULT_OUTPUT_PATH: Default directory for saving CV files (when outputPath is not provided or is "./")
- TEMP_DIR: Directory for temporary files during PDF generation
- PDF_TIMEOUT: Timeout for PDF generation in milliseconds
- PDF_PAGE_SIZE: Default PDF page size - defaults to 'A4'
- Common sizes: 'A4' (210×297mm), 'Letter' (8.5×11in), 'Legal' (8.5×14in)
Once connected to Claude Desktop, you can use natural language to interact with the CV maker:
"Can you parse this job posting for me: Job Title: Senior Software Engineer Company: TechCorp Inc Description: We are looking for a Senior Software Engineer with 5+ years of experience in JavaScript, React, and Node.js. Must have experience with cloud platforms and agile methodologies. Strong communication skills required."
2. Generate Tailored CV (Simple One-Step Process - PDF by Default)
"Generate a tailored CV for me based on this job posting: Job Title: Senior Software Engineer Company: TechCorp Inc Job Description: We are looking for a Senior Software Engineer with 5+ years of experience in JavaScript, React, and Node.js. Must have experience with cloud platforms and agile methodologies. My Profile: - Full Name: John Doe - Email: [email protected] - Phone: +1-555-0123 - Experience: 6 years as Software Engineer at various companies - Skills: JavaScript, Python, React, Node.js, AWS, Docker - Education: BS Computer Science from State University Please save it to C:\Users\John\Documents\CVs with filename 'john_doe_senior_engineer_techcorp'"
Note:This will automatically generate a PDF file (default format) unless you specify a different format.
"Can you generate my CV in multiple formats? I need: 1. A professional PDF for applications (default format) 2. A Markdown version for my GitHub 3. An HTML version for my website Save them all to C:\Users\John\Documents\CVs with the base filename 'john_doe_cv'"
"Generate my CV in HTML format and save it to C:\Users\John\Documents\CVs"
Or specify custom page size and margins for PDF:
"Generate my CV as a PDF with Letter page size and 1 inch margins on all sides, save it to C:\Users\John\Documents\CVs"
"Generate a cover letter for the Senior Software Engineer position at TechCorp Inc. The job description mentions the hiring manager is Sarah Johnson and applications should be sent to [email protected]."
"Create an email template for applying to the Senior Software Engineer position at TechCorp Inc. The job posting includes the email [email protected] and mentions Sarah Johnson as the hiring manager."
5. Draft Complete Application Package (Recommended)
"Draft a complete job application package for the Senior Software Engineer position at TechCorp Inc. Include CV, cover letter, and email template. Save everything to C:\Users\John\Documents\Applications with the base filename 'techcorp_application'."
- techcorp_application_CV.pdf- Tailored CV
- techcorp_application_Cover_Letter.pdf- Professional cover letter
- techcorp_application_Email_Template.txt- Email template (if email address found in job description)
"Generate a follow-up email template for the Senior Software Engineer position I applied to at TechCorp Inc last week."
If you want to use the tools directly (advanced usage):
{ "tool": "parse_job_requirements", "args": { "jobTitle": "Senior Software Engineer", "company": "TechCorp Inc", "jobDescription": "We are looking for a Senior Software Engineer with 5+ years of experience in JavaScript, React, and Node.js. Must have experience with cloud platforms and agile methodologies." } }
{ "tool": "generate_cv_data", "args": { "userProfile": { / user profile object / }, "jobRequirements": { / job requirements object / } } }
{ "tool": "generate_cv_pdf", "args": { "cvData": { / tailored CV data / }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "senior_engineer_techcorp_cv" } }
{ "tool": "generate_cv_markdown", "args": { "cvData": { / tailored CV data / }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "cv_for_github" } }
{ "tool": "generate_cv_html", "args": { "cvData": { / tailored CV data */ }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "web_resume" } }
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



