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
| SO | Ruta |
|---|---|
| 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
| SO | Ruta |
|---|---|
| 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
- ID del proyecto — abre tu proyecto de Overleaf; el ID está en la URL:
https://www.overleaf.com/project/[PROJECT_ID] - 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:
- Variables de entorno (proyecto único) —
OVERLEAF_PROJECT_ID+OVERLEAF_GIT_TOKEN. Opcional:OVERLEAF_PROJECT_NAMEpara el nombre mostrado. - Token desde un archivo — establece
OVERLEAF_PROJECT_IDjunto conOVERLEAF_GIT_TOKEN_FILE=/path/to/token.txt(en lugar deOVERLEAF_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. - Archivo multiproyecto —
OVERLEAF_PROJECTS_CONFIG=/absolute/path/projects.json. - Directorio de configuración del usuario —
projects.jsonen:- Windows:
%APPDATA%\overleaf-mcp\projects.json - macOS / Linux:
$XDG_CONFIG_HOME/overleaf-mcp/projects.json(por defecto~/.config/overleaf-mcp/projects.json)
- Windows:
- Directorio de trabajo —
./projects.json - Directorio del paquete —
projects.jsonjunto 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_FILEen lugar de insertar el token en el JSON de Claude Desktop si tu archivo de configuración se respalda o se sincroniza. projects.jsonestá.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