Skip to main content
Glama

overleaf-claude-mcp

Conecta Claude con tu cuenta de Overleaf. Claude puede listar tus proyectos, elegir uno, leer el LaTeX y las figuras, editar archivos, compilar y traer el PDF de vuelta.

Overleaf no tiene API pública en el plan gratuito: el puente Git y la sincronización con Dropbox son funciones Premium. Así que este servidor habla los mismos endpoints HTTP y de socket internos que usa la aplicación web de Overleaf, autenticado con una sesión de navegador que creas una sola vez. Cada endpoint se extrajo del propio bundle de JavaScript de Overleaf y luego se probó contra una cuenta real. Consulta Endpoints verificados.


Tutorial

Lo que necesitas

  • Node 20 o más reciente (node -v)

  • Chrome o Edge instalado

  • Una cuenta de Overleaf, el plan gratuito es suficiente

  • Claude Code (claude --version) o Claude Desktop

Paso 1: Ejecuta la configuración

Desde esta carpeta, en Windows:

setup.cmd

En macOS o Linux:

./setup.sh

La configuración ejecuta cinco pasos e imprime cada uno:

  1. Instala las dependencias

  2. Compila a dist/

  3. Comprueba si hay una sesión de Overleaf activa. Si no la hay, se abre una ventana del navegador en la página de inicio de sesión de Overleaf

  4. Lee uno de tus proyectos reales para demostrar que la conexión funciona

  5. Ofrece registrar el servidor con Claude Code

Paso 2: Inicia sesión cuando se abra el navegador

La ventana del navegador es un Chrome real. Inicia sesión como lo harías normalmente, incluida la verificación en dos pasos. Nada escribe tu contraseña por ti y tu contraseña nunca se lee ni se almacena.

Una vez que llegues a tu lista de proyectos, la ventana se cierra sola y la configuración continúa. Las cookies de tu sesión se guardan en ~/.overleaf-claude-mcp/session.json.

Ese archivo equivale a acceso total a tu cuenta de Overleaf. Está en gitignore y se escribe con permisos 0600 en macOS y Linux. En Windows esos bits de permiso se ignoran, así que el archivo es tan privado como tu carpeta de perfil de usuario. No lo compartas y no lo subas al repositorio.

Paso 3: Deja que la configuración registre el servidor

En el paso 5 verás un aviso:

      Register this server with Claude Code now? [y/N]

Responde y. Eso ejecuta:

claude mcp add overleaf -- node C:/CoolYEAH/overleaf-claude-mcp/dist/index.js

Si lo omitiste, o usas un cliente diferente, regístralo manualmente. Para Claude Code, ejecuta el comando anterior. Para Claude Desktop, edita %APPDATA%\Claude\claude_desktop_config.json en Windows o ~/Library/Application Support/Claude/claude_desktop_config.json en macOS:

{
  "mcpServers": {
    "overleaf": {
      "command": "node",
      "args": ["C:/CoolYEAH/overleaf-claude-mcp/dist/index.js"]
    }
  }
}

Paso 4: Reinicia Claude

Los servidores MCP solo se cargan al iniciar. Cierra y vuelve a abrir Claude Code o Claude Desktop.

Confirma que se cargó:

claude mcp list

Deberías ver overleaf listado como conectado. Dentro de una sesión de Claude Code, /mcp muestra lo mismo.

Paso 5: Úsalo

Solo pregunta en lenguaje natural. Claude elige las herramientas por sí mismo.

List my Overleaf projects
Select the Efficient Reasoning project
Read sections/methodology.tex
In sections/results.tex, change "Table 1" to "Table~\ref{tab:main}"
Compile it and tell me what the LaTeX errors are
Show me figures/fig1.png
Save the compiled PDF to C:/tmp/paper.pdf

Elige un proyecto una vez y se mantiene. La selección se guarda en ~/.overleaf-claude-mcp/state.json y sobrevive a los reinicios, así que cada solicitud posterior se aplica a ese proyecto hasta que cambies. Para trabajar en un proyecto diferente en una sola solicitud sin cambiar, nómbralo: "lee main.tex de mi proyecto de tesis".


