CV Forge MCP
Forja CVs potentes y compatibles con ATS, adaptados a cualquier trabajo: un servidor MCP para la generación inteligente de CVs.
Documentación
CV Forge
Crea CVs potentes y compatibles con ATS, adaptados a cualquier requisito de empleo.
Un servidor MCP (Model Context Protocol) inteligente que analiza ofertas de empleo y elabora CVs perfectamente adaptados.
Características
- Analizar requisitos de empleo: Extrae habilidades clave, cualificaciones, direcciones de correo electrónico y nombres de responsables de contratación de las ofertas de empleo
- Generar CVs personalizados: Crea contenido de CV personalizado basado en el perfil del usuario y los requisitos del empleo
- Generación de cartas de presentación: Genera cartas de presentación personalizadas adaptadas a solicitudes de empleo específicas
- Creación de plantillas de correo electrónico: Crea plantillas de correo electrónico profesionales con detección automática de direcciones de correo
- Paquetes de solicitud completos: Genera CV, carta de presentación y plantilla de correo electrónico en un solo comando
- PDF por defecto: Genera automáticamente documentos PDF profesionales cuando no se especifica ningún formato
- Múltiples formatos de salida: Genera documentos en PDF (predeterminado), HTML, Markdown y formatos de texto
- Generación de PDF profesional: Crea documentos PDF listos para publicación con estilo profesional
- Compatible con ATS: Optimizado para sistemas de seguimiento de candidatos con colocación adecuada de palabras clave
- Extracción inteligente de contactos: Extrae automáticamente direcciones de correo electrónico y nombres de responsables de contratación de las descripciones de empleo
Historial de estrellas
Instalación
Mediante npm (recomendado)
Instalar globalmente:
npm install -g cv-forge
O instalar localmente en tu proyecto:
npm install cv-forge
Desde el código fuente
- Clona este repositorio
- Instala las dependencias:
npm install - Compila el proyecto:
npm run build
Uso
Conexión con Claude Desktop
Para usar este servidor MCP con Claude Desktop, debes añadirlo a tu archivo de configuración de Claude.
Paso 1: Instalar cv-forge
npm install -g cv-forge
Paso 2: Encuentra tu archivo de configuración de 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
Paso 3: Añade el servidor MCP a tu configuración
Para instalación global, añade esto a tu archivo claude_desktop_config.json:
{
"mcpServers": {
"cv-forge": {
"command": "cv-forge"
}
}
}
O si está instalado localmente, especifica la ruta completa:
{
"mcpServers": {
"cv-forge": {
"command": "node",
"args": ["d:/TopSecret/cv-forge/build/index.js"],
"cwd": "d:/TopSecret/cv-forge"
}
}
}
Paso 4: (Opcional) Añade configuración de entorno
Puedes personalizar el servidor con variables de entorno:
{
"mcpServers": {
"cv-forge": {
"command": "cv-forge",
"env": {
"DEFAULT_OUTPUT_PATH": "D:/CV",
"PDF_BASE_FONT_SIZE": "12px",
"PDF_LINE_HEIGHT": "1.4"
}
}
}
}
Paso 5: Reinicia Claude Desktop Después de añadir la configuración, reinicia la aplicación Claude Desktop.
Paso 6: Verifica la conexión En Claude Desktop, deberías ver las herramientas de CV Forge disponibles. Puedes pedirle a Claude que use herramientas como:
- "Analiza esta oferta de empleo para mí"
- "Genera un CV personalizado basado en mi perfil y este empleo"
- "Guarda mi CV como archivo PDF"
Ejecutar el servidor MCP de forma independiente (para pruebas)
También puedes ejecutar el servidor directamente para probarlo:
npm start
El servidor se ejecuta en stdio y se comunica mediante el Model Context Protocol.
Herramientas disponibles
1. parse_job_requirements
Analiza los requisitos del empleo y extrae información clave para la personalización del CV.
Parámetros:
jobTitle(cadena, obligatorio): El título/puesto de trabajocompany(cadena, obligatorio): Nombre de la empresajobDescription(cadena, obligatorio): Texto completo de la descripción del empleorequirements(matriz, opcional): Requisitos específicos si están separadospreferredSkills(matriz, opcional): Habilidades preferidas si están separadaslocation(cadena, opcional): Ubicación del empleosalaryRange(cadena, opcional): Rango salarial si se proporciona
2. generate_cv_data
Genera contenido de CV personalizado basado en el perfil del usuario y los requisitos del empleo.
Parámetros:
userProfile(objeto, obligatorio): Información completa del perfil del usuariojobRequirements(objeto, obligatorio): Objeto de requisitos del empleo
Estructura del perfil de usuario:
{
"personalInfo": {
"fullName": "John Doe",
"email": "john@example.com",
"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
Guarda el contenido del CV como un archivo de texto con formato.
Parámetros:
cvData(objeto, obligatorio): Objeto de datos de CV personalizado (de generate_cv_data)outputPath(cadena, obligatorio): Ruta del directorio donde se debe guardar el CVfileName(cadena, opcional): Nombre de archivo personalizado (sin extensión), por defecto "generated_cv"
4. generate_cv (Recomendado - Herramienta principal de generación de CV)
Genera un CV personalizado y lo guarda en la ubicación especificada o en la carpeta predeterminada. El formato PDF es el predeterminado si no se especifica ningún formato.
Parámetros:
userProfile(objeto, obligatorio): Información completa del perfil del usuariojobRequirements(objeto, obligatorio): Objeto de requisitos del empleooutputPath(cadena, opcional): Ruta del directorio donde se debe guardar el CV (usa DEFAULT_OUTPUT_PATH si no se proporciona)fileName(cadena, opcional): Nombre de archivo personalizado (sin extensión), por defecto "professional_cv"format(cadena, opcional): Formato de salida - "pdf" (predeterminado), "html" o "markdown"pageSize(cadena, opcional): Tamaño de página del PDF (p. ej., 'A4', 'Letter', 'Legal') - usa la variable de entorno PDF_PAGE_SIZE si no se proporcionamargins(objeto, opcional): Márgenes del PDF con propiedades top, right, bottom, left (p. ej., '10mm', '0.8in') - usa las variables de entorno PDF_MARGIN_* si no se proporcionan
5. generate_and_save_cv_pdf (Legado - Usa generate_cv en su lugar)
Genera un CV personalizado y lo guarda directamente como PDF profesional (combina la generación del CV y la creación del PDF en un solo paso).
Parámetros:
userProfile(objeto, obligatorio): Información completa del perfil del usuariojobRequirements(objeto, obligatorio): Objeto de requisitos del empleooutputPath(cadena, opcional): Ruta del directorio donde se debe guardar el CV (usa DEFAULT_OUTPUT_PATH si no se proporciona)fileName(cadena, opcional): Nombre de archivo personalizado (sin extensión), por defecto "professional_cv"
6. generate_and_save_cv_markdown (Recomendado)
Genera un CV personalizado y lo guarda directamente como Markdown (combina la generación del CV y la creación de Markdown en un solo paso).
Parámetros:
userProfile(objeto, obligatorio): Información completa del perfil del usuariojobRequirements(objeto, obligatorio): Objeto de requisitos del empleooutputPath(cadena, obligatorio): Ruta del directorio donde se debe guardar el CVfileName(cadena, opcional): Nombre de archivo personalizado (sin extensión), por defecto "cv_markdown"
7. generate_and_save_cv_html (Recomendado)
Genera un CV personalizado y lo guarda directamente como HTML (combina la generación del CV y la creación de HTML en un solo paso).
Parámetros:
userProfile(objeto, obligatorio): Información completa del perfil del usuariojobRequirements(objeto, obligatorio): Objeto de requisitos del empleooutputPath(cadena, obligatorio): Ruta del directorio donde se debe guardar el CVfileName(cadena, opcional): Nombre de archivo personalizado (sin extensión), por defecto "cv_html"
8. generate_cv_pdf (Avanzado)
Genera y guarda el CV como un documento PDF profesional a partir de datos de CV pregenerados.
Parámetros:
cvData(objeto, obligatorio): Objeto de datos de CV personalizado (de generate_cv_data)outputPath(cadena, obligatorio): Ruta del directorio donde se debe guardar el CVfileName(cadena, opcional): Nombre de archivo personalizado (sin extensión), por defecto "professional_cv"
9. generate_cv_markdown (Avanzado)
Genera el CV en formato Markdown a partir de datos de CV pregenerados.
Parámetros:
cvData(objeto, obligatorio): Objeto de datos de CV personalizado (de generate_cv_data)outputPath(cadena, obligatorio): Ruta del directorio donde se debe guardar el CVfileName(cadena, opcional): Nombre de archivo personalizado (sin extensión), por defecto "cv_markdown"
10. generate_cv_html (Avanzado)
Genera el CV como documento HTML con estilo a partir de datos de CV pregenerados.
Parámetros:
cvData(objeto, obligatorio): Objeto de datos de CV personalizado (de generate_cv_data)outputPath(cadena, obligatorio): Ruta del directorio donde se debe guardar el CVfileName(cadena, opcional): Nombre de archivo personalizado (sin extensión), por defecto "cv_web"
Herramientas de carta de presentación y plantilla de correo electrónico
11. generate_cover_letter (Recomendado)
Genera una carta de presentación personalizada para una solicitud de empleo específica. Devuelve texto con formato que se puede mostrar en pantalla o guardar como PDF.
Parámetros:
userProfile(objeto, obligatorio): Información completa del perfil del usuariojobRequirements(objeto, obligatorio): Objeto de requisitos del empleohiringManagerName(cadena, opcional): Nombre del responsable de contratación si se conoceformat(cadena, opcional): Formato de salida - "text" (predeterminado) para visualización en pantalla, "html" para visualización con estilo
12. save_cover_letter_pdf
Genera y guarda una carta de presentación como PDF en la ubicación especificada. Extrae automáticamente direcciones de correo electrónico y nombres de responsables de contratación de las descripciones de empleo.
Parámetros:
userProfile(objeto, obligatorio): Información completa del perfil del usuariojobRequirements(objeto, obligatorio): Objeto de requisitos del empleooutputPath(cadena, opcional): Ruta del directorio donde se debe guardar la carta de presentaciónfileName(cadena, opcional): Nombre de archivo personalizado (sin extensión), por defecto "cover_letter"hiringManagerName(cadena, opcional): Nombre del responsable de contratación si se conocepageSize(cadena, opcional): Tamaño de página del PDF (p. ej., 'A4', 'Letter', 'Legal')margins(objeto, opcional): Márgenes del PDF con propiedades top, right, bottom, left
13. generate_email_template
Genera una plantilla de correo electrónico profesional para solicitudes de empleo. Detecta automáticamente las direcciones de correo electrónico de la descripción del empleo.
Parámetros:
userProfile(objeto, obligatorio): Información completa del perfil del usuariojobRequirements(objeto, obligatorio): Objeto de requisitos del empleotemplateType(cadena, opcional): Tipo de plantilla de correo electrónico - "application" (predeterminado), "follow_up", "inquiry", "thank_you"recipientEmail(cadena, opcional): Dirección de correo electrónico del destinatario (opcional, usará el correo extraído de la descripción del empleo si está disponible)hiringManagerName(cadena, opcional): Nombre del responsable de contratación si se conoce
14. draft_complete_application (Recomendado - Solución integral)
Redacta un paquete completo de solicitud de empleo: CV, carta de presentación y plantilla de correo electrónico. Genera automáticamente el CV y la carta de presentación en PDF, además de la plantilla de correo electrónico si se encuentra una dirección de correo en la descripción del empleo.
Parámetros:
userProfile(objeto, obligatorio): Información completa del perfil del usuariojobRequirements(objeto, obligatorio): Objeto de requisitos del empleooutputPath(cadena, opcional): Ruta del directorio donde se deben guardar los archivosbaseFileName(cadena, opcional): Nombre base de los archivos generados (sin extensión), por defecto "job_application"hiringManagerName(cadena, opcional): Nombre del responsable de contratación si se conoce
Configuración
Variables de entorno
El servidor MCP admite varias opciones de configuración mediante variables de entorno en la configuración de 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"
}
}
}
}
Opciones de configuración:
DEFAULT_OUTPUT_PATH: Directorio predeterminado para guardar archivos de CV (cuando outputPath no se proporciona o es "./")TEMP_DIR: Directorio para archivos temporales durante la generación de PDFPDF_TIMEOUT: Tiempo de espera para la generación de PDF en milisegundosPDF_PAGE_SIZE: Tamaño de página predeterminado del PDF - por defecto 'A4'- Tamaños comunes: 'A4' (210×297mm), 'Letter' (8.5×11in), 'Legal' (8.5×14in)
PDF_MARGIN_*: Márgenes de página del PDF (superior, derecho, inferior, izquierdo) - por defecto '10mm'PDF_BASE_FONT_SIZE: Tamaño de fuente base para el texto del cuerpo del CV (12px ≈ MS Word 9pt, 13px ≈ 10pt)PDF_LINE_HEIGHT: Interlineado para el texto (1.4 recomendado para un diseño compacto)PDF_H1_FONT_SIZE: Tamaño de fuente para el encabezado de nombre/títuloPDF_H2_FONT_SIZE: Tamaño de fuente para los encabezados de secciónPDF_H3_FONT_SIZE: Tamaño de fuente para títulos de empleo y subseccionesPDF_PARAGRAPH_SPACING: Espaciado entre párrafosPDF_SECTION_SPACING: Espaciado entre secciones principales
Ejemplo de uso con Claude Desktop
Una vez conectado a Claude Desktop, puedes usar lenguaje natural para interactuar con el creador de CV:
1. Analizar requisitos de empleo
"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. Generar CV personalizado (proceso simple de un solo paso - PDF por defecto)
"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: john@example.com
- 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'"
Nota: Esto generará automáticamente un archivo PDF (formato predeterminado) a menos que especifiques un formato diferente.
3. Generar diferentes formatos
"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'"
O especifica el formato explícitamente:
"Generate my CV in HTML format and save it to C:\Users\John\Documents\CVs"
O especifique un tamaño de página personalizado y márgenes para el 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. Generar Cartas de Presentación
"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 careers@techcorp.com."
4. Generar Plantillas de Correo Electrónico
"Create an email template for applying to the Senior Software Engineer position at TechCorp Inc. The job posting includes the email careers@techcorp.com and mentions Sarah Johnson as the hiring manager."
5. Redactar Paquete de Solicitud Completo (Recomendado)
"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'."
Esto generará:
techcorp_application_CV.pdf- CV adaptadotechcorp_application_Cover_Letter.pdf- Carta de presentación profesionaltechcorp_application_Email_Template.txt- Plantilla de correo electrónico (si se encuentra una dirección de correo en la descripción del puesto)
6. Generar Plantilla de Correo de Seguimiento
"Generate a follow-up email template for the Senior Software Engineer position I applied to at TechCorp Inc last week."
7. Ejemplos de Uso Directo de Herramientas
Si desea utilizar las herramientas directamente (uso avanzado):
-
Analizar una oferta de empleo:
{ "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." } } -
Generar CV adaptado:
{ "tool": "generate_cv_data", "args": { "userProfile": { /* user profile object */ }, "jobRequirements": { /* job requirements object */ } } } -
Generar CV en PDF:
{ "tool": "generate_cv_pdf", "args": { "cvData": { /* tailored CV data */ }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "senior_engineer_techcorp_cv" } } -
Generar CV en Markdown:
{ "tool": "generate_cv_markdown", "args": { "cvData": { /* tailored CV data */ }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "cv_for_github" } } -
Generar CV en HTML:
{ "tool": "generate_cv_html", "args": { "cvData": { /* tailored CV data */ }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "web_resume" } } -
Guardar CV como archivo de texto:
{ "tool": "save_cv_text", "args": { "cvData": { /* tailored CV data */ }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "senior_engineer_techcorp_cv" } }
Cómo Funciona
-
Análisis de la Oferta: El servidor analiza las descripciones de los puestos para extraer:
- Habilidades técnicas requeridas
- Cualificaciones preferidas
- Industria y tamaño de la empresa
- Requisitos de nivel de experiencia
-
Adaptación del CV: Basándose en el análisis, el servidor:
- Prioriza habilidades y experiencia relevantes
- Ajusta el resumen profesional
- Reordena y enfatiza los logros que coinciden
- Incorpora palabras clave específicas del puesto para optimización ATS
-
Generación de Salida: Crea un CV de texto bien formateado que:
- Utiliza formato compatible con ATS
- Incluye palabras clave relevantes
- Mantiene una estructura profesional
- Destaca las cualificaciones más relevantes
Estructura de Archivos
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
Desarrollo
Compilación
npm run build
Iniciar Servidor de Desarrollo
npm run dev
Estructura del Proyecto
src/index.ts: Servidor MCP principal con registro de herramientassrc/lib/job-parser.ts: Analiza los requisitos del puesto, extrae información clave, correos electrónicos y nombres de gerentes de contrataciónsrc/lib/cv-generator.ts: Genera contenido de CV adaptado según los requisitos del puestosrc/lib/cover-letter-generator.ts: Genera cartas de presentación personalizadas para solicitudes de empleosrc/lib/email-template-generator.ts: Crea plantillas de correo electrónico profesionales para diversos escenarios de solicitudsrc/lib/document-generator.ts: Generación de documentos en múltiples formatos (PDF, HTML, Markdown)src/lib/word-generator.ts: (Futuro) Funcionalidad de generación de documentos de Word
Solución de Problemas
El PDF no se guarda en la ubicación configurada
- Asegúrese de que
DEFAULT_OUTPUT_PATHesté configurado en la configuración de Claude Desktop - Reinicie Claude Desktop después de cambiar la configuración
- Verifique que la ruta exista o que la aplicación tenga permiso para crearla
Tamaño de fuente demasiado grande o pequeño
- Ajuste
PDF_BASE_FONT_SIZEen las variables de entorno (12px ≈ 9pt, 13px ≈ 10pt en MS Word) - Modifique
PDF_LINE_HEIGHTpara un espaciado más ajustado o más amplio - Reinicie Claude Desktop después de los cambios
La generación de PDF falla
- Verifique que el directorio de salida exista y sea escribible
- Confirme que la ruta de
TEMP_DIRsea válida - Asegúrese de que haya suficiente espacio en disco
El tamaño de página personalizado no funciona
- Asegúrese de que el tamaño de página sea un formato válido (A4, Letter, Legal, A3, A5, etc.)
- Verifique que el generador de PDF admita el tamaño de página
- Utilice nombres de tamaño de página estándar (distinguen entre mayúsculas y minúsculas)
Los márgenes personalizados no se aplican
- Utilice unidades adecuadas: 'mm', 'cm', 'in', 'px', 'pt'
- Ejemplo: '10mm', '0.8in', '72pt'
- Reinicie Claude Desktop después de cambiar las variables de entorno
Mejoras Futuras
- Generación mejorada de documentos de Word con formato avanzado
- Múltiples plantillas de CV y cartas de presentación (moderna, clásica, minimalista)
- Algoritmos avanzados de optimización de palabras clave
- Integración con bolsas de trabajo para análisis automático de ofertas
- Integración con perfil de LinkedIn para datos automáticos de perfil
- Preguntas de preparación para entrevistas basadas en los requisitos del puesto
- Orientación sobre negociación salarial basada en datos de mercado
- Soporte multilingüe para solicitudes internacionales
- Sugerencias y mejoras de redacción impulsadas por IA
Dependencias
@modelcontextprotocol/sdk: Funcionalidad principal de MCPzod: Validación de esquemas y seguridad de tipostypescript: Compilador de TypeScriptmd-to-pdf: Generación de PDF desde Markdownmarkdown-it: Análisis de Markdown y conversión a HTMLdocx: Generación de documentos de Word (para futura salida en Word)
Licencia
Este proyecto está disponible bajo la Licencia MIT.
Contribuciones
¡Las contribuciones son bienvenidas! No dude en enviar solicitudes de extracción o abrir problemas para errores y solicitudes de funciones.