Cover Letter

Gera cartas de apresentação profissionais em PDF usando LaTeX. Requer Docker para execução local.

Documentação

Servidor MCP Cover Letter

Um servidor Model Context Protocol (MCP) que gera cartas de apresentação em PDF profissionais usando LaTeX. Este servidor integra-se perfeitamente ao Claude Desktop para criar cartas de apresentação lindamente formatadas, com design limpo e profissional e recursos avançados de gerenciamento de pastas.

Recursos

  • 🎯 Design Profissional: Layout limpo e moderno, alinhado aos padrões de currículos profissionais
  • 📄 Geração de PDF: Saída em PDF de alta qualidade usando LaTeX
  • 🔧 Integração com Claude Desktop: Funciona diretamente na interface do Claude Desktop
  • 📁 Gerenciamento Avançado de Pastas: Crie pastas personalizadas e organize cartas de apresentação por vaga, empresa ou categoria
  • 🗂️ Navegação de Diretórios: Liste e navegue pela sua coleção de cartas de apresentação com explorador de arquivos integrado
  • Geração Rápida: Ambiente conteinerizado com Docker para processamento consistente e ágil
  • 🛡️ Sanitização de Entrada: Escape automático de caracteres especiais para segurança no LaTeX
  • 🔒 Caminhos Seguros: Sanitização de caminhos integrada evita problemas de segurança

Pré-requisitos

  • Docker: Certifique-se de que o Docker Desktop esteja instalado e em execução
  • Claude Desktop: Versão mais recente com suporte a MCP
  • Git: Para clonar o repositório

Início Rápido

1. Clone o Repositório

git clone https://github.com/YOUR_USERNAME/cover-letter-mcp.git
cd cover-letter-mcp

2. Crie o Diretório de Downloads

mkdir downloads

3. Construa a Imagem Docker

docker build -t cover-letter-mcp .

4. Configure o Claude Desktop

Adicione a seguinte configuração ao arquivo de configuração do seu Claude Desktop:

Localização do arquivo de configuração:

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

Configuração:

{
  "mcpServers": {
    "cover-letter-generator": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-v",
        "/path/to/your/cover-letter-mcp/downloads:/downloads",
        "cover-letter-mcp",
        "python",
        "server.py"
      ]
    }
  }
}

Substitua /path/to/your/cover-letter-mcp/downloads pelo seu caminho real:

  • Windows: "C:/Users/YourUsername/path/to/cover-letter-mcp/downloads:/downloads"
  • macOS/Linux: "/Users/YourUsername/path/to/cover-letter-mcp/downloads:/downloads"

5. Reinicie o Claude Desktop

Reinicie o Claude Desktop para carregar a nova configuração do servidor MCP.

Uso

Após a configuração, você pode gerar cartas de apresentação diretamente no Claude Desktop com recursos avançados de organização:

Exemplo de Uso

Geração Básica de Carta de Apresentação

Generate a cover letter for:
- Name: John Smith
- Company: Tech Innovations Inc
- Position: Software Engineer
- Body: I am writing to express my interest in the Software Engineer position at your company. With 5 years of experience in software development, I believe I would be a great fit for your team. My skills in JavaScript and Python align well with your requirements. I look forward to discussing this opportunity further.

Carta de Apresentação Organizada com Pasta Personalizada

Generate a cover letter for Jane Doe applying to Google for a Senior Developer position and save it in the "FAANG-applications/google" folder

Organização Avançada

Create a cover letter for the Product Manager role at Netflix. Save it in "streaming-companies/netflix" with filename "pm-application-2024"

Gerenciamento de Pastas

Create a folder structure for organizing my job applications: "job-search-2024/tech-companies" and "job-search-2024/startups"
Show me what cover letters I have in my "tech-companies" folder

Recursos Inteligentes de Organização

  • 🗂️ Criação Automática de Pastas - As pastas são criadas automaticamente ao gerar cartas de apresentação
  • 📁 Estrutura de Diretórios Personalizada - Organize por empresa, tipo de cargo, setor ou qualquer sistema que funcione para você
  • 🔍 Navegador de Diretórios - Liste o conteúdo de qualquer pasta para ver sua coleção de cartas de apresentação
  • 📊 Informações de Arquivo - Visualize tamanhos de arquivo, datas de criação e organize por metadados
  • 🛡️ Segurança de Caminhos - Sanitização integrada evita travessia de diretórios e caracteres inválidos

