Skip to main content
Glama
rohangawhade

overleaf-resume

by rohangawhade

Overleaf Resume

Edita y compila tu(s) currículum(s) localmente en lugar de en el sitio web de Overleaf, con un servidor MCP que sincroniza los archivos fuente con Overleaf cuando sea necesario. Funciona con cualquier número de proyectos de Overleaf en paralelo: cada herramienta de sincronización toma un project_id explícito, por lo que nada está vinculado a un único proyecto "el".

Diseñado para cuentas gratuitas de Overleaf (sin acceso a Git/API). Si tu cuenta tiene integración con Git (plan de pago), simplemente haz git clone de tu proyecto — no necesitas esto.

Cómo funciona

  • Edición diaria: una vez que un proyecto se ha descargado (ver más abajo), edita su archivo .tex directamente en projects/<name>/, y luego compila localmente con Tectonic — no se necesita ir y volver a Overleaf:

tools/tectonic.exe projects/<name>/<main file>.tex

Esto produce un PDF justo al lado. (tools/tectonic.exe es un binario independiente ya configurado en este repositorio — ignorado por git porque es un binario grande descargado, no código fuente).

  • Sincronización con Overleaf: dado que esta es una cuenta gratuita de Overleaf (sin acceso a Git/API), un servidor MCP (overleaf_mcp/) controla una sesión real de Chromium con sesión iniciada mediante Playwright para descargar el código fuente de un proyecto y enviar las ediciones de vuelta a su editor en línea — las mismas acciones que harías manualmente en el navegador.

Related MCP server: LaTeX Resume MCP

Estructura del proyecto

Cada proyecto de Overleaf que descargues se coloca en su propia subcarpeta, de modo que varios currículums pueden coexistir sin colisiones:

projects/
  <your-project-name>/
    resume.tex (or whatever the project's main file is named)
    ...other pulled files (.cls, .sty, images)
    .backups/            # timestamped backups made before each re-pull
  <another-project-name>/
    ...

projects/ está en .gitignore — contiene el contenido real de tu currículum (descargado de Overleaf), por lo que permanece local y nunca se sube al repositorio.

Configuración inicial

Los pasos 1-2 ya están hechos en este repositorio (.venv/ tiene las dependencias instaladas y el navegador Chromium de Playwright descargado; tools/tectonic.exe está listo para usar). Se enumeran aquí por si necesitas repetirlos en otra máquina o después de una clonación limpia.

  1. Crea un entorno virtual e instala las dependencias:

python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
playwright install chromium
  1. Obtén Tectonic: winget/choco pueden requerir derechos de administrador que no siempre están disponibles. La opción fiable sin administrador es descargar el binario de Windows directamente y colocarlo en tools/:

gh release download tectonic@0.17.0 --repo tectonic-typesetting/tectonic \
  --pattern "tectonic-0.17.0-x86_64-pc-windows-msvc.zip" --dir tools
# then unzip it so tools/tectonic.exe exists

Verifica con tools/tectonic.exe --version.

  1. Inicia sesión en Overleaf una vez para que el servidor MCP pueda reutilizar la sesión:

.venv/Scripts/python.exe scripts/overleaf_login.py

Se abre una ventana del navegador con la página de inicio de sesión de Overleaf. Inicia sesión con correo electrónico + contraseña, no con "Iniciar sesión con Google" — Google bloquea su formulario de inicio de sesión dentro de cualquier navegador automatizado, por lo que las cuentas solo de Google necesitan una contraseña configurada en Overleaf primero (Configuración de la cuenta). La sesión se guarda en .auth/storage_state.json (ignorado por git — nunca lo subas ni lo compartas). Vuelve a ejecutar este script cada vez que overleaf_login_status indique que la sesión ha caducado.

  1. El .mcp.json de este repositorio registra el servidor con Claude Code automáticamente. Reinicia Claude Code (o ejecuta /mcp) para que detecte el servidor overleaf-resume.

  2. Llama a overleaf_list_projects para ver todos tus proyectos de Overleaf y sus ids, luego overleaf_pull(project_id) para el/los que quieras trabajar. Los archivos se colocan en projects/<name>/.

Herramientas MCP

  • overleaf_login_status — comprueba si la sesión guardada sigue siendo válida.

  • overleaf_list_projects — lista todos los proyectos de Overleaf (nombre + id).

  • overleaf_pull(project_id, local_dir?) — descarga el código fuente de ese proyecto en projects/<name>/ (o en local_dir si se indica), haciendo una copia de seguridad de cualquier archivo .tex/.cls/.sty/.bib existente en .backups/ primero.

  • overleaf_push(project_id, file_path) — envía el contenido actual de un archivo local de vuelta al editor en línea de ese proyecto de Overleaf. file_path es relativo a la raíz de este repositorio, por ejemplo projects/<tu-nombre-de-proyecto>/resume.tex.

project_id siempre es obligatorio — no hay un único proyecto predeterminado, por lo que esto funciona igual si tienes un currículum o varios. Usa overleaf_list_projects siempre que necesites buscar uno.

Solución de problemas de compilaciones locales

Overleaf compila con pdfLaTeX por defecto; Tectonic usa un motor basado en XeTeX. Dos problemas que esto sacó a la luz en las plantillas populares estilo "Jake's Resume", por si también te encuentras con ellos:

  • \pdfglyphtounicode / \input{glyphtounicode} / \pdfgentounicode=1 son primitivas solo de pdfTeX. Protégelas para que ambos motores funcionen:

\usepackage{iftex}
\ifPDFTeX
  \input{glyphtounicode}
\fi
...
\ifPDFTeX
  \pdfgentounicode=1
\fi
  • Los pares \begin{itemize}...\end{itemize} de enumitem (a través de las macros \resumeSubHeadingListStart/End de esta plantilla) deben mantenerse equilibrados incluso en secciones comentadas — un \end{itemize} suelto y sin emparejar que quede después de comentar un bloque produce un críptico Undefined control sequence en lo profundo de los internals de enumitem (\enit@enditemize). Esto no es una diferencia entre Tectonic y Overleaf — fallará también en el compilador propio de Overleaf si miras el contador de errores.

Advertencias

  • Esto automatiza la interfaz web real de Overleaf con tu propia sesión iniciada — no hay API pública para proyectos de plan gratuito. Puede romperse si Overleaf cambia su interfaz, y la sesión guardada caducará ocasionalmente (vuelve a ejecutar scripts/overleaf_login.py).

  • La primera compilación de tectonic necesita acceso a la red para descargar paquetes de LaTeX; las compilaciones posteriores se almacenan en caché y funcionan sin conexión.

  • .auth/storage_state.json contiene cookies de sesión activas — mantenlo fuera del control de versiones.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rohangawhade/overleaf-resume'

If you have feedback or need assistance with the MCP directory API, please join our Discord server