Overleaf Mcp Server

io.github.YounesBensafiav0.1.0Updated Oct 11, 2026

MCP server for managing Overleaf projects through Git synchronization.

VerifiedSTDIODesktop onlyFiles & StorageDeveloper Tools

Overview

AI-generated 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.
Before you install
The Overleaf Git token (OVERLEAF_TOKEN) is an account-wide credential; store it in a protected .env or the client environment and rotate it if exposed. write_file and edit_file overwrite content, commit, and push to Overleaf, so changes reach the real project. Project files are untrusted input and may contain instructions aimed at the model; treat them as data. Keep OVERLEAF_ALLOWED_PROJECTS limited to intended projects.

Installation

In SourceWeft

  1. Open Overleaf Mcp Server in the dashboard and add it to a workspace.
  2. 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

[PyPI version] [MCP Registry]

An MCP server for managing Overleaf projects through Git synchronization.

PyPI Package · MCP Registry

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

mermaid
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| C

Tool Workflow

mermaid
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 + metadata

Requirements

  • Python 3.13+
  • uv package 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

  1. Enable Git - open your project on Overleaf → Menu → enable Git under Integrations.
  2. Copy project ID - from the browser URL (e.g. https://www.overleaf.com/project/69a4f7cc4eaf13bd56de5b04 → 69a4f7cc4eaf13bd56de5b04).
  3. Generate a Git token - Account Settings → Git integration authentication tokens → Generate new token.
  4. Configure .env - copy .env.example to .env and fill in:
env
OVERLEAF_TOKEN=your_git_tokenPROJECT_ID=your_project_id

project_id can also be passed per tool call, but PROJECT_ID is 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:

env
OVERLEAF_ALLOWED_PROJECTS=project_id_a,project_id_b

The default allowlist contains only PROJECT_ID.

Quick Start

bash
git clone https://github.com/younesbensafia/overleaf-mcp-server.gitcd overleaf-mcp-serveruv synccp .env.example .env   # then edit with your token/project iduv run overleaf-mcp

Without a checkout, run the Git version directly with:

bash
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

ToolDescription
list_filesPull and list files from Overleaf project
read_fileRead file content
write_fileOverwrite a complete text file, commit, and push to Overleaf
edit_fileReplace one exact text match, commit, and push to Overleaf
sync_projectForce 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:

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_ID in .env.
    • Or pass project_id explicitly in tool calls.
  • Sync conflicts:
    • Run sync_project before write_file if the remote changed.
  • Server not starting:
    • Ensure dependencies are installed with uv sync.
    • Verify Python 3.13+ is available.

License

MIT - See LICENSE

Source: README.md at commit 6235b52

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v0.1.0LatestOct 11, 2026