Overleaf

Accede y analiza proyectos de Overleaf y archivos LaTeX a través de la integración con Git.

Documentación

Servidor MCP de Overleaf

Un servidor MCP (Model Context Protocol) que proporciona acceso a proyectos de Overleaf mediante integración con Git. Esto permite que Claude y otros clientes MCP lean archivos LaTeX, analicen la estructura del documento, extraigan contenido y escriban archivos desde y hacia proyectos de Overleaf.

Características

  • 📄 Gestión de archivos: Lista, lee y escribe archivos desde y hacia proyectos de Overleaf
  • 📋 Estructura del documento: Analiza secciones y subsecciones de LaTeX
  • 🔍 Extracción de contenido: Extrae secciones específicas por título
  • 📊 Resumen del proyecto: Obtén una visión general del estado y la estructura del proyecto
  • 🏗️ Soporte multiproyecto: Gestiona múltiples proyectos de Overleaf

Inicio rápido (recomendado)

Sin clonar, sin npm install. Añade este bloque a tu configuración de Claude Desktop y reinicia Claude Desktop.

Ubicación del archivo de configuración

SORuta
Windows%APPDATA%\Claude\claude_desktop_config.json
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Linux~/.config/claude/claude_desktop_config.json

macOS / Linux

{
  "mcpServers": {
    "overleaf": {
      "command": "npx",
      "args": ["-y", "@mjyoo2/overleaf-mcp"],
      "env": {
        "OVERLEAF_PROJECT_ID": "YOUR_OVERLEAF_PROJECT_ID",
        "OVERLEAF_GIT_TOKEN": "YOUR_OVERLEAF_GIT_TOKEN"
      }
    }
  }
}

Windows — Claude Desktop en Windows necesita cmd /c para encontrar npx:

{
  "mcpServers": {
    "overleaf": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@mjyoo2/overleaf-mcp"],
      "env": {
        "OVERLEAF_PROJECT_ID": "YOUR_OVERLEAF_PROJECT_ID",
        "OVERLEAF_GIT_TOKEN": "YOUR_OVERLEAF_GIT_TOKEN"
      }
    }
  }
}

Reinicia Claude Desktop. Las herramientas de overleaf deberían aparecer en el menú 🔧.

Configuración multiproyecto

El inicio rápido con variables de entorno solo maneja un único proyecto. Para varios proyectos, coloca un archivo projects.json en el directorio de configuración del usuario y omite el bloque env en tu configuración de Claude Desktop.

Ubicación del archivo

SORuta
Windows%APPDATA%\overleaf-mcp\projects.json
macOS / Linux~/.config/overleaf-mcp/projects.json (o $XDG_CONFIG_HOME/overleaf-mcp/projects.json si está definido)

Contenido del archivo

{
  "projects": {
    "default": {
      "name": "Main Paper",
      "projectId": "...",
      "gitToken": "olp_..."
    },
    "thesis": {
      "name": "PhD Thesis",
      "projectId": "...",
      "gitToken": "olp_..."
    }
  }
}

Configuración de Claude Desktop — igual que el inicio rápido pero sin el bloque env:

{
  "mcpServers": {
    "overleaf": {
      "command": "cmd",
      "args": ["/c", "npx", "-y", "@mjyoo2/overleaf-mcp"]
    }
  }
}

(Coloca cmd /c en macOS / Linux.)

Haz referencia a un proyecto específico en las llamadas de herramienta con projectName:

Use read_file with filePath: "main.tex", projectName: "thesis"

Si se omite projectName, se utiliza la entrada default. Para colocar projects.json en un lugar distinto de la ubicación estándar, apunta OVERLEAF_PROJECTS_CONFIG=/absolute/path/projects.json a él desde el bloque env.

Obtener credenciales de Overleaf

  1. ID del proyecto — abre tu proyecto de Overleaf; el ID está en la URL: https://www.overleaf.com/project/[PROJECT_ID]
  2. Token de Git — Overleaf → Configuración de la cuenta → Integración con Git → "Create Token"

Referencia de configuración

El servidor selecciona la primera fuente de configuración que coincida:

  1. Variables de entorno (proyecto único) — OVERLEAF_PROJECT_ID + OVERLEAF_GIT_TOKEN. Opcional: OVERLEAF_PROJECT_NAME para el nombre mostrado.
  2. Token desde un archivo — establece OVERLEAF_PROJECT_ID junto con OVERLEAF_GIT_TOKEN_FILE=/path/to/token.txt (en lugar de OVERLEAF_GIT_TOKEN). Útil cuando no quieres el token en el JSON de Claude Desktop. El archivo se lee una vez al inicio y se recorta cualquier espacio en blanco o nueva línea final.
  3. Archivo multiproyecto — OVERLEAF_PROJECTS_CONFIG=/absolute/path/projects.json.
  4. Directorio de configuración del usuario — projects.json en:
    • Windows: %APPDATA%\overleaf-mcp\projects.json
    • macOS / Linux: $XDG_CONFIG_HOME/overleaf-mcp/projects.json (por defecto ~/.config/overleaf-mcp/projects.json)
  5. Directorio de trabajo — ./projects.json
  6. Directorio del paquete — projects.json junto al script del servidor (heredado, para instalaciones basadas en clon).

Cuando se establecen variables de entorno y también hay un archivo presente, las variables de entorno tienen prioridad y se registra un aviso en stderr para que la ocultación sea visible.

Esquema de projects.json (multiproyecto)

{
  "projects": {
    "default": {
      "name": "Main Paper",
      "projectId": "...",
      "gitToken": "olp_..."
    },
    "paper2": {
      "name": "Second Paper",
      "projectId": "...",
      "gitToken": "olp_..."
    }
  }
}

