Quickstart¶
Two paths depending on which Claude client you're targeting:
- stdio for Claude Desktop and Claude Code (this is what most people want)
- HTTP for claude.ai web
Requirements¶
- Python 3.11 or newer
- A paid Overleaf account (Git integration is a paid feature)
- An Overleaf Git authentication token: Overleaf web UI → Account Settings → Git Integration → New token
giton yourPATHgit config user.nameandgit config user.emailset globally (the server signs commits with this identity)
Install¶
Or with uv:
Either gives you the overleaf-mcp command.
Local setup (Claude Desktop / Claude Code)¶
1. Configure a project alias¶
overleaf-mcp init
# Project alias (short nickname): my-paper
# Overleaf project ID: 5f4a... # from the project URL on overleaf.com
# Display name (optional): My Paper
Or scripted:
2. Store your Overleaf token¶
For CI / scripts, pipe via stdin:
3. Clone the project¶
4. Verify¶
doctor prints a clean pass/fail report. If everything is green you're ready to wire up Claude Desktop.
5. Wire up Claude Desktop¶
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows) and add:
Fully quit and relaunch Claude Desktop (cmd-Q on macOS, since closing the window isn't enough). In a new conversation, ask Claude something like "use overleaf list_projects" to verify.
Remote setup (claude.ai web)¶
For claude.ai web, or anything else that can't spawn local subprocesses.
1. Generate a strong bearer token¶
The server refuses to start without this, because the keychain holds your Overleaf tokens and HTTP exposure without auth would expose them to anyone who can reach the bound port. There is no "open mode" flag.
2. Run the HTTP transport¶
# Loopback only (safe for local-only access)
overleaf-mcp serve-http
# Or bind public + put TLS in front (see Deployment guides)
overleaf-mcp serve-http --host 0.0.0.0 --port 8080
3. Point claude.ai at it¶
In claude.ai's connector settings, point at https://your-host/mcp/ (trailing slash matters) and set the bearer token. claude.ai handles the rest.
For production-quality deployment (TLS via reverse proxy, systemd unit, etc.), see the Deployment recipes.