SkillAgentSearch skills...

MagicTeX-mcp

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.

Install / Use

claude mcp add ZoeLinUTS -- npx -y github:ZoeLinUTS/MagicTeX-mcp

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

83/100

Supported Platforms

Claude Code
Claude Desktop

Our assessment of MagicTeX-mcp

MagicTeX-mcp scores 83/100 on our quality scale, 358th of 628 AI & Machine Learning skills we index.

Its MCP Server is 21 KB long, well organised into 17 sections with 10 code examples: a thorough specification that gives an agent plenty to work with.

It has 3 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
30/30
Structure
20/20
Description
15/15
Adoption
3/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated 9 days ago, so MagicTeX-mcp is actively maintained.
  • Our last check on 2026-09-10 found the source still online.
  • It is released under AGPL-3.0, a copyleft license: you can use it, but modified versions you distribute must carry the same license.
  • Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the first 100 KB of the file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.

Automated pattern scan on 2026-09-26. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

MagicTeX-mcp compared with similar skills

All 4 of these similar skills score higher than MagicTeX-mcp; compare them before choosing.

SkillScoreStarsUpdatedFormat
MagicTeX-mcp (this skill)by ZoeLinUTS8339d agoMCP Server
claude-memby thedotmack10094.7k1d agoCLAUDE.md
Agent-Reachby Panniantong10085.4k10d agoCLAUDE.md
Understand-Anythingby Egonex-AI10084.2k13d agoCLAUDE.md
headroomby headroomlabs-ai10073.8ktodayCLAUDE.md

Frequently asked questions

How do I install MagicTeX-mcp?
Run claude mcp add ZoeLinUTS -- npx -y github:ZoeLinUTS/MagicTeX-mcp. The install tabs above show the steps for each supported agent.
Which AI agents does MagicTeX-mcp work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is MagicTeX-mcp safe to use?
Our scan of the first 100 KB of the file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It is AGPL-3.0-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is MagicTeX-mcp still maintained?
The repository was last updated 9 days ago, so MagicTeX-mcp is actively maintained.

MagicTeX — LaTeX Editor for AI Agents

<!-- badges -->

npm MCP registry CI stars last commit license Sponsor

English · 简体中文 · 日本語 · 한국어 · Español · Français · Deutsch · Português

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) running inside a headless browser, so there's nothing multi-gigabyte to install — just a one-time WASM asset download.

The MagicTeX workspace: file tree, source editor, live PDF, and a reviewer comment

See it before you install

A guided walkthrough of the comment → agent loop lives at zoelin.dev/tools/magictex, built from real tool output. It's a replay, not a hosted instance — the TeX engine is a one-time ~650 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.
  • 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.
  • 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.
  • 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 and listed in the official MCP registry 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):

    {
      "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 (~650 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 a per-user cache — ~/Library/Caches/magictex on macOS, $XDG_CACHE_HOME/magictex on Linux, %LOCALAPPDATA%\magictex on Windows — so upgrading MagicTeX doesn't re-download them, and a checkout, a global install and an npx run share one copy. Set MAGICTEX_ASSETS_DIR to put them elsewhere. To pre-fetch: npx texlyre-busytex download-assets <that directory>.

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.

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 shorthand.

The plugin bundles the MCP server (npx magictex-mcp), so installing the plugin is all you need — the .mcp.json above is the alternative if you'd rather not install a plugin. The slash commands work either way.

Tools

The MCP surface, for any client that speaks MCP. (In Claude Code you can just ask in plain English, or use the slash commands above — these are the underlying tools.)

| Tool | Parameters | What it does | | ---- | ---------- | ------------ | | render_preview | mainFile? · engine? (pdflatex | xelatex | lualatex, default xelatex) · backend? (wasm | system | auto, default auto — local latexmk if installed, else the bundled WASM engine) | Compiles the project and opens/refreshes the live workspace. The main file is auto-detected by scanning for \documentclass if omitted. | | check_comments | includeResolved? (default false) | Returns the accepted comments as located work items — page, quoted passage, the source file:line, and the ask. Reviewer suggestions awaiting your decision are reported but not returned as work. | | add_comment | quote · comment · role? (reviewer | defender) · page? · accepted? | Anchors a comment onto a passage. Posts as a suggestion awaiting your Accept/Reject unless accepted is set — that flag is what makes autonomous mode autonomous. | | resolve_comment | id · note | Marks a comment done after the edit, with one line describing what changed. It turns green in the workspace for your review. | | reply_to_comment | id · text · role? (author | reviewer | defender) | Adds a threaded reply, so a disagreement can be worked out on the comment instead of in c

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars3
CategoryAI
Updated9d ago
Forks1

Languages

TypeScript

Trust signals

92/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 low