MCP LaTeX Server
Crear, editar y gestionar archivos LaTeX. Requiere una distribución externa de LaTeX como MiKTeX, TeX Live o MacTeX.
Documentación
MCP LaTeX Server
Un servidor del Model Context Protocol (MCP) para la creación, edición, validación y compilación de archivos LaTeX. Construido con FastMCP y Pydantic para una salida estructurada y con seguridad de tipos.
Características
- Crear documentos LaTeX a partir de parámetros o plantillas incluidas (article, beamer, report)
- Editar archivos con operaciones de reemplazo, inserción, anexado y anteposición
- Leer y listar archivos
.texdentro de un directorio base seguro - Validar sintaxis: llaves, entornos, referencias, declaraciones requeridas
- Compilar a PDF con
pdflatex,xelatexolualatex - Recursos — explorar y recuperar plantillas incluidas mediante URIs
latex://
Requisitos previos
- Python 3.11.9+
- Distribución de LaTeX (para compilación):
Instalación
Usando uv (recomendado)
git clone https://github.com/RobertoDure/mcp-latex-server
cd mcp-latex-server
uv pip install -e .
Usando pip
git clone <repository-url>
cd mcp-latex-server
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate
pip install -e .
Configuración rápida (Windows)
python quick_setup.py
Esto verifica la versión de Python, instala las dependencias, comprueba que el servidor se importa correctamente y, opcionalmente, configura Claude Desktop.
Configuración
El servidor utiliza una única variable de entorno:
| Variable | Descripción | Predeterminado |
|---|---|---|
LATEX_SERVER_BASE_PATH | Directorio raíz para todas las operaciones de archivo | . (directorio actual) |
Todas las rutas de archivo pasadas a las herramientas se resuelven en relación con este directorio base. Se deniega el acceso fuera de él.
Configuración del cliente MCP
Claude Desktop
Añade a tu claude_desktop_config.json:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"latex-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-latex-server",
"run",
"latex_server.py"
],
"env": {
"LATEX_SERVER_BASE_PATH": "/path/to/your/latex/files"
}
}
}
}
VS Code (GitHub Copilot)
Añade a .vscode/mcp.json en tu espacio de trabajo:
{
"servers": {
"latex-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-latex-server",
"run",
"latex_server.py"
],
"env": {
"LATEX_SERVER_BASE_PATH": "${workspaceFolder}"
}
}
}
}
Herramientas
create_latex_file
Crear un nuevo documento LaTeX a partir de parámetros.
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
file_path | str | obligatorio | Ruta para el nuevo archivo .tex |
document_type | article|report|book|letter|beamer|minimal | article | Clase de documento |
title | str | "" | Título del documento |
author | str | "" | Autor del documento |
date | str | \today | Fecha del documento |
content | str | "" | Contenido del cuerpo |
packages | list[str] | [] | Paquetes LaTeX adicionales |
geometry | str | "" | Configuración de geometría (p. ej. margin=1in) |
create_from_template
Crear un documento a partir de una plantilla incluida.
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
file_path | str | obligatorio | Ruta para el nuevo archivo .tex |
template | article|beamer|report | article | Nombre de la plantilla |
edit_latex_file
Editar un archivo LaTeX existente.
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
file_path | str | obligatorio | Ruta al archivo |
operation | replace|insert_before|insert_after|append|prepend | obligatorio | Operación de edición |
new_text | str | obligatorio | Texto a insertar o con el que reemplazar |
search_text | str|null | null | Texto a buscar (obligatorio para reemplazar/insertar) |
line_number | int|null | null | Número de línea basado en 1 (alternativa a search_text) |
read_latex_file
Leer y devolver el contenido de un archivo .tex.
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
file_path | str | obligatorio | Ruta al archivo |
list_latex_files
Listar todos los archivos .tex en un directorio.
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
directory_path | str | . | Directorio a buscar |
recursive | bool | false | Buscar en subdirectorios |
validate_latex
Verificar la sintaxis de LaTeX: declaraciones requeridas, llaves balanceadas, coincidencia de entornos, referencias no definidas.
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
file_path | str | obligatorio | Ruta al archivo |
get_latex_structure
Extraer la estructura del documento: clase, título, autor, paquetes y jerarquía de secciones.
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
file_path | str | obligatorio | Ruta al archivo |
compile_latex
Compilar un archivo .tex a PDF (ejecuta el motor dos veces para referencias/índice).
| Parámetro | Tipo | Predeterminado | Descripción |
|---|---|---|---|
file_path | str | obligatorio | Ruta al archivo |
engine | pdflatex|xelatex|lualatex | pdflatex | Motor de LaTeX |
Recursos
| URI | Descripción |
|---|---|
latex://templates | Listar plantillas incluidas disponibles |
latex://template/{name} | Obtener el contenido de una plantilla específica |
Pruebas
Prueba con el MCP Inspector:
uv run mcp dev latex_server.py
O ejecuta el conjunto de pruebas incluido:
python test_server.py
Solución de problemas
El servidor no se inicia — Verifica Python 3.10+ (python --version) y que mcp esté instalado (pip list | grep mcp).
La compilación falla — Asegúrate de que una distribución de LaTeX esté en tu PATH (pdflatex --version). Instala MiKTeX o TeX Live si falta.
Errores de «Acceso denegado» — La ruta de archivo solicitada se resuelve fuera de LATEX_SERVER_BASE_PATH. Usa rutas relativas o ajusta la variable de entorno.
Claude no puede conectarse — Vuelve a verificar las rutas de archivo en tu configuración de MCP, reinicia Claude Desktop y verifica con uv run mcp dev latex_server.py.
Licencia
MIT