Luego especifica el proyecto en las llamadas de herramienta: projectName: "paper2".

Desarrollo local

Si quieres modificar el servidor, probar cambios antes de publicar, o usarlo sin que el paquete npm esté disponible, tienes tres opciones de instalación local.

Opción 1 — Ejecutar el script clonado directamente

git clone https://github.com/mjyoo2/OverleafMCP.git
cd OverleafMCP
npm install

Luego apunta Claude Desktop al script y pasa las credenciales mediante variables de entorno (la misma ruta de carga que usa el paquete npm):

{
  "mcpServers": {
    "overleaf": {
      "command": "node",
      "args": ["/absolute/path/to/OverleafMCP/overleaf-mcp-server.js"],
      "env": {
        "OVERLEAF_PROJECT_ID": "...",
        "OVERLEAF_GIT_TOKEN": "olp_..."
      }
    }
  }
}

En Windows, args debería usar "C:\\Users\\you\\OverleafMCP\\overleaf-mcp-server.js".

Si prefieres usar un archivo multiproyecto:

cp projects.example.json projects.json   # then edit it

projects.json junto al script es la alternativa de menor prioridad, por lo que esto sigue funcionando sin variables de entorno.

Opción 2 — Probar el artefacto npm empaquetado localmente

Valida casi la misma ruta de código que los usuarios usan a través del registro público, útil antes de publicar una versión:

npm pack
# → mjyoo2-overleaf-mcp-<version>.tgz

Apunta Claude Desktop al archivo tarball. Ten en cuenta el --package= explícito y el nombre del binario: npx -y <tarball-path> no funciona en npm 10+ (la ruta se detecta erróneamente como un ejecutable):

{
  "mcpServers": {
    "overleaf": {
      "command": "cmd",
      "args": [
        "/c", "npx", "-y",
        "--package=C:\\absolute\\path\\to\\mjyoo2-overleaf-mcp-<version>.tgz",
        "overleaf-mcp"
      ],
      "env": {
        "OVERLEAF_PROJECT_ID": "...",
        "OVERLEAF_GIT_TOKEN": "olp_..."
      }
    }
  }
}

En macOS / Linux elimina el envoltorio cmd /c: "command": "npx", "args": ["-y", "--package=/abs/path/to/...tgz", "overleaf-mcp"].

Opción 3 — Prueba rápida del protocolo MCP desde la terminal

No se requiere Claude Desktop:

OVERLEAF_PROJECT_ID=... OVERLEAF_GIT_TOKEN=... node overleaf-mcp-server.js

Deberías ver Overleaf MCP server running on stdio en stderr. El proceso permanece abierto esperando JSON-RPC en stdin; Ctrl+C para salir.

Herramientas disponibles

list_projects

Lista todos los proyectos configurados.

list_files

Lista archivos en un proyecto (por defecto: archivos .tex).

  • extension: Filtro de extensión de archivo (opcional)
  • projectName: Identificador del proyecto (opcional, por defecto "default")

read_file

Lee un archivo específico del proyecto.

  • filePath: Ruta del archivo (obligatorio)
  • projectName: Identificador del proyecto (opcional)

get_sections

Obtiene todas las secciones de un archivo LaTeX.

  • filePath: Ruta del archivo LaTeX (obligatorio)
  • projectName: Identificador del proyecto (opcional)

get_section_content

Obtiene el contenido de una sección específica.

  • filePath: Ruta del archivo LaTeX (obligatorio)
  • sectionTitle: Título de la sección (obligatorio)
  • projectName: Identificador del proyecto (opcional)

status_summary

Obtiene un resumen completo del estado del proyecto.

  • projectName: Identificador del proyecto (opcional)

write_file

Escribe el contenido completo de un archivo en el proyecto.

  • filePath: Ruta del archivo (obligatorio)
  • content: Contenido a escribir en el archivo (obligatorio)
  • commitMessage: Mensaje de commit (obligatorio)
  • projectName: Identificador del proyecto (opcional)

write_section

Escribe el contenido de una sección específica en el proyecto.

  • filePath: Ruta del archivo (obligatorio)
  • sectionTitle: Título de la sección (obligatorio)
  • newContent: Contenido de reemplazo para la sección, incluido el encabezado de la sección (obligatorio)
  • commitMessage: Mensaje de commit (obligatorio)
  • projectName: Identificador del proyecto (opcional)

Ejemplos de uso

# List all projects
Use the list_projects tool

# Get project overview
Use status_summary tool

# Read main.tex file
Use read_file with filePath: "main.tex"

# Get Introduction section
Use get_section_content with filePath: "main.tex" and sectionTitle: "Introduction"

# List all sections in a file
Use get_sections with filePath: "main.tex"

# Write the full content of a file to the project
Use write_file with filePath: "main.tex", content: "...", commitMessage: "..."

# Write the content of a specific section to the project
Use write_section with filePath: "main.tex", sectionTitle: "Introduction", newContent: "\\section{Introduction}\n...", commitMessage: "..."

Notas de seguridad

  • El token de Git de Overleaf otorga acceso completo de lectura/escritura a tu proyecto: trátalo como una contraseña.
  • Prefiere OVERLEAF_GIT_TOKEN_FILE en lugar de insertar el token en el JSON de Claude Desktop si tu archivo de configuración se respalda o se sincroniza.
  • projects.json está .gitignoredo en este repositorio. Nunca hagas commit de IDs de proyecto o tokens de Git reales.
  • Las rutas de archivo proporcionadas a través de llamadas de herramienta MCP están restringidas al directorio del proyecto clonado; se rechazan las rutas de tipo .. y las rutas absolutas.

Licencia

Licencia MIT