Overleaf MCP server
Permite que herramientas como Copilot, Claude Desktop, Claude Code, etc., realicen operaciones CRUD en proyectos de Overleaf a través de Git.
Documentación
Overleaf MCP Server
Un servidor Model Context Protocol (MCP) que proporciona operaciones CRUD completas para proyectos LaTeX de Overleaf. Permite a los asistentes de IA leer, editar, crear y eliminar archivos en tus proyectos de Overleaf.
Características
14 Herramientas para la Gestión Completa de Proyectos
| Categoría | Herramienta | Descripción |
|---|---|---|
| Crear | create_project | Crear nuevos proyectos de Overleaf desde contenido LaTeX o archivos ZIP |
create_file | Añadir nuevos archivos a proyectos existentes | |
| Leer | list_projects | Ver todos los proyectos configurados |
list_files | Listar archivos con filtro opcional de extensión | |
read_file | Leer el contenido de archivos | |
get_sections | Analizar la estructura LaTeX (capítulos, secciones, subsecciones) | |
get_section_content | Obtener el contenido completo de una sección específica | |
list_history | Ver el historial de commits de git | |
get_diff | Comparar cambios entre versiones | |
| Actualizar | edit_file | Edición quirúrgica - reemplazar texto específico (old_string → new_string) |
rewrite_file | Reemplazar el contenido completo de un archivo | |
update_section | Actualizar una sección LaTeX específica por título | |
sync_project | Obtener los últimos cambios de Overleaf | |
| Eliminar | delete_file | Eliminar archivos de proyectos |
Capacidades Clave
- Integración con Git: Utiliza la integración de Git de Overleaf para una sincronización fiable
- Soporte Multi-Proyecto: Configura y cambia entre múltiples proyectos
- Consciente de LaTeX: Comprende la estructura del documento para operaciones basadas en secciones
- Auto-Push: Todas las operaciones de escritura se confirman y se envían a Overleaf inmediatamente
- Caché Local: Acceso rápido con caché de repositorio local
Instalación
Requisitos Previos
- Python 3.10+
- Git
- Cuenta de Overleaf con integración de Git (requiere plan de pago)
Instalar con 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 con uv (más 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 .
Configuración
Paso 1: Obtén tus Credenciales de Overleaf
-
Abre tu proyecto de Overleaf en el navegador
-
Obtén el ID del Proyecto de la URL:
https://www.overleaf.com/project/YOUR_PROJECT_ID ^^^^^^^^^^^^^^^^ -
Obtén el Token de Git:
- Haz clic en Menú (arriba a la izquierda)
- Haz clic en Git bajo "Sync"
- Haz clic en Generar token (si aún no se ha generado)
- Copia la URL:
https://git:YOUR_TOKEN@git.overleaf.com/... - Extrae el token (la parte entre
git:y@)
Paso 2: Crear Archivo de Configuración
Crea overleaf_config.json en el directorio del proyecto:
{
"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: Variables de Entorno
Para configuraciones de un solo proyecto:
export OVERLEAF_PROJECT_ID="your_project_id"
export OVERLEAF_GIT_TOKEN="your_git_token"
Configuración del Cliente
Claude Desktop
Ubicación del archivo de configuración:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Configuración:
{
"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"
}
}
}
}
Ejemplo (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"
}
}
}
}
Después de guardar, reinicia Claude Desktop (Cmd+Q / Ctrl+Q, y luego vuelve a abrirlo).
Claude Code (CLI)
Añade a la configuración MCP de 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"
}
}
}
}
O añade por proyecto en .claude/settings.json en el directorio de tu proyecto.
VS Code (con la Extensión de Claude)
Añade a la configuración de 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"
}
}
}
}
O añade a la configuración del espacio de trabajo (.vscode/settings.json) para una configuración específica del proyecto.
Ejemplos de Uso
Una vez configurado, puedes pedirle al asistente de IA:
Leer Archivos
"List all .tex files in my thesis"
"Read the content of main.tex"
"What sections are in chapter1.tex?"
Editar Contenido
"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: ..."
Crear Archivos
"Create a new file called appendix.tex with a section for supplementary materials"
"Add a new bibliography file references.bib"
Gestión de Proyectos
"Show me the last 10 commits"
"What changed since yesterday?"
"Sync the project to get latest changes"
Operaciones Basadas en Secciones
"Get the content of the 'Methods' section"
"Update the 'Results' section with these findings: ..."
"What subsections are in chapter 2?"
Variables de Entorno
| Variable | Predeterminado | Descripción |
|---|---|---|
OVERLEAF_CONFIG_FILE | overleaf_config.json | Ruta al archivo de configuración |
OVERLEAF_TEMP_DIR | ./overleaf_cache | Directorio de caché local para repositorios git |
OVERLEAF_PROJECT_ID | - | ID de proyecto predeterminado (modo de un solo proyecto) |
OVERLEAF_GIT_TOKEN | - | Token de git predeterminado (modo de un solo proyecto) |
OVERLEAF_GIT_AUTHOR_NAME | Overleaf MCP | Nombre del autor del commit de git |
OVERLEAF_GIT_AUTHOR_EMAIL | mcp@overleaf.local | Correo electrónico del autor del commit de git |
Cómo Funciona
┌─────────────────┐ MCP Protocol ┌─────────────────┐
│ AI Assistant │◄───────────────────►│ Overleaf MCP │
│ (Claude, etc.) │ │ Server │
└─────────────────┘ └────────┬────────┘
│
│ Git (HTTPS)
▼
┌─────────────────┐
│ Overleaf │
│ Git Server │
└─────────────────┘
- Clonar/Obtener: El servidor clona u obtiene lo último del endpoint de Git de Overleaf
- Operaciones Locales: Las operaciones de lectura/escritura ocurren en la caché local
- Commit/Push: Los cambios se confirman y se envían de vuelta a Overleaf
- Sincronización en Tiempo Real: Overleaf refleja los cambios inmediatamente en el editor web
Notas de Seguridad
- Los tokens son sensibles: Los tokens de Git proporcionan acceso completo de lectura/escritura
- Nunca confirmes secretos:
overleaf_config.jsonestá en gitignore por defecto - Usa variables de entorno: Para CI/CD o entornos compartidos
- Rotación de tokens: Regenera los tokens periódicamente en la configuración de Overleaf
Solución de Problemas
"No hay proyectos configurados"
- Asegúrate de que
overleaf_config.jsonexista y tenga JSON válido - Comprueba que
OVERLEAF_CONFIG_FILEapunte a la ruta correcta
"Permiso denegado" o "Sistema de archivos de solo lectura"
- Establece
OVERLEAF_TEMP_DIRa una ruta absoluta con permisos de escritura - Asegúrate de que el directorio de caché exista y tenga permisos de escritura
"Error de autenticación"
- Verifica que tu token de git sea correcto
- Comprueba si el token ha caducado (regenera en Overleaf)
- Asegúrate de tener la integración de Git habilitada (requiere plan de pago de Overleaf)
"El servidor no aparece en Claude"
- Reinicia Claude Desktop por completo (Cmd+Q / Ctrl+Q)
- Comprueba que el JSON de configuración sea válido (sin comas finales)
- Verifica que la ruta de Python sea correcta (usa la ruta absoluta al venv)
Contribuciones
¡Las contribuciones son bienvenidas! Por favor, abre un issue o envía un pull request.
Licencia
Licencia MIT - consulta LICENSE para más detalles.
Agradecimientos
- Overleaf por la integración de Git
- Model Context Protocol por la especificación de MCP
- Anthropic por Claude y el SDK de MCP