Unofficial Overleaf MCP Server
This server lets AI agents manage and edit Overleaf projects in real time via MCP.
Authenticate: Log in to Overleaf and capture the session cookie (
overleaf_login)Manage projects: List, create, rename, clone, and archive Overleaf projects
Browse files: List the full directory tree and read file contents
Edit documents: Apply precise text edits in real time using Operational Transformation (
overleaf_edit_file)Create and organize: Create docs/folders, rename, move, and delete files or folders
Upload files: Upload local files or files from a public URL, including binaries like images and PDFs
Collaborate: Invite collaborators by email, list members/invites, and revoke access
Compile: Compile LaTeX projects and download the resulting PDF
Provides tools for managing Overleaf projects, including creating projects, listing and manipulating files, real-time document editing via Operational Transformation, and triggering LaTeX compilation for PDF download.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Unofficial Overleaf MCP ServerCreate a new Overleaf project named 'test'."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Unofficial Overleaf MCP Server
An unofficial Model Context Protocol (MCP) server that provides AI agents with the ability to interact with Overleaf projects directly. This server allows agents to create projects, list files, read contents, manage files, and securely edit documents in real-time using Overleaf's native Operational Transformation (ShareJS) WebSocket protocol.
Features
Project Management: Create new Overleaf projects natively.
File System (CRUD): List, upload, create, move, and delete files or folders within an Overleaf project.
Real-Time Document Editing: Edits files natively without full ZIP downloads. Utilizes a reverse-engineered Socket.IO 0.9 shim and the
diff-match-patchlibrary to translate semantic edits into precise ShareJStext0Operational Transformation (OT) updates.Compilation: Trigger server-side LaTeX compilation and download the resulting PDF.
Related MCP server: claudeleaf
Prerequisites
Node.js (v18+)
An active Overleaf account.
Configuration & Authentication
This MCP server authenticates to Overleaf using your session cookie (overleaf_session2).
Option 1: Automated Login (Recommended)
You can let the AI or CLI handle login automatically:
Via AI: Just ask the AI agent: "Faça login no Overleaf" (it will call the
overleaf_logintool).Via Terminal: Run
npm run login.
A browser window will open for you to log into your account. As soon as you log in, the cookie is automatically captured, saved to .env, and loaded into the server.
Option 2: Manual Cookie in mcp_config.json
If you prefer manual configuration:
Log into your Overleaf account in your browser.
Open Developer Tools (F12) -> Application / Storage -> Cookies.
Copy
overleaf_session2and set it in your MCP configuration.
Adding to Antigravity IDE / Gemini
Add the following to ~/.gemini/config/mcp_config.json:
{
"mcpServers": {
"overleaf": {
"command": "node",
"args": [
"/absolute/path/to/unofficial-overleaf-mcp-server/build/index.js"
]
}
}
}(Notice: You don't even need to manually define the env block if you let overleaf_login manage your .env file!)
Available MCP Tools
Authentication
overleaf_login(timeoutSeconds?): Opens a browser window, captures the session cookie upon login, saves it to.env, and activates the session.
Project Management
overleaf_list_projects(includeArchived?, search?): Lists all projects belonging to or shared with the user.overleaf_create_project(projectName): Creates a new blank project.overleaf_rename_project(projectId, newName): Renames an existing project.overleaf_clone_project(projectId, projectName): Duplicates/clones a project.overleaf_archive_project(projectId): Archives a project.
File & Entity Operations
overleaf_list_files(projectId): Returns the complete directory tree.overleaf_read_file(projectId, filePath): Reads the full text of a LaTeX document.overleaf_edit_file(projectId, filePath, targetContent, replacementContent): Edits text in real-time via OT/WebSocket.overleaf_create_doc(projectId, name, parentFolderPath?): Creates a new LaTeX document.overleaf_create_folder(projectId, name, parentFolderPath?): Creates a new folder.overleaf_rename_entity(projectId, path, newName): Renames a document, file, or folder.overleaf_move_entity(projectId, path, newParentFolderPath): Moves an entity to a destination folder.overleaf_delete_entity(projectId, path): Deletes an entity from the project.overleaf_upload_file(projectId, filePath?, contentBase64?, fileName?, parentFolderPath?, folderId?): Uploads a file (text or binary such as images, PDFs, ZIPs) from disk or memory base64.overleaf_upload_from_url(projectId, url, name, parentFolderPath?): Downloads and links a file directly from a public URL.
Collaboration & Sharing
overleaf_share_project(projectId, email, privileges?): Invites a collaborator by email with read/write or read-only access.overleaf_list_collaborators(projectId): Lists accepted members and pending invitations.overleaf_revoke_collaborator(projectId, emailOrId): Revokes a pending invite or removes an accepted collaborator.
Compilation
overleaf_compile_and_download(projectId, rootDocId, outputPath): Compiles the project and downloads the resulting PDF.
Security Note
This server requires your Overleaf session cookie to operate. Do not commit your session cookie or any specific project IDs into version control.
Build
npm install
npm run buildUsage
npm startAvailable Tools
10 toolsoverleaf_compile_and_downloadB
Compiles the Overleaf project and downloads the resulting PDF.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The ID of the Overleaf project. | |
| rootDocId | Yes | The ID of the root document (e.g., main.tex). | |
| outputPath | Yes | The absolute local path where the PDF should be saved. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It does not disclose side effects (e.g., does compiling modify the project?), error handling, or whether the operation is read-only or mutates server state. For a compile action, behavioral details are critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded. However, it lacks structure (e.g., bullet points or sections) that would improve readability for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple compile-and-download action, but missing return value info (e.g., path to saved PDF) and error behavior. With no output schema and 3 required params, more context on what the agent should expect is warranted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with descriptions for each parameter. The description adds no additional meaning beyond schema, but the schema is self-sufficient. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool compiles an Overleaf project and downloads the resulting PDF. The verb 'compiles' and 'downloads' specify the action, distinguishing it from sibling tools that focus on file manipulation (e.g., overleaf_edit_file, overleaf_upload_file).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over others, prerequisites (e.g., must project be saved?), or when not to use it. With several sibling tools, the lack of context on selection criteria is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
overleaf_create_docC
Creates a new blank document in an Overleaf project.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the new document (e.g. 'newfile.tex'). | |
| projectId | Yes | The ID of the Overleaf project. | |
| parentFolderPath | No | The path of the parent folder. Leave empty for root. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only notes that it creates a blank document. Missing details on side effects, permissions required, or behavior when project doesn't exist or file name conflicts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler, front-loaded with the action. Maximally concise for the information provided.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no description of return values or error conditions. For a creation tool, agents would benefit from knowing what is returned (e.g., document ID) and prerequisite checks.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema definitions; it simply restates the tool's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (creates), resource (new blank document), and scope (in an Overleaf project). It distinguishes from sibling tools like overleaf_create_folder and overleaf_create_project, though 'blank' could be more explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like overleaf_upload_file or overleaf_edit_file. Usage context is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
overleaf_create_folderB
Creates a new folder in an Overleaf project.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the new folder. | |
| projectId | Yes | The ID of the Overleaf project. | |
| parentFolderPath | No | The path of the parent folder. Leave empty for root. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond creation (e.g., whether overwriting occurs, error conditions, required permissions).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words, efficiently conveys the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description lacks behavioral details. However, for a simple creation tool with well-documented parameters, the description is minimally adequate. Additional context on behavior would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and descriptions in schema are clear. The tool description adds no additional meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool creates a new folder in Overleaf. The name and context distinguish it from sibling tools like overleaf_create_doc or overleaf_upload_file, though no explicit differentiation is provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites (e.g., project must exist), and no exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
overleaf_create_projectB
Creates a new blank project in Overleaf.
| Name | Required | Description | Default |
|---|---|---|---|
| projectName | Yes | The name of the project. A prefix 'agent_' will automatically be prepended to avoid conflicts. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states only that a project is created, without detailing any behavioral traits such as side effects (e.g., does it overwrite existing projects?), authentication requirements, or rate limits. Since no annotations are provided, the description carries the full burden, and this minimal disclosure is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence conveying the essential purpose with no extraneous words. It is front-loaded and efficiently communicates the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and the tool performs a creation action, the description is incomplete. It does not mention what the tool returns (e.g., project ID or URL), error conditions, or the scope of the blank project (e.g., default permissions). For a simple tool, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the single parameter (projectName) with a description that already mentions the automatic prefix. The tool description adds no additional parameter-level meaning beyond what the schema provides. With 100% schema coverage, the baseline expectation is met.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a concrete action ('Creates a new blank project') with a clear verb and resource. It distinguishes from sibling tools like overleaf_create_doc (which creates documents within a project) and overleaf_compile_and_download, leaving no ambiguity about its role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool or when alternatives might be better. However, since no sibling tool creates projects, the usage context is implicitly clear (create a new top-level project). The lack of prerequisites or exclusions prevents a higher score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
overleaf_delete_entityB
Deletes a document, file, or folder from an Overleaf project.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | The full path to the entity to delete (e.g. 'main.tex' or 'folder/image.png'). | |
| projectId | Yes | The ID of the Overleaf project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks critical behavioral details such as whether deletion is permanent, if folders are deleted recursively, and any side effects on shared projects. With no annotations, the description carries the full burden, which it fails to meet.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It could be slightly improved by front-loading the purpose, but it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive action with no output schema, the description should mention return values, error handling, or confirmations. Without these, the agent may not know how to handle the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters ('path' and 'projectId'). The description adds no extra meaning beyond the schema, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Deletes' and the resource 'a document, file, or folder from an Overleaf project'. It distinguishes from sibling tools that create, edit, list, or move entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or conditions for safe usage (e.g., checking if the entity exists, avoiding deletion of non-empty folders).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
overleaf_edit_fileA
Edits a file in an Overleaf project using Operational Transformation. You can either replace a specific chunk of text, or replace the entire file content.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | The path of the document to edit (e.g., main.tex). | |
| projectId | Yes | The ID of the Overleaf project. | |
| targetContent | No | The exact existing text you want to replace. If omitted, the entire file will be replaced by replacementContent. | |
| replacementContent | Yes | The new text to insert. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full behavioral burden. It mentions Operational Transformation and two editing modes, adding some transparency, but does not disclose failure modes, permissions, or side effects beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey core functionality and key usage options without any extraneous information. First sentence states action and mechanism, second explains two scenarios.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no output schema, and no annotations, the description adequately covers the main behavioral differences (chunk vs full file). It could mention error handling or prerequisites, but it suffices for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds valuable context by explicitly explaining the optional targetContent parameter: omitting it replaces the entire file. This clarifies the parameter semantics beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool edits an Overleaf file, specifies the use of Operational Transformation, and distinguishes two use modes (chunk replacement vs full replacement), setting it apart from sibling tools like read or create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., overleaf_upload_file for full replacement, overleaf_read_file for viewing). It only implies usage by stating it edits files.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
overleaf_list_filesC
Lists all files and folders in an Overleaf project.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | The ID of the Overleaf project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must carry the full burden. It only states that files and folders are listed, but provides no information about return format, pagination, depth, permissions, or side effects. This is insufficient for an agent to understand the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks structure. It does not include bullet points, headings, or additional details. While not verbose, it is too brief to be fully informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 1 parameter, no output schema, and no annotations, the description is extremely incomplete. It does not explain the output (e.g., file paths, IDs, metadata), any limits on file count, or potential errors. The agent would have to guess about return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (projectId has a description), so the baseline is 3. The description does not add any meaning beyond the schema's 'The ID of the Overleaf project.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Lists' and the resource 'all files and folders in an Overleaf project'. It distinguishes from siblings like overleaf_read_file (single file) and overleaf_create_doc (creation), though it does not specify whether the listing is recursive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The description does not mention any prerequisites, contexts, or comparisons to sibling tools like overleaf_read_file or overleaf_compile_and_download.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
overleaf_move_entityB
Moves a document, file, or folder to a new folder.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | The full path to the entity to move (e.g. 'main.tex'). | |
| projectId | Yes | The ID of the Overleaf project. | |
| newParentFolderPath | Yes | The path to the destination folder (e.g. 'my-folder'). Use '/' for root. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the basic action without disclosing behavioral traits such as whether the original location is removed, if permission checks apply, or any side effects (e.g., silent overwrites). This is insufficient for an entity-moving operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the core action. Every word earns its place. However, it could be considered slightly under-specified, but within conciseness standards, it is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and moderate complexity (3 required params). The description covers the basic purpose but lacks details about scope (e.g., within the same project) and return behavior. It is minimally complete but could be more informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description adds no extra meaning beyond the schema, so the baseline of 3 applies. The description could have clarified path formats or behavior, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Moves' and the resource 'document, file, or folder' and specifies the action 'to a new folder'. It effectively distinguishes this tool from siblings like create, delete, and edit, which are the only other tools that modify entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or suggest alternative approaches. The agent receives no contextual help for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
overleaf_read_fileB
Reads the full contents of a file in an Overleaf project.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | The path of the document (e.g., main.tex or folder/file.tex). | |
| projectId | Yes | The ID of the Overleaf project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only says 'Reads full contents' without disclosing behavior for missing files, binary content, size limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no waste, front-loaded with action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two parameters and no output schema, the description is adequate but omits details like error handling, return format, or limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters; description adds no additional meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Reads' and resource 'file in an Overleaf project', but does not distinguish from sibling tools like overleaf_list_files or overleaf_edit_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., edit vs read), and no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
overleaf_upload_fileC
Uploads a file to a specific Overleaf project.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | The absolute path to the local file to upload. | |
| folderId | No | Optional folder ID in the project to upload to. | |
| projectId | Yes | The ID of the Overleaf project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose behavior like overwriting, error handling, or required permissions, which are critical for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and to the point, but lacks any structure or elaboration that could improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no output schema, and no annotations, the description is too minimal. It omits file existence requirements, size limits, and success/error responses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 parameters with descriptions. The tool description adds no extra meaning beyond schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (uploads) and resource (file to Overleaf project), but does not differentiate from sibling tools like overleaf_edit_file. It is specific enough for general understanding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings, no prerequisites or exclusions. The description is silent on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct action: compilation, document creation, folder creation, project creation, deletion, editing, listing, moving, reading, and uploading. There is no overlap in functionality.
All tools follow a consistent 'overleaf_verb_noun' pattern (e.g., overleaf_create_doc, overleaf_list_files). The only minor variation is 'overleaf_compile_and_download' which combines two verbs, but it is still clearly patterned after the same prefix.
With 10 tools, the server covers project/file management (CRUD), editing, compilation, and uploads—appropriate for a LaTeX collaboration platform without being excessive or sparse.
The tool set provides core operations for managing and editing Overleaf projects. Missing a dedicated rename tool (though move could serve that purpose indirectly), but overall covers the main workflows (create, read, update, delete, compile).
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Overleaf alternative online LaTeX editor. AI agents edit, comment, and chat. Keep or revert edits.
Edit your Overleaf LaTeX projects from Claude and ChatGPT; every change is a real Git commit.
Persistent AI LaTeX workspace: edit and compile multi-file projects, export publication-ready PDFs.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA real-time MCP server that enables AI coding agents to read, write, and compile LaTeX projects in self-hosted Overleaf instances via native OT protocol.155AGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables Claude and AI agents to read and edit Overleaf documents in real time, with support for project listing, document manipulation, LaTeX compilation, and live collaboration.9814MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to read, edit, and compile LaTeX documents in Overleaf projects with tracked changes via the Model Context Protocol.1MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to read, edit, and compile LaTeX projects on Overleaf using session cookie authentication, bypassing the need for a paid plan.8MIT
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/n-qber/unofficial-overleaf-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server