mcpField
C
CV Forge

CV Forge

本地服务
github.com/thechandanbhagat商业与营销3045 周前更新

关于 CV Forge

CV Forge 是一个 MCP 服务,可解析职位描述并生成与岗位匹配的 ATS 友好型简历、求职信和邮件模板。适合求职者快速针对不同职位准备申请材料。

主要功能

  1. 01解析职位要求、技能与联系人信息
  2. 02生成针对岗位定制的简历内容
  3. 03生成个性化求职信
  4. 04生成申请、跟进等类型的邮件模板
  5. 05支持 PDF、HTML、Markdown 和文本格式输出
  6. 06提供一键生成完整申请材料包的工具

适用场景

  1. 01根据招聘信息为不同岗位定制简历
  2. 02一次性生成简历、求职信和邮件草稿
  3. 03在 Claude Desktop 中直接保存 PDF 格式简历

MCP 相关

CV Forge 是一个 MCP 服务,通过 stdio 向 MCP 客户端提供解析职位、生成简历、求职信和邮件模板等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"thechandanbhagat-cv-forge": {
"command": "npx",
"args": [
"-y",
"cv-forge"
]
}
}
}
启动命令npx -y cv-forge

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmcv-forge1.0.1

工具

11

收录的工具列表 · 更新于 2 周前

参数类型必填说明
companystring是公司名称
jobTitlestring是职位名称/岗位
locationstring否工作地点
salaryRangestring否提供时填写的薪资范围
requirementsarray否单独列出的具体要求
jobDescriptionstring是完整的职位描述文本
preferredSkillsarray否单独列出的优先技能

详细介绍

CV Forge

根据任意职位要求,打造强大且对 ATS 友好的简历。

一款智能 MCP(Model Context Protocol)服务,可分析招聘信息并撰写与职位完美匹配的简历。

功能

  • 解析职位要求:从招聘信息中提取关键技能、资质要求、电子邮箱地址和招聘经理姓名
  • 生成量身定制的简历:根据用户资料和职位要求创建定制化简历内容
  • 生成求职信:为特定职位申请生成个性化求职信
  • 创建电子邮件模板:创建专业的电子邮件模板,并自动检测电子邮箱地址
  • 完整的求职申请材料包:通过一条命令生成简历、求职信和电子邮件模板
  • 默认生成 PDF:未指定格式时,自动生成专业的 PDF 文档
  • 多种输出格式:生成 PDF(默认)、HTML、Markdown 和文本格式的文档
  • 专业 PDF 生成:创建经过专业排版、可供发布的 PDF 文档
  • 对 ATS 友好:通过恰当的关键词布局,针对申请人跟踪系统进行优化
  • 智能提取联系人信息:自动从职位描述中提取电子邮箱地址和招聘经理姓名

Star 历史

Star History Chart

安装

通过 npm 安装(推荐)

全局安装:

npm install -g cv-forge

或在项目中本地安装:

npm install cv-forge
从源代码安装
  1. 克隆此代码仓库
  2. 安装依赖:
    npm install
    
  3. 构建项目:
    npm run build
    

用法

连接到 Claude Desktop

要在 Claude Desktop 中使用此 MCP 服务,需要将其添加到 Claude 配置文件中。

第 1 步:安装 cv-forge

npm install -g cv-forge

第 2 步:找到 Claude Desktop 配置文件

  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux:~/.config/Claude/claude_desktop_config.json

第 3 步:将 MCP 服务添加到配置文件

如果是全局安装,请将以下内容添加到 claude_desktop_config.json 文件中:

{
  "mcpServers": {
    "cv-forge": {
      "command": "cv-forge"
    }
  }
}

如果是本地安装,请指定完整路径:

{
  "mcpServers": {
    "cv-forge": {
      "command": "node",
      "args": ["d:/TopSecret/cv-forge/build/index.js"],
      "cwd": "d:/TopSecret/cv-forge"
    }
  }
}

