Skip to main content
Glama

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-patch library to translate semantic edits into precise ShareJS text0 Operational 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).

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_login tool).

  • 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.

If you prefer manual configuration:

  1. Log into your Overleaf account in your browser.

  2. Open Developer Tools (F12) -> Application / Storage -> Cookies.

  3. Copy overleaf_session2 and 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 build

Usage

npm start

Available Tools

10 tools
overleaf_compile_and_downloadB

Compiles the Overleaf project and downloads the resulting PDF.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe ID of the Overleaf project.
rootDocIdYesThe ID of the root document (e.g., main.tex).
outputPathYesThe absolute local path where the PDF should be saved.

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the new document (e.g. 'newfile.tex').
projectIdYesThe ID of the Overleaf project.
parentFolderPathNoThe path of the parent folder. Leave empty for root.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe name of the new folder.
projectIdYesThe ID of the Overleaf project.
parentFolderPathNoThe path of the parent folder. Leave empty for root.

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNameYesThe name of the project. A prefix 'agent_' will automatically be prepended to avoid conflicts.

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe full path to the entity to delete (e.g. 'main.tex' or 'folder/image.png').
projectIdYesThe ID of the Overleaf project.

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesThe path of the document to edit (e.g., main.tex).
projectIdYesThe ID of the Overleaf project.
targetContentNoThe exact existing text you want to replace. If omitted, the entire file will be replaced by replacementContent.
replacementContentYesThe new text to insert.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdYesThe ID of the Overleaf project.

TDQS

C2.4/5.0
Behavior1/5

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.

Conciseness3/5

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.

Completeness1/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe full path to the entity to move (e.g. 'main.tex').
projectIdYesThe ID of the Overleaf project.
newParentFolderPathYesThe path to the destination folder (e.g. 'my-folder'). Use '/' for root.

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesThe path of the document (e.g., main.tex or folder/file.tex).
projectIdYesThe ID of the Overleaf project.

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesThe absolute path to the local file to upload.
folderIdNoOptional folder ID in the project to upload to.
projectIdYesThe ID of the Overleaf project.

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

B3.4/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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