Skip to main content
Glama

Servidor MCP LaTeX

Un servidor del Protocolo de Contexto de Modelo (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 reemplazar, insertar, añadir al final y añadir al principio

  • Leer y listar archivos .tex dentro de un directorio base seguro

  • Validar la sintaxis: llaves, entornos, referencias, declaraciones requeridas

  • Compilar a PDF con pdflatex, xelatex o lualatex

  • Recursos: explora y recupera plantillas incluidas mediante URIs latex://

Requisitos previos

  • Python 3.11.9+

  • Distribución de LaTeX (para la compilación):

    • Windows: MiKTeX o TeX Live

    • macOS: MacTeX (brew install --cask mactex)

    • Linux: sudo apt install texlive-full (Debian/Ubuntu) o sudo dnf install texlive-scheme-full (Fedora)

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 las importaciones del servidor sean correctas 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 de forma relativa a este directorio base. Se deniega el acceso fuera del mismo.

Configuración del cliente MCP

Claude Desktop

Añadir 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ñadir 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

Crea un nuevo documento LaTeX a partir de parámetros.

Parámetro

Tipo

Predeterminado

Descripción

file_path

str

requerido

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 (ej. margin=1in)

create_from_template

Crea un documento a partir de una plantilla incluida.

Parámetro

Tipo

Predeterminado

Descripción

file_path

str

requerido

Ruta para el nuevo archivo .tex

template

article|beamer|report

article

Nombre de la plantilla

edit_latex_file

Edita un archivo LaTeX existente.

Parámetro

Tipo

Predeterminado

Descripción

file_path

str

requerido

Ruta al archivo

operation

replace|insert_before|insert_after|append|prepend

requerido

Operación de edición

new_text

str

requerido

Texto a insertar o con el que reemplazar

search_text

str|null

null

Texto a buscar (requerido para reemplazar/insertar)

line_number

int|null

null

Número de línea (empezando por 1, alternativa a search_text)

read_latex_file

Lee y devuelve el contenido de un archivo .tex.

Parámetro

Tipo

Predeterminado

Descripción

file_path

str

requerido

Ruta al archivo

list_latex_files

Lista 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

Comprueba la sintaxis LaTeX: declaraciones requeridas, llaves equilibradas, coincidencia de entornos, referencias no definidas.

Parámetro

Tipo

Predeterminado

Descripción

file_path

str

requerido

Ruta al archivo

get_latex_structure

Extrae la estructura del documento: clase, título, autor, paquetes y jerarquía de secciones.

Parámetro

Tipo

Predeterminado

Descripción

file_path

str

requerido

Ruta al archivo

compile_latex

Compila un archivo .tex a PDF (ejecuta el motor dos veces para referencias/TOC).

Parámetro

Tipo

Predeterminado

Descripción

file_path

str

requerido

Ruta al archivo

engine

pdflatex|xelatex|lualatex

pdflatex

Motor LaTeX

Recursos

URI

Descripción

latex://templates

Lista las plantillas incluidas disponibles

latex://template/{name}

Obtiene el contenido de una plantilla específica

Pruebas

Prueba con el Inspector MCP:

uv run mcp dev latex_server.py

O ejecuta la suite de pruebas incluida:

python test_server.py

Solución de problemas

El servidor no 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 conectar — Revisa 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

-
security - not tested
F
license - not found
-
quality - not tested

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/RobertoDure/mcp-latex-server'

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