overleaf-mcp-rt

devops-infra MCP Server

MCP server for self-hosted Overleaf Community Edition — real-time edits via Overleaf's native OT pipeline. Alternative to git-bridge for AI coding agents (Claude Code, Cursor, …).

VerifiedInstall Ready
devops-infradevops-infra
3 views0 stars0 forksv1.1.1AGPL-3.0

Why This Matters

Discovered via github-topic:model-context-protocol and last synced 3mo ago.

VerifiedInstall Ready
Source
github-topic:model-context-protocol
Stars
0
Last synced
3mo ago
Install
Instructions detected

Install

1. Install the package

npx -y overleaf-mcp-rt@latest

2. Add to claude_desktop_config.json

{
  "mcpServers": {
    "overleaf-mcp-rt": {
      "command": "npx",
      "args": [
        "overleaf-mcp-rt"
      ]
    }
  }
}

Config file location: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) / %APPDATA%\Claude\claude_desktop_config.json (Windows)

18
Tools
0
Resources
0
Prompts
Standard I/O
Transport

Available Tools (18)

Mode

Use case

OVERLEAF_GENERIC

Validation or other non-typed errors (ambiguous anchor, out-of-bounds line range, mixed-mode `edit_doc`, etc.).

INVALID_CONFIG

Missing or malformed `OVERLEAF_URL` / cookie / extra headers.

unified_diff

Apply a `diff -u`-style patch (the format LLMs emit fluently). Cannot be combined with anchor-based edits in the same call.

NOT_FOUND

No such doc/file/folder at the given path.

replace_lines

Replace a 1-indexed inclusive line range with new text.

overleaf_list_projects

List accessible projects.

OVERLEAF_AUTH_FAILED

Session cookie invalid/expired. Re-run `overleaf-mcp-rt login`.

mv

rm

Code

Meaning

PROJECT_ACCESS_DENIED

The session can't reach the requested project.

replace

Anchor-based find-and-replace. Default `occurrence: 'unique'` errors if the find-string appears 0 or >1 times; pass `'all'`, `'first'`, or an integer N to disambiguate.

PROXY_AUTH_FAILED

A reverse proxy blocked the request — set `OVERLEAF_EXTRA_HEADERS`.

OT_DELETE_MISMATCH

A `d`-string in `overleaf_edit_doc`'s `raw_ops` mode didn't match the doc at `p`. Pre-validated client-side, so you find out before the round-trip.

Tool

Purpose

OT_VERSION_DRIFT

The doc moved under us during a write retry (`retryable: true`).

raw_ops

Caller-supplied OT ops `[{p, i?, d?}]`. Each op pre-validated against the local baseline; mismatched `d`-strings throw [`OT_DELETE_MISMATCH`](#error-envelope) before any server call. Cannot be combined with anchor-based edits.

NETWORK_ERROR

Transport-level failure (`retryable: true`).