overleaf-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OL_CSRF | No | Force a specific CSRF token. Only needed if your server doesn't ship the ol-csrfToken meta tag. | |
| OL_BROWSER | No | Path to a Chromium-family browser if auto-detection fails (Chrome / Brave / Edge / Arc / Chromium). | |
| OL_BASE_URL | No | Override for self-hosted Overleaf. | https://www.overleaf.com |
| OL_INSECURE | No | Set to '1' to pass --ignore-certificate-errors to the captured Chrome instance — for self-hosted CE with a self-signed cert. | |
| OL_MCP_LOG_LEVEL | No | debug, info, warn, error. Goes to stderr; stdout is reserved for MCP JSON-RPC. | info |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Health check. Returns 'pong' and the server version. Does not contact Overleaf. |
| list_projectsA | Lists projects on the configured Overleaf account, sorted by most recently updated. Returns each project's id, name, last update time, and owner. Use the returned id with |
| open_projectA | Joins the project's real-time Socket.IO session and caches its file tree. Must be called before list_files / read_file / edit_file. Switching projects automatically closes the previous session. |
| list_filesA | Returns the file tree of the currently open project as a flat list of project-relative paths. Cheap — uses cached data from open_project, no network. Each entity has a path (e.g. 'chapters/intro.tex'), an id, and a kind ('doc' | 'file' | 'folder'). |
| read_fileA | Reads the contents of a file by project-relative path. For text docs (.tex, .bib, .md, etc.) the full text appears in both the |
| edit_fileA | Replaces the contents of a doc by computing a minimal diff and submitting it as an OT operation over the live Socket.IO connection. The change lands in the web editor in real time. By default the edit appears as a pending suggestion in the Review panel (track:'on'); pass track:'off' to write directly. If |
| find_and_replaceA | Replace one occurrence — or all, with |
| compileA | Triggers a LaTeX compile on Overleaf's CLSI, then fetches |
| read_logA | Returns the full LaTeX log from the most recent |
| list_commentsA | Returns all review-panel comment threads in the open project, sorted by most recently updated. Each entry includes the thread id, the doc path it's anchored on, the quoted text it refers to, the latest message preview, and whether it's resolved. Use |
| read_comment_threadA | Fetches the full message history of one thread (all replies with author + timestamp). Use this when |
| reply_commentA | Adds a new message to an existing comment thread. Threads come from |
| resolve_commentA | Marks a thread as resolved. Use after addressing the comment (e.g. by editing the doc and replying). |
| reopen_commentB | Reopens a previously-resolved thread. |
| list_tracked_changesA | Enumerates every pending tracked-change suggestion in the open project (across all docs), with author name + email, doc path, op kind ('insert' | 'delete'), position, inserted/deleted text, and a stable change_id. Use this to plan an |
| accept_changesA | Permanently accepts the specified tracked-change suggestions. The text stays in the doc; the pending-change metadata is cleared. Pass the |
| reject_changesA | Rejects the specified tracked-change suggestions. For tracked inserts the inserted text is removed; for tracked deletes the strikethrough is cleared and the text stays. Implemented as an OT update with |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/netique/overleaf-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server