MagicTeX — a LaTeX editor for AI agents (Claude Code): live PDF preview, PDF comments that drive edits, Visual (WYSIWYG) mode, and git-tracked history. No local TeX install.
claude mcp add magictex-mcp -- npx -y texlyre-busytex{
"mcpServers": {
"magictex-mcp": {
"command": "npx",
"args": ["-y", "texlyre-busytex"]
}
}
}Resumen de MCP Servers
# MagicTeX — LaTeX Editor for AI Agents
<!-- badges -->
[](https://www.npmjs.com/package/magictex-mcp)
[](https://registry.modelcontextprotocol.io)
[](https://github.com/ZoeLinUTS/MagicTeX-mcp/actions/workflows/ci.yml)
[](https://github.com/ZoeLinUTS/MagicTeX-mcp/stargazers)
[](https://github.com/ZoeLinUTS/MagicTeX-mcp/commits/main)
[](LICENSE)
[](https://github.com/sponsors/ZoeLinUTS)
**English** · [简体中文](docs/i18n/README.zh-CN.md) · [日本語](docs/i18n/README.ja.md) · [한국어](docs/i18n/README.ko.md) · [Español](docs/i18n/README.es.md) · [Français](docs/i18n/README.fr.md) · [Deutsch](docs/i18n/README.de.md) · [Português](docs/i18n/README.pt.md)
**MagicTeX** is a **LaTeX editor built for AI agents** — an Overleaf-like
one-window workspace for Claude Code, served by an MCP server, with **no local TeX
install and no Overleaf account**: live PDF preview, a source editor with a Visual
(WYSIWYG) mode, change history, and **comments you anchor on the rendered PDF that
become edit instructions for the agent**. (npm package: `magictex-mcp`.)
It compiles with a WASM TeX Live 2026 engine ([texlyre-busytex](https://github.com/TeXlyre/texlyre-busytex))
running inside a headless browser, so there's nothing multi-gigabyte to install —
just a one-time WASM asset download.

## See it before you install
A guided walkthrough of the comment → agent loop lives at
**[zoelin.dev/tools/magictex](https://zoelin.dev/tools/magictex)**, built from real
tool output. It's a replay, not a hosted instance — the TeX engine is a one-time
~480 MB download and the agent half is Claude itself, so MagicTeX runs next to your
project rather than in a web page.
## The workspace
One browser window (inspired by Typst's one-surface editor and LiquidText's
anchored annotations):
```
┌──────────────────────────────────────────────────────────────┐
│ ✓ up to date · 13 pages Export .zip · Download PDF │
├────────────┬──────────────────────────────┬──────────────────┤
│ Source / │ PDF (live) │ Comments │
│ History │ select text → 💬 comment │ accepted → ask │
│ editor, │ highlights stay anchored │ Claude to │
│ timeline │ auto-reloads on every edit │ address them │
│ + diffs │ │ → resolved ✓ │
└────────────┴──────────────────────────────┴──────────────────┘
```
- **Comment → Claude loop (the point of it all).** Review the *rendered* document
like a supervisor marking up a printout: select text, attach a comment
("tighten this paragraph"). Then tell Claude to *"address my comments"* — it
pulls them via `check_comments` as **located work items** (page + quoted passage
+ the source `file:line` it anchors to + your ask), edits the source, and
resolves each card with a note. You interact with the document; Claude interacts
with the source. Run it hands-off with `/loop` — see
[`docs/AGENT-LOOP.md`](docs/AGENT-LOOP.md).
- **Editable source panel.** A CodeMirror LaTeX editor with the project's files —
save (Ctrl+S) recompiles and refreshes the PDF, Typst-style. Or keep using your
own editor: any save triggers the same live loop.
- **Live reload.** A file watcher recompiles on every save — Claude's edits, the
built-in editor's, or your external editor's.
- **Change history.** Each successful compile is auto-snapshotted to a **hidden
git ref** (`refs/latex-preview/checkpoints`) — never touching your branches,
`git log`, or working tree. The History tab shows the timeline and each
checkpoint's colorized diff beside the PDF.
- **Get to Overleaf.** **Download PDF**, **Export .zip** (clean build-inputs
bundle), and a one-click **Open in Overleaf** link for public GitHub repos;
Premium Git-bridge sync is a documented `git push`. See [`docs/USER-GUIDE.md`](docs/USER-GUIDE.md).
- **Review workflow (reviewer → gate → resolver).** A reviewer/defender agent posts
comments via `add_comment`; you **Accept/Reject** them (or flip *Auto-accept* for
copilot mode); an author loop resolves the accepted ones. Comments carry roles and
a reply thread. See [`docs/AGENT-LOOP.md`](docs/AGENT-LOOP.md).
- **Save vs. recompile, your call.** The built-in editor auto-saves every 30s without
recompiling; **Ctrl+S** / **Save** / **Recompile** rebuild the PDF on demand. (Flip
**⚡ Live** for recompile-as-you-type.) Your own editor and Claude's edits still
auto-recompile via the watcher.
- **Real projects.** Auto-detects the main file, gathers multi-file
`\input`/`\include`, `.bib`, in-repo `.cls`/`.sty`/`.bst` and figures, runs
BibTeX and reruns when needed; common missing packages are auto-injected.
- **Compile backend.** Uses your local **latexmk** when you have one — full package
fidelity, output matching Overleaf — and the bundled zero-install **WASM** TeX Live
when you don't. Force either with `backend: "system"` / `"wasm"`. Every compile
reports which one ran.
- **Document classes.** `IEEEtran` is bundled, because no venue class ships in the
WASM TeX Live and a missing class can't be worked around the way a package can.
Conference classes (NeurIPS, ICML, CVPR, ACL, AAAI …) carry no redistributable
licence, so put the `.cls` from the author kit beside your source — it's picked up
automatically.
- **MCP tools:** `render_preview` (compile + open the workspace), `check_comments` /
`resolve_comment` / `add_comment` / `reply_to_comment` (the review loop), `show_diff`
(side-by-side diff as an image — useful on image-capable clients).
- **Actionable errors.** Failed compiles return parsed `{file, line, message}`
errors so Claude can self-correct, and show in the workspace.
## Setup
MagicTeX is on npm as [`magictex-mcp`](https://www.npmjs.com/package/magictex-mcp) and
listed in the [official MCP registry](https://registry.modelcontextprotocol.io) as
**`io.github.ZoeLinUTS/magictex`** — so any client that reads the registry can find it.
There's nothing to clone and no TeX install; `npx` fetches it on first use.
1. **Add it to your paper project's `.mcp.json`** (see [`.mcp.json.example`](.mcp.json.example)):
```json
{
"mcpServers": {
"magictex": { "command": "npx", "args": ["-y", "magictex-mcp"] }
}
}
```
For local development from a clone, point it at the source instead:
`"command": "npx", "args": ["tsx", "/absolute/path/to/magictex-mcp/src/server.ts"]`
2. **Restart Claude Code** (or `/mcp` reconnect) so it picks up the server.
3. **Ask Claude to render.** e.g. *"render a preview of this paper"* → the first call
downloads the WASM TeX Live assets (~480 MB, one time), compiles, and opens the
live preview tab. Subsequent edits reload it automatically.
The WASM assets are **not** in this repo — they're fetched on first run into
`assets/`. To pre-fetch them manually: `npx texlyre-busytex download-assets assets`.
## Install as a Claude Code plugin (slash commands)
For a low-typing workflow, install MagicTeX as a plugin — one install gives you the
MCP server **and** the slash commands:
```
/plugin marketplace add ZoeLinUTS/MagicTeX-mcp
/plugin install magictex
```
Then, in your paper project, use the **workflow commands** for the common flows:
- **`/magic-latex`** — compile and open the workspace (the live preview).
- **`/ai-review [skill]`** — review the paper with a skill (default
`academic-paper-revision`; pass any skill name) and post comments for you to
Accept/Reject. Missing skills are reported with an install hint.
- **`/address-comments`** — resolve your accepted comments (loop it with
`/loop 60s /address-comments`).
- ⚡ **`/ultra-agents [skill] [depth]`** — fully autonomous: review, auto-accept, fix,
repeat, up to `depth` rounds (default 2), stopping early the moment a round finds
nothing new. No per-round approval — that's the point, and the risk. `depth > 5`
asks you to confirm before starting. Ends with a summary (what was raised, what
changed, which checkpoints to look at) — every round is still an ordinary,
revertible checkpoint. See [`docs/AGENT-LOOP.md`](docs/AGENT-LOOP.md#ultra-agents).
### One command per tool
Every MCP tool also has a slash command with the **same name**, so you can drive any
single step by typing the tool name. The rule to teach: *the tool is `X` → type
`/X`.*
| Type this | Runs tool | What it does |
| -------------- | ----------------- | ------------ |
| `/render_preview` | `render_preview` | Compile the paper and open/refresh the live preview. |
| `/check_comments` | `check_comments` | List the comments you've accepted, as edit instructions (no edits yet). |
| `/resolve_comment [id] [note]` | `resolve_comment` | Mark a comment done after the edit; it turns **green** for your review. |
| `/add_comment ["quote"] [note]` | `add_comment` | Anchor a comment onto a passage for you to Accept/Reject. |
| `/reply_to_comment [id] [text]` | `reply_to_comment` | Add a threaded reply to a comment. |
| `/show_diff [checkpoint]` | `show_diff` | Side-by-side visual diff as an image (current changes, or a checkpoint). |
| `/list_checkpoints [limit]` | `list_checkpoints` | Recent checkpoints with their sha, newest first — find one to pass into `/show_diff`. |
You never *have* to type these — plain English works too (*"render a preview"*,
*"address my comments"*). The commands are just a fast, teachable sLo que la gente pregunta sobre MagicTeX-mcp
¿Qué es ZoeLinUTS/MagicTeX-mcp?
+
ZoeLinUTS/MagicTeX-mcp es mcp servers para el ecosistema de Claude AI. MagicTeX — a LaTeX editor for AI agents (Claude Code): live PDF preview, PDF comments that drive edits, Visual (WYSIWYG) mode, and git-tracked history. No local TeX install. Tiene 2 estrellas en GitHub y se actualizó por última vez today.
¿Cómo se instala MagicTeX-mcp?
+
Puedes instalar MagicTeX-mcp clonando el repositorio (https://github.com/ZoeLinUTS/MagicTeX-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar ZoeLinUTS/MagicTeX-mcp?
+
ZoeLinUTS/MagicTeX-mcp aún no ha sido auditado por nuestro agente de seguridad. Revisa el repositorio original en GitHub antes de usarlo en producción.
¿Quién mantiene ZoeLinUTS/MagicTeX-mcp?
+
ZoeLinUTS/MagicTeX-mcp es mantenido por ZoeLinUTS. La última actividad registrada en GitHub es de today, con 4 issues abiertos.
¿Hay alternativas a MagicTeX-mcp?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega MagicTeX-mcp en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/zoelinuts-magictex-mcp)<a href="https://claudewave.com/repo/zoelinuts-magictex-mcp"><img src="https://claudewave.com/api/badge/zoelinuts-magictex-mcp" alt="Featured on ClaudeWave: ZoeLinUTS/MagicTeX-mcp" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!