Exemplos de Organização

Por Empresa:

  • applications/google/
  • applications/microsoft/
  • applications/amazon/

Por Tipo de Cargo:

  • roles/software-engineer/
  • roles/product-manager/
  • roles/data-scientist/

Por Setor:

  • industries/fintech/
  • industries/healthcare/
  • industries/gaming/

Por Status:

  • drafts/
  • submitted/2024/
  • archived/old-versions/

Opções Avançadas

Nome de arquivo personalizado com organização:

Generate a cover letter with filename "tech_innovations_application" for John Smith applying to Tech Innovations Inc and save it in the "applications/tech-startups" folder

Organização de múltiplas candidaturas:

I'm applying to several FAANG companies. Create cover letters for:
1. Google - Software Engineer role (save in "faang/google")
2. Meta - Frontend Developer role (save in "faang/meta")
3. Amazon - Backend Engineer role (save in "faang/amazon")

Referência da API

Ferramentas Disponíveis

generate_cover_letter

Gera uma carta de apresentação em PDF a partir de dados estruturados, com organização opcional em pastas.

Parâmetros:

  • name (string): Nome completo do candidato
  • company (string): Nome da empresa
  • position (string): Cargo pretendido
  • body (string): Texto principal da carta de apresentação
  • filename (string, opcional): Nome de arquivo personalizado (sem extensão .pdf)
  • folderPath (string, opcional): Caminho de pasta personalizado dentro do diretório de downloads

Exemplo:

{
  "name": "John Smith",
  "company": "Tech Corp",
  "position": "Software Engineer",
  "body": "I am writing to express my strong interest...",
  "filename": "john-smith-tech-corp-application",
  "folderPath": "job-applications/tech-companies/tech-corp"
}

create_folder

Cria uma nova pasta dentro do diretório de downloads.

Parâmetros:

  • folderPath (string): Caminho da pasta a ser criada (suporta subpastas aninhadas)

Exemplo:

{
  "folderPath": "applications/2024/q1"
}

list_folders

Lista todas as pastas e arquivos no diretório de downloads.

Parâmetros:

  • path (string, opcional): Subdiretório específico a ser listado

Exemplo:

{
  "path": "applications/tech-companies"
}

Estrutura de Arquivos

cover-letter-mcp/
├── server.py              # Main MCP server with folder management
├── Dockerfile             # Docker container configuration
├── requirements.txt       # Python dependencies
├── downloads/             # Generated PDFs organized in folders
│   ├── applications/
│   │   ├── google/
│   │   │   ├── john-smith-swe-2024.pdf
│   │   │   └── jane-doe-pm-2024.pdf
│   │   ├── microsoft/
│   │   └── startups/
│   ├── drafts/
│   └── templates/
└── README.md             # This file

Detalhes Técnicos

Modelo LaTeX

O servidor utiliza um modelo LaTeX personalizado que cria:

  • Cabeçalho centralizado e limpo com o nome do candidato
  • Espaçamento e tipografia profissionais
  • Inserção automática de data
  • Formatação adequada de carta comercial
  • Saída em PDF de alta qualidade

Recursos de Segurança

  • Sanitização de Entrada: Toda a entrada do usuário é devidamente escapada para LaTeX
  • Segurança de Nomes de Arquivo: Nomes de arquivo gerados são sanitizados para evitar travessia de caminhos
  • Segurança de Caminhos: Caminhos de pastas são sanitizados para evitar ataques de travessia de diretórios
  • Ambiente Isolado: O contêiner Docker proporciona execução segura e isolada
  • Filtragem de Caracteres: Remove ou substitui caracteres inválidos do sistema de arquivos

Protocolo MCP

Este servidor implementa a especificação do Model Context Protocol:

  • Ferramentas: generate_cover_letter, create_folder, list_folders
  • Recursos: Lista e fornece acesso aos PDFs gerados (incluindo subpastas aninhadas)
  • Capacidades: Acesso total de leitura/escrita para geração de cartas de apresentação e gerenciamento de pastas

Solução de Problemas

Problemas Comuns

"Docker command not found"

  • Certifique-se de que o Docker Desktop esteja instalado e em execução
  • Verifique se o Docker está no PATH do seu sistema

