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 candidatocompany(string): Nome da empresaposition(string): Cargo pretendidobody(string): Texto principal da carta de apresentaçãofilename(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:
-
Instale as dependências Python:
pip install -r requirements.txt -
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 -
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
- Faça um fork do repositório
- Crie um branch de funcionalidade:
git checkout -b feature-name - Faça suas alterações
- Teste minuciosamente com diversas estruturas de pastas
- Envie um pull request
Licença
Licença MIT - consulte o arquivo LICENSE para obter detalhes.
Suporte
Se você encontrar problemas:
- Consulte a seção de solução de problemas
- Revise a documentação MCP do Claude Desktop
- 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_folderpara criar estruturas de diretórios organizadas - ✨ NOVO: Ferramenta
list_folderspara navegar e gerenciar coleções de cartas de apresentação - ✨ NOVO:
generate_cover_letteraprimorado com o parâmetrofolderPath - 🛡️ 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