io.github.YounesBensafia/overleaf-mcp-server
io.github.YounesBensafia/overleaf-mcp-server · 62 stars · Python · MIT
MCP server MCP server for managing Overleaf projects through Git synchronization.
Install
The repo has no one-line install. Follow its README.
Published as
- PyPI
overleaf-mcp-integrationstdio
From the server's entry in the official MCP Registry.
Files
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
flowchart LR C[MCP Client\nClaude Desktop / other MCP host] -->|Tool Call| S[Overleaf MCP Server] S -->|Git Sync| O[Overleaf Git Remote] S -->|Read / Write| L[Local Repo Mirror] L -->|Commit + Push| O O -->|Pull / Fetch| L S -->|Tool Result| CLoading
Tool Workflow
sequenceDiagram participant Client as MCP Client participant Server as Overleaf MCP Server participant Local as Local Mirror participant Overleaf as Overleaf Git Client->>Server: list_files / read_file Server->>Local: Ensure local clone Server->>Overleaf: git pull Overleaf-->>Server: latest content Server-->>Client: file list / file content Client->>Server: write_file(path, content) Server->>Local: update file Server->>Local: git commit Server->>Overleaf: git push Server-->>Client: success + metadataLoading
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:
OVERLEAF_TOKEN=your_git_token PROJECT_ID=your_project_id
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:
OVERLEAF_ALLOWED_PROJECTS=project_id_a,project_id_b
The default allowlist contains only PROJECT_ID.
Quick Start
git clone https://github.com/younesbensafia/overleaf-mcp-server.git cd overleaf-mcp-server uv sync cp .env.example .env # then edit with your token/project id uv run overleaf-mcp
Without a checkout, run the Git version directly with:
uvx --from git+https://github.com/younesbensafia/overleaf-mcp-server overleaf-mcp
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
| Tool | Description |
|---|---|
list_files |
Pull and list files from Overleaf project |
read_file |
Read file content |
write_file |
Overwrite a complete text file, commit, and push to Overleaf |
edit_file |
Replace one exact text match, commit, and push to Overleaf |
sync_project |
Force a pull/sync from Overleaf |
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:
{
"mcpServers": {
"overleaf": {
"command": "uv",
"args": ["--directory", "/path/to/overleaf-mcp-server", "run", "overleaf-mcp"],
"env": {
"OVERLEAF_TOKEN": "your_git_token",
"PROJECT_ID": "your_project_id"
}
}
}
}
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
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 62
- License
- MIT
- Language
- Python
- Last push
- 2026-10-11
- Forks
- 7
- MCP Registry
- io.github.YounesBensafia/overleaf-mcp-server
- Topics
- latex, mcp, overleaf, research, overleaf-mcp
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k