第 4 步:(可选)添加环境配置

你可以使用环境变量自定义服务:

{
  "mcpServers": {
    "cv-forge": {
      "command": "cv-forge",
      "env": {
        "DEFAULT_OUTPUT_PATH": "D:/CV",
        "PDF_BASE_FONT_SIZE": "12px",
        "PDF_LINE_HEIGHT": "1.4"
      }
    }
  }
}

第 5 步:重启 Claude Desktop 添加配置后,重启 Claude Desktop 应用。

第 6 步:验证连接 在 Claude Desktop 中,你应该能看到可用的 CV Forge 工具。你可以让 Claude 使用以下工具:

  • “帮我解析这则招聘信息”
  • “根据我的资料和这份职位信息生成一份量身定制的简历”
  • “将我的简历保存为 PDF 文件”
独立运行 MCP 服务(用于测试)

你也可以直接运行服务进行测试:

npm start

服务通过标准输入/输出(stdio)运行,并使用 Model Context Protocol 进行通信。

可用工具
1. parse_job_requirements

解析职位要求,并提取用于定制简历的关键信息。

参数:

  • jobTitle(字符串,必填):职位名称
  • company(字符串,必填):公司名称
  • jobDescription(字符串,必填):完整的职位描述文本
  • requirements(数组,可选):单独列出的具体要求
  • preferredSkills(数组,可选):单独列出的优先技能
  • location(字符串,可选):工作地点
  • salaryRange(字符串,可选):职位提供的薪资范围
2. generate_cv_data

根据用户资料和职位要求生成量身定制的简历内容。

参数:

  • userProfile(对象,必填):完整的用户资料信息
  • jobRequirements(对象,必填):职位要求对象

用户资料结构:

{
  "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"
    }
  ]
}
3. save_cv_text

将 CV 内容保存为格式化的文本文件。

参数:

  • cvData(object,必填):定制后的 CV 数据对象(来自 generate_cv_data)
  • outputPath(string,必填):保存 CV 的目录路径
  • fileName(string,可选):自定义文件名(不含扩展名),默认为 "generated_cv"
4. generate_cv(推荐 - 主要的 CV 生成工具)

生成定制后的 CV,并保存到指定位置或默认文件夹。如果未指定格式,默认使用 PDF 格式。

参数:

  • userProfile(object,必填):完整的用户资料信息
  • jobRequirements(object,必填):职位要求对象
  • outputPath(string,可选):保存 CV 的目录路径(未提供时使用 DEFAULT_OUTPUT_PATH)
  • fileName(string,可选):自定义文件名(不含扩展名),默认为 "professional_cv"
  • format(string,可选):输出格式 - "pdf"(默认)、"html" 或 "markdown"
  • pageSize(string,可选):PDF 页面尺寸(例如,'A4'、'Letter'、'Legal')- 未提供时使用 PDF_PAGE_SIZE 环境变量
  • margins(object,可选):PDF 页边距,包含 top、right、bottom、left 属性(例如,'10mm'、'0.8in')- 未提供时使用 PDF_MARGIN_* 环境变量
5. generate_and_save_cv_pdf(旧版 - 请改用 generate_cv)

生成定制后的 CV,并直接保存为专业 PDF(一步完成 CV 生成和 PDF 创建)。

参数:

  • userProfile(object,必填):完整的用户资料信息
  • jobRequirements(object,必填):职位要求对象
  • outputPath(string,可选):保存 CV 的目录路径(未提供时使用 DEFAULT_OUTPUT_PATH)
  • fileName(string,可选):自定义文件名(不含扩展名),默认为 "professional_cv"
6. generate_and_save_cv_markdown(推荐)

生成定制后的 CV,并直接保存为 Markdown(一步完成 CV 生成和 Markdown 创建)。

