Overleaf MCP Server
Servidor MCP de Overleaf
Un servidor MCP (Model Context Protocol) que proporciona acceso a proyectos de Overleaf mediante integración con Git. Esto permite a Claude y a otros clientes MCP leer archivos LaTeX, analizar la estructura de documentos, extraer contenido y escribir archivos desde y hacia proyectos de Overleaf.
Características
📄 Gestión de archivos: Listar, leer y escribir archivos desde y hacia proyectos de Overleaf
📋 Estructura del documento: Analizar secciones y subsecciones de LaTeX
🔍 Extracción de contenido: Extraer secciones específicas por título
📊 Resumen del proyecto: Obtener una visión general del estado y la estructura del proyecto
🏗️ Soporte para múltiples proyectos: Gestionar varios proyectos de Overleaf
Related MCP server: Github MCP Server
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 |
|
macOS |
|
Linux |
|
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 overleaf deberían aparecer en el menú 🔧.
Configuración para múltiples proyectos
El inicio rápido mediante variables de entorno solo gestiona un único proyecto. Para múltiples 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 |
|
macOS / Linux |
|
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"]
}
}
}(Elimina cmd /c en macOS / Linux.)
Haz referencia a un proyecto específico en las llamadas a herramientas 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 a la ubicación estándar, apunta OVERLEAF_PROJECTS_CONFIG=/ruta/absoluta/projects.json hacia él desde el bloque env.
Obtención de 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 → Account Settings → Git Integration → "Create Token"
Referencia de configuración
El servidor elige 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=/ruta/al/token.txt(en lugar deOVERLEAF_GIT_TOKEN). Útil cuando no quieres que el token aparezca en el JSON de Claude Desktop. El archivo se lee una vez al inicio y se eliminan los espacios en blanco o saltos de línea al final.Archivo para múltiples proyectos —
OVERLEAF_PROJECTS_CONFIG=/ruta/absoluta/projects.json.Directorio de configuración del usuario —
projects.jsonen:Windows:
%APPDATA%\overleaf-mcp\projects.jsonmacOS / Linux:
$XDG_CONFIG_HOME/overleaf-mcp/projects.json(por defecto~/.config/overleaf-mcp/projects.json)
Directorio de trabajo —
./projects.jsonDirectorio del paquete —
projects.jsonjunto al script del servidor (legado, para instalaciones basadas en clonación).
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 superposición sea visible.
Esquema de projects.json (múltiples proyectos)
{
"projects": {
"default": {
"name": "Main Paper",
"projectId": "...",
"gitToken": "olp_..."
},
"paper2": {
"name": "Second Paper",
"projectId": "...",
"gitToken": "olp_..."
}
}
}Luego especifica el proyecto en las llamadas a herramientas: 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 installLuego 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\\tu\\OverleafMCP\\overleaf-mcp-server.js".
Si prefieres usar un archivo para múltiples proyectos:
cp projects.example.json projects.json # then edit itprojects.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 encuentran a través del registro público, útil antes de publicar una versión:
npm pack
# → mjyoo2-overleaf-mcp-<version>.tgzApunta Claude Desktop al archivo tarball. Ten en cuenta el --package= explícito y el nombre del binario — npx -y <ruta-del-tarball> 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=/ruta/abs/a/...tgz", "overleaf-mcp"].
Opción 3 — Prueba de humo del protocolo MCP desde la shell
No se requiere Claude Desktop:
OVERLEAF_PROJECT_ID=... OVERLEAF_GIT_TOKEN=... node overleaf-mcp-server.jsDeberí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 los 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 al archivo (obligatorio)projectName: Identificador del proyecto (opcional)
get_sections
Obtiene todas las secciones de un archivo LaTeX.
filePath: Ruta al archivo LaTeX (obligatorio)projectName: Identificador del proyecto (opcional)
get_section_content
Obtiene el contenido de una sección específica.
filePath: Ruta al 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 al archivo (obligatorio)content: Contenido a escribir en el archivo (obligatorio)commitMessage: Mensaje de confirmación (obligatorio)projectName: Identificador del proyecto (opcional)
write_section
Escribe el contenido de una sección específica en el proyecto.
filePath: Ruta al archivo (obligatorio)sectionTitle: Título de la sección (obligatorio)newContent: Contenido de reemplazo para la sección, incluyendo el encabezado de la sección (obligatorio)commitMessage: Mensaje de confirmación (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 total de lectura/escritura a tu proyecto; trátalo como una contraseña.
Prefiere
OVERLEAF_GIT_TOKEN_FILEen lugar de incluir el token directamente en el JSON de Claude Desktop si tu archivo de configuración se respalda o sincroniza.projects.jsonestá en el.gitignorede este repositorio. Nunca confirmes IDs de proyectos reales o tokens de Git.Las rutas de archivo proporcionadas a través de las llamadas a herramientas MCP están restringidas al directorio del proyecto clonado; se rechazan los recorridos con
..y las rutas absolutas.
Licencia
Licencia MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/mjyoo2/OverleafMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server