Related MCP server: claudeleaf

Cómo activarlo

No hay comando de barra ni nada que escribir. Claude lee las descripciones de las herramientas y las llama cuando tu solicitud coincide. Mencionar Overleaf, o un proyecto o archivo que ya hayas seleccionado, es suficiente.

Si Claude no usa las herramientas, las causas habituales son: no reiniciaste después de registrar, o aún no hay ningún proyecto seleccionado. Pregunta "¿qué proyecto de Overleaf está seleccionado?" para comprobarlo.

Herramientas

Herramienta

Propósito

overleaf_list_projects

Lista los proyectos, marcando el seleccionado

overleaf_select_project

Elige el proyecto activo por id o nombre

overleaf_current_project

Muestra qué proyecto está seleccionado

overleaf_list_files

Árbol completo de archivos y carpetas

overleaf_read_file

Lee un archivo de texto, con paginación startLine y endLine

overleaf_read_image

Muestra una figura en línea

overleaf_download_file

Guarda cualquier archivo, incluidos PDF, localmente

overleaf_grep

Búsqueda con expresiones regulares en todo el proyecto

overleaf_write_file

Crea o sobrescribe un archivo de texto

overleaf_edit_file

Reemplazo exacto de cadenas dentro de un archivo

overleaf_upload_file

Sube un archivo local, como una figura

overleaf_create_folder

Crea una carpeta y cualquier carpeta padre que falte

overleaf_rename

Renombra un archivo o carpeta

overleaf_move

Mueve un archivo o carpeta

overleaf_delete

Elimina una entrada, requiere confirm: true

overleaf_compile

Compilación en el servidor

overleaf_compile_log

Compila y devuelve los errores de LaTeX analizados

overleaf_download_pdf

Compila y guarda el PDF

overleaf_word_count

Recuento de palabras del documento compilado

overleaf_select_project acepta un id de proyecto o cualquier parte de un nombre de proyecto. Si el nombre coincide con más de un proyecto, lista los candidatos en lugar de adivinar. overleaf_delete se niega a ejecutarse a menos que confirm sea true, así que Claude no puede eliminar un archivo por accidente.


Solución de problemas

"No Overleaf session at ..." — aún no has iniciado sesión, o la sesión caducó. Ejecuta npm run login, o setup.cmd de nuevo.

Claude no ve las herramientas — no reiniciaste Claude después de registrar. Comprueba claude mcp list.

Una herramienta falla de repente — Overleaf puede haber cambiado un endpoint. Ejecuta npm run recon, que sondea cada endpoint en modo solo lectura y te dice exactamente qué llamada falló.

Comprueba tu configuración desde la terminal, sin Claude:

npm run read -- "Efficient Reasoning"

Imprime el árbol de archivos y todos los encabezados de sección del proyecto coincidente. Añade una ruta para volcar un solo archivo:

npm run read -- "Efficient Reasoning" sections/methodology.tex

Vuelve a ejecutar la configuración cuando quieras. Reutiliza una sesión activa y vuelve a verificar la conexión, así que también sirve como comprobación de estado.


Cómo funciona

El árbol de archivos proviene de la conexión de socket de Overleaf, porque es la única fuente que incluye los ids de entidad, y los ids son lo que necesitan las escrituras. El protocolo de inicio es GET /socket.io/1/?projectId=<id>, que es el formato de socket.io 0.9; el servidor luego envía joinProjectResponse con todo el proyecto, incluidos rootFolder, ids de documentos y hashes de archivos. El árbol se guarda en caché durante OVERLEAF_TREE_TTL_MS (15s por defecto) y se invalida después de cada escritura.

Los archivos de texto se leen por documento, así que una lectura siempre refleja el estado actual. overleaf_grep lee el archivo del proyecto en su lugar, así que una búsqueda en todo el proyecto cuesta una solicitud en lugar de una por archivo.