参数:

  • userProfile(object,必填):完整的用户资料信息
  • jobRequirements(object,必填):职位要求对象
  • outputPath(string,必填):保存 CV 的目录路径
  • fileName(string,可选):自定义文件名(不含扩展名),默认为 "cv_markdown"
7. generate_and_save_cv_html(推荐)

生成定制后的 CV,并直接保存为 HTML(一步完成 CV 生成和 HTML 创建)。

参数:

  • userProfile(object,必填):完整的用户资料信息
  • jobRequirements(object,必填):职位要求对象
  • outputPath(string,必填):保存 CV 的目录路径
  • fileName(string,可选):自定义文件名(不含扩展名),默认为 "cv_html"
8. generate_cv_pdf(高级)

根据预先生成的 CV 数据,生成 CV 并保存为专业 PDF 文档。

参数:

  • cvData(object,必填):定制后的 CV 数据对象(来自 generate_cv_data)
  • outputPath(string,必填):保存 CV 的目录路径
  • fileName(string,可选):自定义文件名(不含扩展名),默认为 "professional_cv"
9. generate_cv_markdown(高级)

根据预先生成的 CV 数据,将 CV 生成为 Markdown 格式。

参数:

  • cvData(object,必填):定制后的 CV 数据对象(来自 generate_cv_data)
  • outputPath(string,必填):保存 CV 的目录路径
  • fileName(string,可选):自定义文件名(不含扩展名),默认为 "cv_markdown"
10. generate_cv_html(高级)

根据预先生成的 CV 数据,将 CV 生成为带样式的 HTML 文档。

参数:

  • cvData(object,必填):定制后的 CV 数据对象(来自 generate_cv_data)
  • outputPath(string,必填):保存 CV 的目录路径
  • fileName(string,可选):自定义文件名(不含扩展名),默认为 "cv_web"
求职信和邮件模板工具
11. generate_cover_letter(推荐)

为特定职位申请生成量身定制的求职信。返回格式化文本,可在屏幕上显示或保存为 PDF。

参数:

  • userProfile(对象,必填):完整的用户个人资料
  • jobRequirements(对象,必填):职位要求对象
  • hiringManagerName(字符串,可选):已知情况下的招聘经理姓名
  • format(字符串,可选):输出格式——"text"(默认),用于屏幕显示;"html",用于样式化查看
12. save_cover_letter_pdf

生成求职信并保存为 PDF 到指定位置。自动从职位描述中提取电子邮箱地址和招聘经理姓名。

参数:

  • userProfile(对象,必填):完整的用户个人资料
  • jobRequirements(对象,必填):职位要求对象
  • outputPath(字符串,可选):求职信的保存目录路径
  • fileName(字符串,可选):自定义文件名(不含扩展名),默认为 "cover_letter"
  • hiringManagerName(字符串,可选):已知情况下的招聘经理姓名
  • pageSize(字符串,可选):PDF 页面大小(例如,'A4'、'Letter'、'Legal')
  • margins(对象,可选):PDF 页边距,包含 top、right、bottom、left 属性
13. generate_email_template

为职位申请生成专业的邮件模板。自动从职位描述中检测电子邮箱地址。

参数:

  • userProfile(对象,必填):完整的用户个人资料
  • jobRequirements(对象,必填):职位要求对象
  • templateType(字符串,可选):邮件模板类型——"application"(默认)、"follow_up"、"inquiry"、"thank_you"
  • recipientEmail(字符串,可选):收件人邮箱地址(可选;如果职位描述中有提取到的邮箱,则使用该邮箱)
  • hiringManagerName(字符串,可选):已知情况下的招聘经理姓名
14. draft_complete_application(推荐——一站式解决方案)

起草完整的职位申请材料包:简历、求职信和邮件模板。自动生成 PDF 格式的简历和求职信;如果职位描述中找到电子邮箱地址,还会生成邮件模板。

