Enables creation, editing, and compilation of LaTeX documents to PDF, with support for mathematical formulas, TikZ diagrams, bibliography management, and LaTeX syntax validation.
Provides tools for creating, editing, and converting Markdown documents to PDF or LaTeX format, with support for standard formatting, tables, code blocks, and math expressions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@TeXFlowcreate a new project for my research paper"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TeXFlow MCP
A LaTeX document compiler with an MCP interface. AI agents operate on a structured document model — sections, paragraphs, figures, tables — while TeXFlow handles all LaTeX mechanics: packages, preamble, fonts, and compilation.
Install
pip install texflow-mcpOr run without installing:
uvx texflow-mcpSystem dependencies (optional)
TeXFlow compiles documents to PDF using XeLaTeX. Without it, you can still build and export .tex files.
# Arch
pacman -S texlive-xetex texlive-fontsrecommended texlive-fontsextra
# Debian/Ubuntu
apt install texlive-xetex texlive-fonts-recommended texlive-fonts-extra
# Fedora
dnf install texlive-xetex texlive-collection-fontsrecommended texlive-collection-fontsextraFor page preview (PNG), install poppler-utils (provides pdftoppm).
Configure with Claude Code
claude mcp add texflow -- uvx texflow-mcpThat's it. Restart Claude Code and the tools are available.
To set a workspace directory (where documents are saved):
claude mcp add texflow -- uvx texflow-mcp ~/Documents/TeXFlowConfigure with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"texflow": {
"command": "uvx",
"args": ["texflow-mcp"]
}
}
}How it works
TeXFlow has two entry flows, both converging on the same in-memory document model:
Scaffold —
document(action="create")builds an empty document skeleton. Add content withedit(action="insert").Markdown ingest —
document(action="ingest", source="paper.md")parses markdown into the model. Refine layout from there.
The model auto-saves to disk as JSON. LaTeX is only ever an output artifact — you never edit .tex directly.
Tools
Tool | Purpose |
| Create, ingest markdown, show outline, read sections |
| Columns, fonts, paper, margins, headers/footers, TOC |
| Insert, replace, delete, move blocks (section, paragraph, figure, table, code, equation, list, raw) |
| Compile to PDF, preview page as PNG, export |
| Search LaTeX commands, symbols, packages, error help |
| Batch multiple operations in one call |
Every response includes a workflow state hint showing where you are and what to do next.
Example session
> document(action="create", title="My Paper", document_class="article")
> queue(operations=[
{"tool": "edit", "action": "insert", "block_type": "section", "title": "Introduction", "level": 1},
{"tool": "edit", "action": "insert", "content": "This paper explores...", "section": "Introduction"},
{"tool": "edit", "action": "insert", "block_type": "section", "title": "Methods", "level": 1},
{"tool": "layout", "font": "palatino", "columns": 2}
])
> render(action="compile")Development
git clone https://github.com/aaronsb/texflow-mcp
cd texflow-mcp
uv sync
uv run pytest tests/ -v # 222 tests
uv run texflow # Start MCP serverLicense
MIT