MCP LaTeX Server
Create, edit, and manage LaTeX files. Requires an external LaTeX distribution like MiKTeX, TeX Live, or MacTeX.
MCP LaTeX Server
A Model Context Protocol (MCP) server for LaTeX file creation, editing, validation, and compilation. Built with FastMCP and Pydantic for type-safe, structured output.
Features
- Create LaTeX documents from parameters or bundled templates (article, beamer, report)
- Edit files with replace, insert, append, and prepend operations
- Read and list
.texfiles within a secure base directory - Validate syntax — braces, environments, references, required declarations
- Compile to PDF with
pdflatex,xelatex, orlualatex - Resources — browse and retrieve bundled templates via
latex://URIs
Prerequisites
- Python 3.11.9+
- LaTeX distribution (for compilation):
Installation
Using uv (recommended)
git clone https://github.com/RobertoDure/mcp-latex-server
cd mcp-latex-server
uv pip install -e .
Using 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 .
Quick setup (Windows)
python quick_setup.py
This checks Python version, installs dependencies, verifies the server imports correctly, and optionally configures Claude Desktop.
Configuration
The server uses a single environment variable:
| Variable | Description | Default |
|---|---|---|
LATEX_SERVER_BASE_PATH | Root directory for all file operations | . (current directory) |
All file paths passed to tools are resolved relative to this base directory. Access outside it is denied.
MCP client configuration
Claude Desktop
Add to your 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)
Add to .vscode/mcp.json in your workspace:
{
"servers": {
"latex-server": {
"command": "uv",
"args": [
"--directory",
"/path/to/mcp-latex-server",
"run",
"latex_server.py"
],
"env": {
"LATEX_SERVER_BASE_PATH": "${workspaceFolder}"
}
}
}
}
Tools
create_latex_file
Create a new LaTeX document from parameters.
| Parameter | Type | Default | Description |
|---|---|---|---|
file_path | str | required | Path for the new .tex file |
document_type | article|report|book|letter|beamer|minimal | article | Document class |
title | str | "" | Document title |
author | str | "" | Document author |
date | str | \today | Document date |
content | str | "" | Body content |
packages | list[str] | [] | Extra LaTeX packages |
geometry | str | "" | Geometry settings (e.g. margin=1in) |
create_from_template
Create a document from a bundled template.
| Parameter | Type | Default | Description |
|---|---|---|---|
file_path | str | required | Path for the new .tex file |
template | article|beamer|report | article | Template name |
edit_latex_file
Edit an existing LaTeX file.
| Parameter | Type | Default | Description |
|---|---|---|---|
file_path | str | required | Path to the file |
operation | replace|insert_before|insert_after|append|prepend | required | Edit operation |
new_text | str | required | Text to insert or replace with |
search_text | str|null | null | Text to find (required for replace/insert) |
line_number | int|null | null | 1-based line number (alternative to search_text) |
read_latex_file
Read and return the contents of a .tex file.
| Parameter | Type | Default | Description |
|---|---|---|---|
file_path | str | required | Path to the file |
list_latex_files
List all .tex files in a directory.
| Parameter | Type | Default | Description |
|---|---|---|---|
directory_path | str | . | Directory to search |
recursive | bool | false | Search subdirectories |
validate_latex
Check LaTeX syntax: required declarations, balanced braces, environment matching, undefined references.
| Parameter | Type | Default | Description |
|---|---|---|---|
file_path | str | required | Path to the file |
get_latex_structure
Extract document structure: class, title, author, packages, and section hierarchy.
| Parameter | Type | Default | Description |
|---|---|---|---|
file_path | str | required | Path to the file |
compile_latex
Compile a .tex file to PDF (runs the engine twice for references/TOC).
| Parameter | Type | Default | Description |
|---|---|---|---|
file_path | str | required | Path to the file |
engine | pdflatex|xelatex|lualatex | pdflatex | LaTeX engine |
Resources
| URI | Description |
|---|---|
latex://templates | List available bundled templates |
latex://template/{name} | Get the content of a specific template |
Testing
Test with the MCP Inspector:
uv run mcp dev latex_server.py
Or run the included test suite:
python test_server.py
Troubleshooting
Server won't start — Verify Python 3.10+ (python --version) and that mcp is installed (pip list | grep mcp).
Compilation fails — Ensure a LaTeX distribution is on your PATH (pdflatex --version). Install MiKTeX or TeX Live if missing.
"Access denied" errors — The requested file path resolves outside LATEX_SERVER_BASE_PATH. Use relative paths or adjust the env variable.
Claude can't connect — Double-check file paths in your MCP config, restart Claude Desktop, and verify with uv run mcp dev latex_server.py.
License
MIT
Server Terkait
Alpha Vantage MCP Server
sponsorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
Pulsar Edit MCP Server
An experimental MCP server to control the Pulsar editor, enabling LLM assistance for software development.
Ollama MCP Server
Integrates Ollama's local LLM models with MCP-compatible applications. Requires a local Ollama installation.
HeyBeauty
Perform virtual try-ons using the HeyBeauty API.
Vibecode Cleaner Fartrun
Local code health & security scanner for vibe-coded projects. 29 MCP tools. Rust-powered, zero cloud, zero tokens.
Futarchy MCP
A server for interacting with the Futarchy protocol on the Solana blockchain.
Restk
Native macOS API client with embedded MCP server. 31+ tools for AI-assisted API development. Schema extraction ensures AI never sees real credentials or PII. Supports Claude Code, Claude Desktop, Cursor
SCAST
Analyzes source code to generate UML and flow diagrams with AI-powered explanations.
Flutter Package MCP Server
A Model Context Protocol (MCP) server for Flutter packages, designed to integrate with AI assistants like Claude.
Dart MCP Server
An MCP server that exposes Dart SDK commands for AI-powered development.
OPNSense MCP Server
Manage OPNsense firewalls using Infrastructure as Code (IaC) principles.