
Overleaf Mcp Server
io.github.YounesBensafiav0.1.0Updated Oct 11, 2026
MCP server for managing Overleaf projects through Git synchronization.
Overview
Lets an assistant list, read, write, and edit files in an Overleaf LaTeX project through Git synchronization.
- What it does
- Connects an MCP client to an Overleaf project over Git, keeping a local mirror of the project. Tools include list_files, read_file (with optional offset and limit for large documents), write_file, edit_file, and sync_project. Writes are committed locally and pushed back to Overleaf, so edits made by the assistant appear in the project.
- When to use it
- Useful when you want an assistant to read or revise LaTeX sources in an Overleaf project without manual copy-paste, for example drafting sections, fixing text, or reviewing a paper. It fits workflows where the project is Git-enabled and you are comfortable with the assistant committing and pushing changes.
- Requirements
- Runs locally over stdio; needs Python 3.13+ and the uv package manager. Requires an Overleaf plan with Git integration, the project ID, and a Git integration token supplied as OVERLEAF_TOKEN and PROJECT_ID (project_id can also be passed per call). Network access to Overleaf's Git remote is required.
Installation
In SourceWeft
- Open Overleaf Mcp Server in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Overleaf MCP Server
An MCP server for managing Overleaf projects through Git synchronization.
What This Server Does
- Connects MCP-compatible clients to your Overleaf project through Git sync.
- Exposes file-level tools to list, read, write, and sync project content.
- Keeps workflow simple: pull latest files, edit, then push back to Overleaf.
Architecture
Tool Workflow
Requirements
- Python 3.13+
uvpackage manager- An Overleaf plan with Git integration (individual, group, or institution license). Check if your institution provides free access at Overleaf for Institutions - use your institutional email. If your institution is not listed, upgrade your plan.
Git Setup
- Enable Git - open your project on Overleaf → Menu → enable Git under Integrations.
- Copy project ID - from the browser URL (e.g.
https://www.overleaf.com/project/69a4f7cc4eaf13bd56de5b04→69a4f7cc4eaf13bd56de5b04). - Generate a Git token - Account Settings → Git integration authentication tokens → Generate new token.
- Configure
.env- copy.env.exampleto.envand fill in:
project_idcan also be passed per tool call, butPROJECT_IDis still required by the server configuration.
The Overleaf Git token is account-wide credential material. Store it only in
the MCP client's environment or a protected .env file, and rotate it if it
is exposed.
Safety Notes
Files in an Overleaf project are untrusted input. A .tex file or project
configuration can contain instructions aimed at the model; treat file contents
as data, not as commands. Keep OVERLEAF_ALLOWED_PROJECTS restricted to the
projects the server should be able to access:
The default allowlist contains only PROJECT_ID.
Quick Start
Without a checkout, run the Git version directly with:
Plain uvx overleaf-mcp is appropriate only after the project is published to
PyPI.
The server listens on stdio - connect your MCP client (Claude Desktop, etc.) to it.
For a large project, call sync_project first. The initial Git clone can take
longer than an MCP client's individual tool request timeout.
Available Tools
read_file accepts optional zero-based offset and bounded limit line
parameters for reading large documents in chunks.
Claude Desktop Setup
Add to ~/.config/Claude/claude_desktop_config.json:
Troubleshooting
- 403 Forbidden on git operations:
- Your plan doesn't include Git integration - follow the Git Setup section.
- Or the Git token is wrong - regenerate it at Account Settings → Git integration authentication tokens.
- Wrong project content:
- Set the correct
PROJECT_IDin.env. - Or pass
project_idexplicitly in tool calls.
- Set the correct
- Sync conflicts:
- Run
sync_projectbeforewrite_fileif the remote changed.
- Run
- Server not starting:
- Ensure dependencies are installed with
uv sync. - Verify Python 3.13+ is available.
- Ensure dependencies are installed with
License
MIT - See LICENSE
Source: README.md at commit 6235b52
Tools
0Version history
1- v0.1.0LatestOct 11, 2026