"Permission denied" no Windows

  • Certifique-se de que o Docker Desktop tenha acesso à sua unidade
  • Tente executar o PowerShell como Administrador
  • Verifique se a pasta de downloads tem permissões de escrita

"Container not found"

  • Reconstrua a imagem Docker: docker build -t cover-letter-mcp .
  • Verifique se o nome da imagem corresponde à sua configuração

"LaTeX compilation failed"

  • Isso geralmente indica caracteres especiais na entrada
  • O servidor escapa automaticamente a maioria dos caracteres, mas algumas formatações complexas podem precisar de ajustes

"Folder creation errors"

  • Verifique as permissões de escrita no diretório de downloads
  • Confirme se os caminhos das pastas não contêm caracteres inválidos
  • Garanta que o Docker tenha acesso ao volume montado

"Path-related issues"

  • Os caminhos de pastas são sanitizados automaticamente por segurança
  • Caracteres inválidos são substituídos por sublinhados
  • Tentativas de travessia de diretórios (../) são bloqueadas automaticamente

Modo de Depuração

Para ver logs detalhados do servidor MCP, verifique o console de desenvolvedor do Claude Desktop ou execute o contêiner Docker manualmente:

docker run --rm -i -v "./downloads:/downloads" cover-letter-mcp python server.py

Para depuração detalhada (verbose):

docker run --rm -i -v "./downloads:/downloads" -e DEBUG=1 cover-letter-mcp python server.py

Desenvolvimento

Desenvolvimento Local

Para desenvolvimento sem Docker:

  1. Instale as dependências Python:

    pip install -r requirements.txt
    
  2. Instale o LaTeX (varia conforme o sistema):

    # Ubuntu/Debian
    sudo apt-get install texlive-latex-base texlive-latex-recommended
    
    # macOS with Homebrew
    brew install --cask mactex
    
    # Windows
    # Download and install MiKTeX or TeX Live
    
  3. Execute o servidor:

    python server.py
    

Considerações de Segurança

  • Validação de Caminhos: Todos os caminhos de pastas são validados e sanitizados
  • Escape de Entrada: Caracteres especiais do LaTeX são devidamente escapados
  • Isolamento do Contêiner: O Docker fornece isolamento de processos e sistema de arquivos
  • Montagem de Volumes: Apenas o diretório de downloads é acessível ao contêiner

Contribuição

  1. Faça um fork do repositório
  2. Crie um branch de funcionalidade: git checkout -b feature-name
  3. Faça suas alterações
  4. Teste minuciosamente com diversas estruturas de pastas
  5. Envie um pull request

Licença

Licença MIT - consulte o arquivo LICENSE para obter detalhes.

Suporte

Se você encontrar problemas:

  1. Consulte a seção de solução de problemas
  2. Revise a documentação MCP do Claude Desktop
  3. Abra uma issue no GitHub com:
    • Seu sistema operacional
    • Versão do Claude Desktop
    • Versão do Docker
    • Mensagens de erro completas
    • Passos para reproduzir

Registro de Alterações

v2.0.0 - Atualização de Gerenciamento de Pastas

  • NOVO: Organização de pastas personalizadas dentro do diretório de downloads
  • NOVO: Ferramenta create_folder para criar estruturas de diretórios organizadas
  • NOVO: Ferramenta list_folders para navegar e gerenciar coleções de cartas de apresentação
  • NOVO: generate_cover_letter aprimorado com o parâmetro folderPath
  • 🛡️ NOVO: Sanitização de caminhos e recursos de segurança
  • 📊 NOVO: Exibição de metadados de arquivos (tamanho, data) nas listagens de diretórios
  • 🗂️ NOVO: Criação automática de caminhos de pastas ao gerar cartas de apresentação
  • 📁 NOVO: Suporte a estruturas de pastas aninhadas
  • 🔍 NOVO: Ferramentas de navegação de diretórios e organização de arquivos
  • 🔒 NOVO: Segurança aprimorada com isolamento de volume Docker

v1.0.0

  • Lançamento inicial
  • Geração profissional de cartas de apresentação em LaTeX
  • Conteinerização com Docker
  • Integração com Claude Desktop
  • Saída básica em PDF para a pasta de downloads

Feito com ❤️ para a comunidade Claude Desktop e MCP