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íaHerramientaDescripción
Crearcreate_projectCrear nuevos proyectos de Overleaf desde contenido LaTeX o archivos ZIP
create_fileAñadir nuevos archivos a proyectos existentes
Leerlist_projectsVer todos los proyectos configurados
list_filesListar archivos con filtro opcional de extensión
read_fileLeer el contenido de archivos
get_sectionsAnalizar la estructura LaTeX (capítulos, secciones, subsecciones)
get_section_contentObtener el contenido completo de una sección específica
list_historyVer el historial de commits de git
get_diffComparar cambios entre versiones
Actualizaredit_fileEdición quirúrgica - reemplazar texto específico (old_string → new_string)
rewrite_fileReemplazar el contenido completo de un archivo
update_sectionActualizar una sección LaTeX específica por título
sync_projectObtener los últimos cambios de Overleaf
Eliminardelete_fileEliminar 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

  1. Abre tu proyecto de Overleaf en el navegador

  2. Obtén el ID del Proyecto de la URL:

    https://www.overleaf.com/project/YOUR_PROJECT_ID
                                     ^^^^^^^^^^^^^^^^
    
  3. 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

VariablePredeterminadoDescripción
OVERLEAF_CONFIG_FILEoverleaf_config.jsonRuta al archivo de configuración
OVERLEAF_TEMP_DIR./overleaf_cacheDirectorio 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_NAMEOverleaf MCPNombre del autor del commit de git
OVERLEAF_GIT_AUTHOR_EMAILmcp@overleaf.localCorreo 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    │
                                         └─────────────────┘
  1. Clonar/Obtener: El servidor clona u obtiene lo último del endpoint de Git de Overleaf
  2. Operaciones Locales: Las operaciones de lectura/escritura ocurren en la caché local
  3. Commit/Push: Los cambios se confirman y se envían de vuelta a Overleaf
  4. 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.json está 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.json exista y tenga JSON válido
  • Comprueba que OVERLEAF_CONFIG_FILE apunte a la ruta correcta

"Permiso denegado" o "Sistema de archivos de solo lectura"

  • Establece OVERLEAF_TEMP_DIR a 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