Las escrituras pasan por el endpoint de subida. Subir sobre un nombre existente es una actualización in situ: el id de entidad se conserva, así que el historial de Overleaf y cualquier otra persona en el documento siguen funcionando. Las carpetas padre que falten se crean primero.

Endpoints verificados

Confirmados en vivo contra una cuenta real, no asumidos:

Operación

Llamada

Notas

Lista de proyectos

GET /project

Metaetiqueta ol-prefetchedProjectsBlob

CSRF

GET /project

Metaetiqueta ol-csrfToken, reenviada como x-csrf-token

Nuevo proyecto

POST /project/new

devuelve project_id

Árbol de archivos

GET /socket.io/1/?projectId= luego websocket

joinProjectResponse

Solo rutas

GET /project/:id/entities

barato, sin ids

Leer documento

GET /project/:id/doc/:docId/download

texto plano

Leer binario

GET /project/:id/blob/:hash

el hash viene del árbol

Archivo

GET /project/:id/download/zip

usado para grep

Crear o sobrescribir

POST /project/:id/upload?folder_id=

multipart, campo qqfile

Crear doc o carpeta

POST /project/:id/doc, POST /project/:id/folder

cuerpo {name, parent_folder_id}

Renombrar

POST /project/:id/:type/:entityId/rename

204

Mover

POST /project/:id/:type/:entityId/move

204, cuerpo {folder_id}

Eliminar

DELETE /project/:id/:type/:entityId

204

Compilar

POST /project/:id/compile

devuelve outputFiles y clsiServerId

Recuento de palabras

GET /project/:id/wordcount

:type es doc, file o folder.

Scripts

Comando

Qué hace

setup.cmd / ./setup.sh

Configuración completa desde cero

npm run setup

Igual, asumiendo que las dependencias están instaladas

npm run login

Solo reautenticación

npm run read -- "<project>"

Inspecciona un proyecto desde la terminal

npm run recon

Sondeo de solo lectura de cada endpoint

npm run smoke

Prueba de escritura de extremo a extremo en un proyecto desechable

npm run build

Compila a dist/

npm run smoke crea un proyecto llamado claude-mcp-smoketest y luego ejercita escritura, sobrescritura, subida de imágenes, renombrado, movimiento, eliminación y compilación. Deja el proyecto en tu cuenta para que puedas inspeccionarlo. Elimínalo cuando termines.

Configuración

Todo es opcional. Copia .env.example a .env en esta carpeta y se cargará al iniciar.

Variable

Por defecto

Significado

OVERLEAF_BASE_URL

https://www.overleaf.com

Apunta a una instancia autoalojada

OVERLEAF_HOME_DIR

~/.overleaf-claude-mcp

Dónde viven la sesión y la selección

OVERLEAF_SESSION_FILE

$OVERLEAF_HOME_DIR/session.json

OVERLEAF_MAX_READ_CHARS

60000

Punto de truncamiento para overleaf_read_file

OVERLEAF_TREE_TTL_MS

15000

Vida útil de la caché del árbol de archivos

OVERLEAF_SOCKET_TIMEOUT_MS

20000

OVERLEAF_LOGIN_TIMEOUT_MS

600000

Cuánto tiempo espera la ventana de inicio de sesión

Limitaciones

Nada de esto es una API compatible, y Overleaf puede cambiarla en cualquier momento. Úsalo con tu propia cuenta. La edición colaborativa en tiempo real no está implementada: las escrituras reemplazan un documento completo en lugar de enviar operaciones a nivel de carácter, así que evita escribir en un archivo mientras otra persona está escribiendo en él.

Install Server
F
license - not found
B
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Edit your Overleaf LaTeX projects from Claude and ChatGPT; every change is a real Git commit.

  • Read, edit, publish, and preview your pepita websites from Claude.

  • Connect Claude to Fathom meeting recordings, transcripts, and summaries

View all MCP Connectors

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/MarvelCollin/overleaf-claude-mcp'

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