参数:

  • userProfile(对象,必填):完整的用户个人资料
  • jobRequirements(对象,必填):职位要求对象
  • outputPath(字符串,可选):文件的保存目录路径
  • baseFileName(字符串,可选):生成文件的基础文件名(不含扩展名),默认为 "job_application"
  • hiringManagerName(字符串,可选):已知情况下的招聘经理姓名

配置

环境变量

MCP 服务支持通过 Claude Desktop 配置中的环境变量设置各种配置选项:

{
  "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:保存简历文件的默认目录(未提供 outputPath 或其值为 "./" 时)
  • TEMP_DIR:生成 PDF 期间用于存放临时文件的目录
  • PDF_TIMEOUT:生成 PDF 的超时时间,单位为毫秒
  • PDF_PAGE_SIZE:默认 PDF 页面大小,默认为 'A4'
    • 常见尺寸:'A4'(210×297mm)、'Letter'(8.5×11in)、'Legal'(8.5×14in)
  • PDF_MARGIN_*:PDF 页边距(上、右、下、左),默认为 '10mm'
  • PDF_BASE_FONT_SIZE:简历正文的基础字号(12px ≈ MS Word 9pt,13px ≈ 10pt)
  • PDF_LINE_HEIGHT:文本行高(建议设为 1.4,以采用紧凑布局)
  • PDF_H1_FONT_SIZE:姓名/标题的字号
  • PDF_H2_FONT_SIZE:章节标题的字号
  • PDF_H3_FONT_SIZE:职位名称和小节的字号
  • PDF_PARAGRAPH_SPACING:段落间距
  • PDF_SECTION_SPACING:主要章节之间的间距

使用 Claude Desktop 的示例

连接到 Claude Desktop 后,你可以使用自然语言与简历制作工具交互:

1. 解析职位要求
"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. 生成定制简历(简单的一步流程,默认输出 PDF)
"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'"

注意: 除非指定其他格式,否则系统会自动生成 PDF 文件(默认格式)。

3. 生成不同格式
"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"

或者为 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"
3. 生成求职信
"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]."
4. 生成邮件模板
"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 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 - 定制简历
  • techcorp_application_Cover_Letter.pdf - 专业求职信
  • techcorp_application_Email_Template.txt - 邮件模板(如果职位描述中找到电子邮件地址)
6. 生成跟进邮件模板
"Generate a follow-up email template for the Senior Software Engineer position I applied to at TechCorp Inc last week."
7. 直接使用工具的示例

如果你想直接使用这些工具(进阶用法):

  1. 解析职位信息:

    {
      "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."
      }
    }
    
  2. 生成定制简历:

    {
      "tool": "generate_cv_data", 
      "args": {
        "userProfile": { /* user profile object */ },
        "jobRequirements": { /* job requirements object */ }
      }
    }
    
  3. 生成 PDF 简历:

    {
      "tool": "generate_cv_pdf",
      "args": {
        "cvData": { /* tailored CV data */ },
        "outputPath": "C:\\Users\\YourName\\Documents\\CVs",
        "fileName": "senior_engineer_techcorp_cv"
      }
    }
    
  4. 生成 Markdown 简历:

    {
      "tool": "generate_cv_markdown",
      "args": {
        "cvData": { /* tailored CV data */ },
        "outputPath": "C:\\Users\\YourName\\Documents\\CVs",
        "fileName": "cv_for_github"
      }
    }
    
  5. 生成 HTML 简历:

    {
      "tool": "generate_cv_html",
      "args": {
        "cvData": { /* tailored CV data */ },
        "outputPath": "C:\\Users\\YourName\\Documents\\CVs",
        "fileName": "web_resume"
      }
    }
    
  6. 将简历保存为文本文件:

    {
      "tool": "save_cv_text",
      "args": {
        "cvData": { /* tailored CV data */ },
        "outputPath": "C:\\Users\\YourName\\Documents\\CVs",
        "fileName": "senior_engineer_techcorp_cv"
      }
    }
    

