An MCP (Model Context Protocol) server that can supercharge your VSCode + LaTex Workshop writing workflow Currently houses MCP tools, and new tools can be easily added in either Python and TypeScript. The Python process is the MCP server; selected tools are delegated to a small Node/TypeScript module via a bridge. - Read your cited papers, verify / add onto your claims - Access your python scripts
Add this skill
npx mdskills install Yeok-c/latex-mcp-serverComprehensive LaTeX workflow automation with citation management, PDF parsing, and compilation tools
An MCP (Model Context Protocol) server that can supercharge your VSCode + LaTex Workshop writing workflow
Currently houses MCP tools, and new tools can be easily added in either Python and TypeScript. The Python process is the MCP server; selected tools are delegated to a small Node/TypeScript module via a bridge.
Read your cited papers, verify / add onto your claims
Access your python scripts to generate new figures / latex tables based on your experiment data, and place them into latex autonomously
Can verify every step and ensure your pdf compiles
Functionally it can autonomously take your outline + experimental results and turn it into a paper (may looks like slop though)
Your browser does not support the video tag.
list_tex_files
Lists all .tex files under your LaTeX workspace (relative paths). Useful for LLMs or agents to discover available chapters and sections.
read_file
Reads a text or binary-safe slice of a file given a relative path inside the workspace. Supports specifying a maximum number of bytes to return.
extract_bibliography
Parses a BibTeX file and returns structured entry metadata, including download URLs (DOI, arXiv). Helps agents or scripts work with citation data programmatically.
download_bibliography
Downloads PDFs for bibliography entries listed in resources/cited_papers/index.json. Can force re-downloads and limit the number of new downloads.
compile_latex
Runs LaTeX compilation (pdflatex/xelatex via latexmk) on the main document and returns success plus a log snippet. Supports specifying the entry .tex file and number of passes.
read_pdf
Extracts text and metadata from a PDF filepath using pypdf, with page and character limits. Stores a JSON artifact for downstream use.
read_pdf_from_citation
Resolves a citation key via resources/cited_papers/index.json to its PDF and extracts text (auto-downloads if needed). Returns extracted text, metadata, and the citation key.
summarize_text
Produces a concise natural language summary of provided LaTeX or text content. Accepts a maximum sentence count for the summary.
suggest_bib_key
Suggests a stable BibTeX key based on authors, year, and title metadata. Useful for generating consistent citation keys.
uv)From the repository root:
cd latex-mcp-server
uv tool install -e .
or
uv tool install -e ./latex-mcp-server
This will make the console script latex-mcp-server available on your PATH.
If you prefer a one-off run without installing as a tool:
uv run latex-mcp-server
Add to your mcp.json (VS Code / Claude Desktop user settings):
"latex-mcp-server": {
"command": "uv",
"args": ["tool", "run", "latex-mcp-server", "--workspace", "ABSOLUTE_PATH_TO_YOUR_PROJECT_ROOT"]
}
If you omit --workspace, the server will infer the current working directory.
On Windows (PowerShell / Bash), if your paper_1 root is at C:\Users\User\projects\paper_1, use:
"latex-mcp-server": {
"command": "uv",
"args": [
"tool", "run", "latex-mcp-server",
"--workspace", "C:/Users/User/projects/paper_1"
]
}
Forward slashes are fine; they avoid the need to escape backslashes. Be sure to replace the placeholder ABSOLUTE_PATH_TO_YOUR_PAPER_1_ROOT — leaving a placeholder like WORKSPACE_FOLDER_PATH will cause the runtime error:
Workspace does not exist: C:\Users\User\WORKSPACE_FOLDER_PATH\PAPER_1
After running:
cd latex-mcp-server
uv tool install -e .
You can simplify the config to:
"latex-mcp-server": {
"command": "latex-mcp-server",
"args": ["--workspace", "C:/Users/User/projects/paper_1"]
}
| Symptom | Cause | Fix |
|---|---|---|
No solution found when resolving tool dependencies | The tool name latex-mcp-server isn’t published on PyPI and uv tried to resolve it as a dependency (often happens if you used a config field like requires or didn’t install locally) | Run uv tool install -e ./latex-mcp-server from repo root, then update your mcp.json to invoke the installed script directly |
Workspace does not exist: C:\\Users\\...WORKSPACE_FOLDER_PATH... | Placeholder path left unchanged | Replace with the real absolute path |
TypeScript runtime unavailable in tool results | Node.js not installed (only needed for TS bridge tools) | Install Node.js 18+ or ignore if you don’t need TS tools |
If you change TypeScript sources, rebuild and re-vendor (npm run build) before restarting the server.
The TypeScript sources live in ts_functions/src. Their compiled JavaScript output is vendored into the Python package under latex_mcp_server/ts_dist so users do not need npm or tsc just to run the server. To modify or add TS functions:
cd latex-mcp-server/ts_functions
npm install
npm run build
Then copy (or allow the provided helper script to sync) the dist/ contents into latex_mcp_server/ts_dist/.
Add functions in latex_mcp_server/functions/latex_ops.py (or new modules) and register them in server.py inside register_python_tools.
When a user asks about a paper (e.g. “Explain how \cite{smith2023model} differs from …”), the agent should:
read_pdf_from_citation for each key (fetches / downloads PDF and extracts text snippet + metadata).summarize_text for a concise summary).truncated flag) and avoid over-claiming beyond available pages/characters.The read_pdf_from_citation tool returns the same schema as read_pdf plus citation_key so multi-citation responses can attribute snippets correctly.
index.json (Chosen Method: VS Code Tasks)This project is configured to refresh resources/cited_papers/index.json before each LaTeX build using VS Code tasks (method #3 from the suggested approaches).
Added file: .vscode/tasks.json with three tasks:
update-index: Runs a short Python one-liner invoking extract_bibliography on src/references.bib.latex-build: Invokes latexmk -pdf on main.tex.build+index: Sequentially runs update-index then latex-build.build+index (recommend marking it as the default build task when prompted).If LaTeX Workshop cannot import the package (ModuleNotFoundError), a helper script latex-mcp-server/update_index.py is provided. The workspace settings have been updated to call:
python latex-mcp-server/update_index.py
so that a local editable install is not strictly required.
When prompted by VS Code after first run, accept setting build+index as the default. You can also add to your workspace settings:
// .vscode/settings.json (optional)
{
"latex-workshop.latex.recipe.default": "build+index"
}
If you later need an alternative (e.g., Makefile or on-demand freshness check), you can still layer it on; the tasks approach is non-invasive.
ts_functions/src/functions/ exporting a function.ts_functions/src/index.ts.server.py using bridge.register_ts_tool.This server follows the MCP JSON-RPC message patterns. If the mcp Python package updates its APIs, adjust imports accordingly.
MIT
Install via CLI
npx mdskills install Yeok-c/latex-mcp-serverLaTeX MCP Server is a free, open-source AI agent skill. An MCP (Model Context Protocol) server that can supercharge your VSCode + LaTex Workshop writing workflow Currently houses MCP tools, and new tools can be easily added in either Python and TypeScript. The Python process is the MCP server; selected tools are delegated to a small Node/TypeScript module via a bridge. - Read your cited papers, verify / add onto your claims - Access your python scripts
Install LaTeX MCP Server with a single command:
npx mdskills install Yeok-c/latex-mcp-serverThis downloads the skill files into your project and your AI agent picks them up automatically.
LaTeX MCP Server works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Gemini Cli, Amp, Roo Code, Goose. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.