overleaf-paper-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OVERLEAF_EMAIL | Yes | Overleaf login email. | |
| OVERLEAF_DATA_DIR | No | Recommended absolute root for all MCP-managed local resources. Downloads are kept in workspace/; browser login state is kept in browser-data/. | |
| OVERLEAF_PASSWORD | Yes | Overleaf login password. | |
| OVERLEAF_WORKSPACE_DIR | No | Legacy alternative for the workspace only. Use OVERLEAF_DATA_DIR for new configurations. |
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 | Check that the MCP server is alive and reachable |
| overleaf_create_projectA | Create a new empty Overleaf project. Use when starting a paper from scratch; then upload locally prepared source files with overleaf_upload_file. |
| overleaf_create_project_from_zipA | Create a new Overleaf project from a local ZIP archive. Use for importing a complete existing paper; this creates a separate project and never overwrites one. |
| overleaf_loginA | Open Overleaf and establish a reusable authenticated browser session using runtime environment variables. Call this before other Overleaf actions if no session exists. |
| overleaf_logoutA | Close the reusable Overleaf browser session and release its browser resources. Call once at the end of a bounded Overleaf task only when the user has indicated that no further Overleaf work is needed; do not close it between ordinary tool calls. |
| overleaf_list_projectsA | List the logged-in user's Overleaf projects and their IDs. Use this first when the project ID is unknown. |
| overleaf_open_projectA | Open a project in the browser by its project ID. File tools open projects automatically, so use this mainly to inspect or recover the visible Overleaf UI. |
| overleaf_list_filesA | List every project file, including nested files and sizes, by downloading and inspecting the project ZIP. Use when a complete, path-accurate inventory is needed; it is slower than single-file download. |
| overleaf_download_fileA | Primary file-reading tool: download exactly one Overleaf file under OVERLEAF_DATA_DIR/workspace/files// and return its path. To modify a paper, download it, edit the returned local file, then call overleaf_upload_file with overwrite: true. |
| overleaf_create_folderA | Create one folder in the project root. Use only for an empty folder; nested paths are not supported yet and uploads currently target the project root. |
| overleaf_create_fileA | Create one empty root-level file. Usually unnecessary because overleaf_upload_file creates a new root-level file when no same-named file exists; use only when an empty file is specifically needed. |
| overleaf_rename_fileA | Rename an existing project file without changing folders. List files first to obtain the exact old_path; this cannot move a file between folders. |
| overleaf_delete_fileA | Delete exactly one project file. First call with confirm omitted/false to inspect it; call again with confirm: true only after the user explicitly approves that exact path. |
| overleaf_upload_fileA | Primary file-writing tool: upload one local file to the project root. Use after editing a file obtained with overleaf_download_file, or to add images, .bib, .cls, and .tex files. A same-named file is preserved unless overwrite: true is intentionally supplied; ZIP import uses overleaf_create_project_from_zip instead. |
| overleaf_compileA | Compile an Overleaf project after uploading source or resource changes. This tool always inspects output.log because a PDF can render despite LaTeX errors. If any error is found, it clears cached files and retries once; a persistent error returns parsed diagnostics and output.log. Successful results can include warnings. This is the only compilation-diagnostics tool. |
| overleaf_download_pdfA | Download the latest compiled PDF. Call overleaf_compile first and download only after a successful compilation; saves under OVERLEAF_DATA_DIR/workspace/pdfs//. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Most tools are clearly distinct by action and resource (auth, project, file, compile/PDF), and descriptions explicitly disambiguate edge cases such as create_project vs create_project_from_zip. There is slight overlap between create_file and upload_file for creating new files, and open_project serves a niche 'inspect UI' purpose, but both are hedged clearly enough to avoid significant misselection.
The dominant pattern overleaf_verb_noun is used consistently across all file and project operations. The exceptions are ping (missing the overleaf_ prefix) and login/logout/compile (verb-only), which are minor and conventional deviations.
With 16 tools, the set sits just above the ideal 3-15 range. Ping, open_project, and create_file add marginal value and make it feel slightly heavy, though no tool is truly out of place in the Overleaf workflow.
The tool surface covers the core lifecycle well: auth, project creation (empty/zip), project listing, file CRUD (download/upload/rename/delete), compilation, and PDF download. Gaps include project deletion, folder deletion/rename/move, and nested-folder or nested upload support, but these are workable limitations rather than blocking dead ends.