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
.texdentro de um diretório base seguro - Validar sintaxe — chaves, ambientes, referências, declarações obrigatórias
- Compilar para PDF com
pdflatex,xelatexoulualatex - Recursos — navegar e recuperar modelos incluídos via URIs
latex://
Pré-requisitos
- Python 3.11.9+
- Distribuição LaTeX (para compilação):
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ável | Descrição | Padrão |
|---|---|---|
LATEX_SERVER_BASE_PATH | Diretó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âmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
file_path | str | obrigatório | Caminho para o novo arquivo .tex |
document_type | article|report|book|letter|beamer|minimal | article | Classe do documento |
title | str | "" | Título do documento |
author | str | "" | Autor do documento |
date | str | \today | Data do documento |
content | str | "" | Conteúdo do corpo |
packages | list[str] | [] | Pacotes LaTeX extras |
geometry | str | "" | Configurações de geometria (ex.: margin=1in) |
create_from_template
Crie um documento a partir de um modelo incluído.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
file_path | str | obrigatório | Caminho para o novo arquivo .tex |
template | article|beamer|report | article | Nome do modelo |
edit_latex_file
Edite um arquivo LaTeX existente.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
file_path | str | obrigatório | Caminho para o arquivo |
operation | replace|insert_before|insert_after|append|prepend | obrigatório | Operação de edição |
new_text | str | obrigatório | Texto a inserir ou substituir |
search_text | str|null | null | Texto a localizar (obrigatório para substituir/inserir) |
line_number | int|null | null | Número da linha baseado em 1 (alternativa a search_text) |
read_latex_file
Leia e retorne o conteúdo de um arquivo .tex.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
file_path | str | obrigatório | Caminho para o arquivo |
list_latex_files
Liste todos os arquivos .tex em um diretório.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
directory_path | str | . | Diretório a pesquisar |
recursive | bool | false | Pesquisar subdiretórios |
validate_latex
Verifique a sintaxe LaTeX: declarações obrigatórias, chaves balanceadas, correspondência de ambientes, referências indefinidas.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
file_path | str | obrigatório | Caminho para o arquivo |
get_latex_structure
Extraia a estrutura do documento: classe, título, autor, pacotes e hierarquia de seções.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
file_path | str | obrigatório | Caminho para o arquivo |
compile_latex
Compile um arquivo .tex para PDF (executa o mecanismo duas vezes para referências/sumário).
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
file_path | str | obrigatório | Caminho para o arquivo |
engine | pdflatex|xelatex|lualatex | pdflatex | Mecanismo LaTeX |
Recursos
| URI | Descrição |
|---|---|
latex://templates | Lista 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