Overleaf MCP server
Permite que ferramentas como copilot, claude desktop, claude code etc. realizem operações CRUD em projetos overleaf via git int
Documentação
Servidor MCP Overleaf
Um servidor Model Context Protocol (MCP) que fornece operações CRUD completas para projetos LaTeX do Overleaf. Permite que assistentes de IA leiam, editem, criem e excluam arquivos em seus projetos Overleaf.
Recursos
14 Ferramentas para Gerenciamento Completo de Projetos
| Categoria | Ferramenta | Descrição |
|---|---|---|
| Criar | create_project | Criar novos projetos Overleaf a partir de conteúdo LaTeX ou arquivos ZIP |
create_file | Adicionar novos arquivos a projetos existentes | |
| Ler | list_projects | Visualizar todos os projetos configurados |
list_files | Listar arquivos com filtro opcional de extensão | |
read_file | Ler conteúdo de arquivos | |
get_sections | Analisar estrutura LaTeX (capítulos, seções, subseções) | |
get_section_content | Obter conteúdo completo de uma seção específica | |
list_history | Visualizar histórico de commits do git | |
get_diff | Comparar alterações entre versões | |
| Atualizar | edit_file | Edição cirúrgica - substituir texto específico (old_string → new_string) |
rewrite_file | Substituir conteúdo completo de arquivos | |
update_section | Atualizar uma seção LaTeX específica por título | |
sync_project | Puxar alterações mais recentes do Overleaf | |
| Excluir | delete_file | Remover arquivos de projetos |
Principais Capacidades
- Integração Git: Usa a integração Git do Overleaf para sincronização confiável
- Suporte a Múltiplos Projetos: Configure e alterne entre vários projetos
- Consciente de LaTeX: Entende a estrutura do documento para operações baseadas em seções
- Push Automático: Todas as operações de escrita fazem commit e push para o Overleaf imediatamente
- Cache Local: Acesso rápido com cache de repositório local
Instalação
Pré-requisitos
- Python 3.10+
- Git
- Conta Overleaf com integração Git (requer plano pago)
Instalar com pip
# Clone the repository
git clone https://github.com/YOUR_USERNAME/overleaf-mcp.git
cd overleaf-mcp
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install
pip install -e .
Instalar com uv (mais rápido)
git clone https://github.com/YOUR_USERNAME/overleaf-mcp.git
cd overleaf-mcp
uv venv
source .venv/bin/activate
uv pip install -e .
Configuração
Passo 1: Obtenha Suas Credenciais Overleaf
-
Abra seu projeto Overleaf no navegador
-
Obtenha o ID do Projeto a partir da URL:
https://www.overleaf.com/project/YOUR_PROJECT_ID ^^^^^^^^^^^^^^^^ -
Obtenha o Token Git:
- Clique em Menu (canto superior esquerdo)
- Clique em Git em "Sincronizar"
- Clique em Gerar token (se ainda não foi gerado)
- Copie a URL:
https://git:YOUR_TOKEN@git.overleaf.com/... - Extraia o token (a parte entre
git:e@)
Passo 2: Crie o Arquivo de Configuração
Crie overleaf_config.json no diretório do projeto:
{
"projects": {
"my-thesis": {
"name": "My PhD Thesis",
"projectId": "abc123def456",
"gitToken": "olp_xxxxxxxxxxxxxxxxxxxx"
},
"paper": {
"name": "Research Paper",
"projectId": "xyz789ghi012",
"gitToken": "olp_yyyyyyyyyyyyyyyyyyyy"
}
},
"defaultProject": "my-thesis"
}
Alternativa: Variáveis de Ambiente
Para configurações de projeto único:
export OVERLEAF_PROJECT_ID="your_project_id"
export OVERLEAF_GIT_TOKEN="your_git_token"
Configuração do Cliente
Claude Desktop
Localização do arquivo de configuração:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Configuração:
{
"mcpServers": {
"overleaf": {
"command": "/path/to/overleaf-mcp/.venv/bin/python",
"args": ["-m", "overleaf_mcp.server"],
"cwd": "/path/to/overleaf-mcp",
"env": {
"OVERLEAF_CONFIG_FILE": "/path/to/overleaf-mcp/overleaf_config.json",
"OVERLEAF_TEMP_DIR": "/path/to/overleaf-mcp/overleaf_cache"
}
}
}
}
Exemplo (macOS):
{
"mcpServers": {
"overleaf": {
"command": "/Users/username/dev/overleaf-mcp/.venv/bin/python",
"args": ["-m", "overleaf_mcp.server"],
"cwd": "/Users/username/dev/overleaf-mcp",
"env": {
"OVERLEAF_CONFIG_FILE": "/Users/username/dev/overleaf-mcp/overleaf_config.json",
"OVERLEAF_TEMP_DIR": "/Users/username/dev/overleaf-mcp/overleaf_cache"
}
}
}
}
Após salvar, reinicie o Claude Desktop (Cmd+Q / Ctrl+Q e reabra).
Claude Code (CLI)
Adicione às configurações MCP do Claude Code (~/.claude/settings.json):
{
"mcpServers": {
"overleaf": {
"command": "/path/to/overleaf-mcp/.venv/bin/python",
"args": ["-m", "overleaf_mcp.server"],
"cwd": "/path/to/overleaf-mcp",
"env": {
"OVERLEAF_CONFIG_FILE": "/path/to/overleaf-mcp/overleaf_config.json",
"OVERLEAF_TEMP_DIR": "/path/to/overleaf-mcp/overleaf_cache"
}
}
}
}
Ou adicione por projeto em .claude/settings.json no diretório do seu projeto.
VS Code (com Extensão Claude)
Adicione às configurações do VS Code (settings.json):
{
"claude.mcpServers": {
"overleaf": {
"command": "/path/to/overleaf-mcp/.venv/bin/python",
"args": ["-m", "overleaf_mcp.server"],
"cwd": "/path/to/overleaf-mcp",
"env": {
"OVERLEAF_CONFIG_FILE": "/path/to/overleaf-mcp/overleaf_config.json",
"OVERLEAF_TEMP_DIR": "/path/to/overleaf-mcp/overleaf_cache"
}
}
}
}
Ou adicione às configurações do workspace (.vscode/settings.json) para configuração específica do projeto.
Exemplos de Uso
Uma vez configurado, você pode pedir ao assistente de IA:
Lendo Arquivos
"List all .tex files in my thesis"
"Read the content of main.tex"
"What sections are in chapter1.tex?"
Editando Conteúdo
"Edit main.tex and replace 'teh' with 'the'"
"Rewrite the abstract.tex file with this new content: ..."
"Update the 'Introduction' section with this new content: ..."
Criando Arquivos
"Create a new file called appendix.tex with a section for supplementary materials"
"Add a new bibliography file references.bib"
Gerenciamento de Projetos
"Show me the last 10 commits"
"What changed since yesterday?"
"Sync the project to get latest changes"
Operações Baseadas em Seções
"Get the content of the 'Methods' section"
"Update the 'Results' section with these findings: ..."
"What subsections are in chapter 2?"
Variáveis de Ambiente
| Variável | Padrão | Descrição |
|---|---|---|
OVERLEAF_CONFIG_FILE | overleaf_config.json | Caminho para o arquivo de configuração |
OVERLEAF_TEMP_DIR | ./overleaf_cache | Diretório de cache local para repositórios git |
OVERLEAF_PROJECT_ID | - | ID do projeto padrão (modo projeto único) |
OVERLEAF_GIT_TOKEN | - | Token git padrão (modo projeto único) |
OVERLEAF_GIT_AUTHOR_NAME | Overleaf MCP | Nome do autor do commit git |
OVERLEAF_GIT_AUTHOR_EMAIL | mcp@overleaf.local | Email do autor do commit git |
Como Funciona
┌─────────────────┐ MCP Protocol ┌─────────────────┐
│ AI Assistant │◄───────────────────►│ Overleaf MCP │
│ (Claude, etc.) │ │ Server │
└─────────────────┘ └────────┬────────┘
│
│ Git (HTTPS)
▼
┌─────────────────┐
│ Overleaf │
│ Git Server │
└─────────────────┘
- Clonar/Puxar: O servidor clona ou puxa o mais recente do endpoint Git do Overleaf
- Operações Locais: Operações de leitura/escrita acontecem no cache local
- Commit/Push: Alterações são commitadas e enviadas de volta ao Overleaf
- Sincronização em Tempo Real: O Overleaf reflete as alterações imediatamente no editor web
Notas de Segurança
- Tokens são sensíveis: Tokens Git fornecem acesso completo de leitura/escrita
- Nunca commite segredos:
overleaf_config.jsoné ignorado pelo git por padrão - Use variáveis de ambiente: Para CI/CD ou ambientes compartilhados
- Rotação de tokens: Regere tokens periodicamente nas configurações do Overleaf
Solução de Problemas
"Nenhum projeto configurado"
- Certifique-se de que
overleaf_config.jsonexiste e tem JSON válido - Verifique se
OVERLEAF_CONFIG_FILEaponta para o caminho correto
"Permissão negada" ou "Sistema de arquivos somente leitura"
- Defina
OVERLEAF_TEMP_DIRpara um caminho absoluto gravável - Certifique-se de que o diretório de cache existe e é gravável
"Falha na autenticação"
- Verifique se seu token git está correto
- Verifique se o token expirou (regere no Overleaf)
- Certifique-se de ter a integração Git habilitada (requer plano Overleaf pago)
"Servidor não aparece no Claude"
- Reinicie o Claude Desktop completamente (Cmd+Q / Ctrl+Q)
- Verifique se o JSON de configuração é válido (sem vírgulas finais)
- Verifique se o caminho do Python está correto (use caminho absoluto para o venv)
Contribuindo
Contribuições são bem-vindas! Por favor, abra uma issue ou envie um pull request.
Licença
Licença MIT - veja LICENSE para detalhes.
Agradecimentos
- Overleaf pela integração Git
- Model Context Protocol pela especificação MCP
- Anthropic pelo Claude e o SDK MCP