工作原理

  1. 职位分析:服务会解析职位描述,提取以下信息:

    • 必需的技术技能
    • 优先考虑的资质
    • 公司所属行业和规模
    • 所需的经验水平
  2. 简历定制:根据分析结果,服务会:

    • 优先展示相关技能和经验
    • 调整专业简介
    • 重新排列并突出匹配的成就
    • 纳入职位专属关键词,以优化 ATS 匹配效果
  3. 生成输出:创建格式规范的文本简历,具有以下特点:

    • 使用适合 ATS 的格式
    • 包含相关关键词
    • 保持专业结构
    • 突出最相关的资质

文件结构

cv-forge/
├── src/
│   ├── index.ts                    # Main MCP server
│   └── lib/
│       ├── job-parser.ts           # Job requirement parsing logic
│       ├── cv-generator.ts         # CV tailoring algorithms
│       ├── document-generator.ts   # Multi-format document generation
│       └── word-generator.ts       # Word document generation (future)
├── build/                          # Compiled JavaScript files
├── package.json                    # Project configuration
├── tsconfig.json                   # TypeScript configuration
├── claude_desktop_config.example.json  # Example configuration
└── README.md                       # This file

开发

构建
npm run build
启动开发服务
npm run dev
项目结构
  • src/index.ts:注册工具的主要 MCP 服务
  • src/lib/job-parser.ts:解析职位要求,提取关键信息、电子邮件和招聘经理姓名
  • src/lib/cv-generator.ts:根据职位要求生成定制简历内容
  • src/lib/cover-letter-generator.ts:为求职申请生成个性化求职信
  • src/lib/email-template-generator.ts:为各种求职申请场景创建专业邮件模板
  • src/lib/document-generator.ts:生成多种格式的文档(PDF、HTML、Markdown)
  • src/lib/word-generator.ts:(未来功能)生成 Word 文档

故障排除

PDF 未保存到配置的位置
  • 确保在 Claude Desktop 配置中设置了 DEFAULT_OUTPUT_PATH
  • 更改配置后,重启 Claude Desktop
  • 检查路径是否存在,或应用是否有权限创建该路径
字体过大或过小
  • 调整环境变量中的 PDF_BASE_FONT_SIZE(12px ≈ 9pt,13px ≈ 10pt MS Word)
  • 修改 PDF_LINE_HEIGHT,以调整行距
  • 更改后,重启 Claude Desktop
PDF 生成失败
  • 检查输出目录是否存在且可写
  • 确认 TEMP_DIR 路径有效
  • 确保有足够的磁盘空间
自定义页面尺寸未生效
  • 确保页面尺寸格式有效(A4、Letter、Legal、A3、A5 等)
  • 检查 PDF 生成器是否支持该页面尺寸
  • 使用标准页面尺寸名称(区分大小写)
自定义页边距未生效
  • 使用正确的单位:'mm'、'cm'、'in'、'px'、'pt'
  • 示例:'10mm'、'0.8in'、'72pt'
  • 更改环境变量后,重启 Claude Desktop

未来增强

  • 增强 Word 文档生成功能,支持高级格式设置
  • 提供多种简历和求职信模板(现代、经典、简约)
  • 高级关键词优化算法
  • 集成招聘网站,自动解析职位信息
  • 集成 LinkedIn 个人资料,自动获取资料数据
  • 根据职位要求提供面试准备问题
  • 根据市场数据提供薪资谈判指导
  • 支持多语言,满足国际求职需求
  • AI 驱动的写作建议和改进

依赖项

  • @modelcontextprotocol/sdk:核心 MCP 功能
  • zod:模式验证和类型安全
  • typescript:TypeScript 编译器
  • md-to-pdf:将 Markdown 转换为 PDF
  • markdown-it:Markdown 解析和 HTML 转换
  • docx:Word 文档生成(用于未来的 Word 输出)

许可证

本项目采用 MIT 许可证。

贡献

欢迎贡献!请随时提交拉取请求,或针对错误和功能请求提出问题。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。