MCP LaTeX Server

Crie, edite e gerencie arquivos LaTeX. Requer uma distribuição LaTeX externa como MiKTeX, TeX Live ou MacTeX.

Documentação

Servidor MCP LaTeX

Um servidor Model Context Protocol (MCP) para criação, edição, validação e compilação de arquivos LaTeX. Construído com FastMCP e Pydantic para saída estruturada e com segurança de tipos.

Recursos

  • Criar documentos LaTeX a partir de parâmetros ou modelos incluídos (artigo, beamer, relatório)
  • Editar arquivos com operações de substituição, inserção, anexação e prefixação
  • Ler e listar arquivos .tex dentro de um diretório base seguro
  • Validar sintaxe — chaves, ambientes, referências, declarações obrigatórias
  • Compilar para PDF com pdflatex, xelatex ou lualatex
  • Recursos — navegar e recuperar modelos incluídos via URIs latex://

Pré-requisitos

  • Python 3.11.9+
  • Distribuição LaTeX (para compilação):
    • Windows: MiKTeX ou TeX Live
    • macOS: MacTeX (brew install --cask mactex)
    • Linux: sudo apt install texlive-full (Debian/Ubuntu) ou sudo dnf install texlive-scheme-full (Fedora)

Instalação

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 .

Configuração rápida (Windows)

python quick_setup.py

Isso verifica a versão do Python, instala dependências, confirma que o servidor importa corretamente e, opcionalmente, configura o Claude Desktop.

Configuração

O servidor usa uma única variável de ambiente:

VariávelDescriçãoPadrão
LATEX_SERVER_BASE_PATHDiretório raiz para todas as operações de arquivo. (diretório atual)

Todos os caminhos de arquivo passados às ferramentas são resolvidos em relação a esse diretório base. Acesso fora dele é negado.

Configuração do cliente MCP

Claude Desktop

Adicione ao seu 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)

Adicione a .vscode/mcp.json no seu workspace:

{
  "servers": {
    "latex-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-latex-server",
        "run",
        "latex_server.py"
      ],
      "env": {
        "LATEX_SERVER_BASE_PATH": "${workspaceFolder}"
      }
    }
  }
}

Ferramentas

create_latex_file

Crie um novo documento LaTeX a partir de parâmetros.

ParâmetroTipoPadrãoDescrição
file_pathstrobrigatórioCaminho para o novo arquivo .tex
document_typearticle|report|book|letter|beamer|minimalarticleClasse do documento
titlestr""Título do documento
authorstr""Autor do documento
datestr\todayData do documento
contentstr""Conteúdo do corpo
packageslist[str][]Pacotes LaTeX extras
geometrystr""Configurações de geometria (ex.: margin=1in)

create_from_template

Crie um documento a partir de um modelo incluído.

ParâmetroTipoPadrãoDescrição
file_pathstrobrigatórioCaminho para o novo arquivo .tex
templatearticle|beamer|reportarticleNome do modelo

edit_latex_file

Edite um arquivo LaTeX existente.

ParâmetroTipoPadrãoDescrição
file_pathstrobrigatórioCaminho para o arquivo
operationreplace|insert_before|insert_after|append|prependobrigatórioOperação de edição
new_textstrobrigatórioTexto a inserir ou substituir
search_textstr|nullnullTexto a localizar (obrigatório para substituir/inserir)
line_numberint|nullnullNúmero da linha baseado em 1 (alternativa a search_text)

read_latex_file

Leia e retorne o conteúdo de um arquivo .tex.

ParâmetroTipoPadrãoDescrição
file_pathstrobrigatórioCaminho para o arquivo

list_latex_files

Liste todos os arquivos .tex em um diretório.

ParâmetroTipoPadrãoDescrição
directory_pathstr.Diretório a pesquisar
recursiveboolfalsePesquisar subdiretórios

validate_latex

Verifique a sintaxe LaTeX: declarações obrigatórias, chaves balanceadas, correspondência de ambientes, referências indefinidas.

ParâmetroTipoPadrãoDescrição
file_pathstrobrigatórioCaminho para o arquivo

get_latex_structure

Extraia a estrutura do documento: classe, título, autor, pacotes e hierarquia de seções.

ParâmetroTipoPadrãoDescrição
file_pathstrobrigatórioCaminho para o arquivo

compile_latex

Compile um arquivo .tex para PDF (executa o mecanismo duas vezes para referências/sumário).

ParâmetroTipoPadrãoDescrição
file_pathstrobrigatórioCaminho para o arquivo
enginepdflatex|xelatex|lualatexpdflatexMecanismo LaTeX

Recursos

URIDescrição
latex://templatesLista os modelos incluídos disponíveis
latex://template/{name}Obtém o conteúdo de um modelo específico

Testes

Teste com o MCP Inspector:

uv run mcp dev latex_server.py

Ou execute a suíte de testes incluída:

python test_server.py

Solução de problemas

O servidor não inicia — Verifique Python 3.10+ (python --version) e se mcp está instalado (pip list | grep mcp).

A compilação falha — Garanta que uma distribuição LaTeX esteja no seu PATH (pdflatex --version). Instale MiKTeX ou TeX Live se estiver ausente.

Erros de "Acesso negado" — O caminho do arquivo solicitado resolve fora de LATEX_SERVER_BASE_PATH. Use caminhos relativos ou ajuste a variável de ambiente.

Claude não consegue conectar — Verifique novamente os caminhos de arquivo na sua configuração MCP, reinicie o Claude Desktop e confirme com uv run mcp dev latex_server.py.

Licença

MIT