overleaf-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OVERLEAF_API_PASS | Yes | WEB_API_PASSWORD | |
| OVERLEAF_API_PATH | No | Path prefix for the API proxy | /agent-api |
| OVERLEAF_API_USER | Yes | WEB_API_USER (usually 'overleaf') | |
| OVERLEAF_BASE_URL | Yes | Base URL of the Overleaf instance, e.g. https://overleaf.example.com | |
| OVERLEAF_OWNER_ID | Yes | Overleaf user id owning created projects | |
| OVERLEAF_CLSI_PATH | No | Path prefix for the CLSI proxy. Empty disables diagnostics. | /agent-clsi |
| OVERLEAF_CLSI_TOKEN | No | Must match the nginx config. Optional but required for diagnostics. | |
| OVERLEAF_TIMEOUT_MS | No | Timeout in milliseconds for operations | 120000 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_projectA | Create a new Overleaf project and return its id. The project is immediately visible and editable in the Overleaf web UI by a human. |
| list_filesA | List every file in the project with its size. Reflects edits made by humans in the web UI, not just files written through this server. |
| read_fileA | Read one file from the project. Call this before rewriting a file a human may have touched, so your edit is based on current content. |
| write_fileA | Create or overwrite a file. Writes are merged into the live document as an operational transform, so a human with the project open sees the change immediately and their cursor is preserved. NOTE: this replaces the whole file — read_file first if the content may have changed. |
| delete_fileB | Delete a file from the project. |
| compileA | Compile the project and return structured diagnostics. Returns a verdict, plus errors with file/line and suggested fixes. Does NOT return the PDF itself (it would flood your context) — use get_pdf if you need the bytes. Check verdict first: if it says BLOCKED, the server environment is at fault and retrying will not help. |
| get_pdfA | Compile and save the PDF to a local file, returning the path. Use when you need the artifact itself; for fixing errors use compile instead. |
| get_logA | Fetch the raw LaTeX log from the last compile. Use only when compile's structured diagnostics are not enough — the raw log is long. |
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/lintheyoung/overleaf-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server