### Cloning and Installing OverleafMCP for Local Development Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Steps to clone the OverleafMCP repository and install its dependencies using npm. This is the first option for local development. ```bash git clone https://github.com/mjyoo2/OverleafMCP.git cd OverleafMCP npm install ``` -------------------------------- ### List Projects Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Use the `list_projects` tool to get a list of all configured projects. ```text # List all projects Use the list_projects tool ``` -------------------------------- ### Creating and Editing projects.json for Local Development Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Command to copy an example projects configuration file to `projects.json` for editing. This is used in conjunction with Option 1 for local development. ```bash cp projects.example.json projects.json # then edit it ``` -------------------------------- ### Get Project Overview Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Use the `status_summary` tool to obtain a comprehensive status summary of a project. ```text # Get project overview Use status_summary tool ``` -------------------------------- ### Configuring Claude Desktop to Run Cloned OverleafMCP Server Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Example JSON configuration for Claude Desktop to point to a locally cloned OverleafMCP server script. Credentials are passed via environment variables. ```json { "mcpServers": { "overleaf": { "command": "node", "args": ["/absolute/path/to/OverleafMCP/overleaf-mcp-server.js"], "env": { "OVERLEAF_PROJECT_ID": "...", "OVERLEAF_GIT_TOKEN": "olp_..." } } } } ``` -------------------------------- ### Configuring Claude Desktop to Run Packed npm Artifact Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Example JSON configuration for Claude Desktop to run a locally packed OverleafMCP npm artifact. Note the explicit `--package=` argument for `npx`. ```json { "mcpServers": { "overleaf": { "command": "cmd", "args": [ "/c", "npx", "-y", "--package=C:\\absolute\\path\\to\\mjyoo2-overleaf-mcp-.tgz", "overleaf-mcp" ], "env": { "OVERLEAF_PROJECT_ID": "...", "OVERLEAF_GIT_TOKEN": "olp_..." } } } } ``` -------------------------------- ### status_summary Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Get a comprehensive project status summary. ```APIDOC ## status_summary ### Description Get a comprehensive project status summary. ### Method Not specified (assumed to be a tool invocation) ### Endpoint Not applicable (tool function) ### Parameters #### Query Parameters - **projectName** (string) - Optional - Project identifier ``` -------------------------------- ### Get Section Content Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Use the `get_section_content` tool with `filePath` and `sectionTitle` to retrieve the content of a specific section, like 'Introduction' in `main.tex`. ```text # Get Introduction section Use get_section_content with filePath: "main.tex" and sectionTitle: "Introduction" ``` -------------------------------- ### Referencing a Specific Project in Tool Calls Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Example of how to specify a project name when using a tool like 'read_file'. If 'projectName' is omitted, the 'default' project from 'projects.json' is used. ```tool_call Use read_file with filePath: "main.tex", projectName: "thesis" ``` -------------------------------- ### get_sections Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Get all sections from a LaTeX file. ```APIDOC ## get_sections ### Description Get all sections from a LaTeX file. ### Method Not specified (assumed to be a tool invocation) ### Endpoint Not applicable (tool function) ### Parameters #### Path Parameters - **filePath** (string) - Required - Path to the LaTeX file #### Query Parameters - **projectName** (string) - Optional - Project identifier ``` -------------------------------- ### get_section_content Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Get content of a specific section from a LaTeX file. ```APIDOC ## get_section_content ### Description Get content of a specific section. ### Method Not specified (assumed to be a tool invocation) ### Endpoint Not applicable (tool function) ### Parameters #### Path Parameters - **filePath** (string) - Required - Path to the LaTeX file - **sectionTitle** (string) - Required - Title of the section #### Query Parameters - **projectName** (string) - Optional - Project identifier ``` -------------------------------- ### list_projects Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md List all configured projects. ```APIDOC ## list_projects ### Description List all configured projects. ### Method Not specified (assumed to be a tool invocation) ### Endpoint Not applicable (tool function) ### Parameters None ``` -------------------------------- ### Configure Overleaf MCP Server for Windows Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Add this JSON configuration to your Claude Desktop config file on Windows. It uses `cmd /c` to correctly execute `npx` for the Overleaf MCP server. Requires Overleaf Project ID and Git Token environment variables. ```json { "mcpServers": { "overleaf": { "command": "cmd", "args": ["/c", "npx", "-y", "@mjyoo2/overleaf-mcp"], "env": { "OVERLEAF_PROJECT_ID": "YOUR_OVERLEAF_PROJECT_ID", "OVERLEAF_GIT_TOKEN": "YOUR_OVERLEAF_GIT_TOKEN" } } } } ``` -------------------------------- ### Claude Desktop Configuration for Multi-Project Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Configure Claude Desktop to use overleaf-mcp for multiple projects. This configuration omits the 'env' block. ```json { "mcpServers": { "overleaf": { "command": "cmd", "args": ["/c", "npx", "-y", "@mjyoo2/overleaf-mcp"] } } } ``` -------------------------------- ### Multi-Project Configuration (projects.json) Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Define multiple Overleaf projects with their names, project IDs, and Git tokens. This file should be placed in the user config directory. ```json { "projects": { "default": { "name": "Main Paper", "projectId": "...", "gitToken": "olp_..." }, "thesis": { "name": "PhD Thesis", "projectId": "...", "gitToken": "olp_..." } } } ``` -------------------------------- ### Write File Content Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Use the `write_file` tool with `filePath`, `content`, and `commitMessage` to write the full content of a file to the project. ```text # Write the full content of a file to the project Use write_file with filePath: "main.tex", content: "...", commitMessage: "..." ``` -------------------------------- ### Configure Overleaf MCP Server for macOS/Linux Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Add this JSON configuration to your Claude Desktop config file to enable the Overleaf MCP server. Requires Overleaf Project ID and Git Token environment variables. ```json { "mcpServers": { "overleaf": { "command": "npx", "args": ["-y", "@mjyoo2/overleaf-mcp"], "env": { "OVERLEAF_PROJECT_ID": "YOUR_OVERLEAF_PROJECT_ID", "OVERLEAF_GIT_TOKEN": "YOUR_OVERLEAF_GIT_TOKEN" } } } } ``` -------------------------------- ### Read File Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Use the `read_file` tool with the `filePath` parameter to read a specific file, such as `main.tex`. ```text # Read main.tex file Use read_file with filePath: "main.tex" ``` -------------------------------- ### List Sections in File Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Use the `get_sections` tool with the `filePath` parameter to list all sections within a LaTeX file, such as `main.tex`. ```text # List all sections in a file Use get_sections with filePath: "main.tex" ``` -------------------------------- ### Smoke-testing OverleafMCP Server from Shell Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Command to directly run the OverleafMCP server script from the shell, passing credentials via environment variables. This is Option 3 for smoke-testing. ```bash OVERLEAF_PROJECT_ID=... OVERLEAF_GIT_TOKEN=... node overleaf-mcp-server.js ``` -------------------------------- ### list_files Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md List files in a project, with an optional file extension filter. ```APIDOC ## list_files ### Description List files in a project (default: .tex files). ### Method Not specified (assumed to be a tool invocation) ### Endpoint Not applicable (tool function) ### Parameters #### Query Parameters - **extension** (string) - Optional - File extension filter - **projectName** (string) - Optional - Project identifier (defaults to "default") ``` -------------------------------- ### Packing OverleafMCP npm Artifact for Local Testing Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Command to pack the OverleafMCP project into a tarball (`.tgz`) file. This is used for Option 2 to test the packed npm artifact locally. ```bash npm pack # → mjyoo2-overleaf-mcp-.tgz ``` -------------------------------- ### projects.json Schema for Multi-Project Configuration Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Defines the structure for the `projects.json` file when managing multiple Overleaf projects. Each project requires a name, projectId, and gitToken. ```json { "projects": { "default": { "name": "Main Paper", "projectId": "...", "gitToken": "olp_..." }, "paper2": { "name": "Second Paper", "projectId": "...", "gitToken": "olp_..." } } } ``` -------------------------------- ### write_file Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Write the full content of a file to the project. ```APIDOC ## write_file ### Description Write the full content of a file to the project. ### Method Not specified (assumed to be a tool invocation) ### Endpoint Not applicable (tool function) ### Parameters #### Path Parameters - **filePath** (string) - Required - Path to the file - **content** (string) - Required - Content to write to the file - **commitMessage** (string) - Required - Commit message #### Query Parameters - **projectName** (string) - Optional - Project identifier ``` -------------------------------- ### read_file Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Read a specific file from the project. ```APIDOC ## read_file ### Description Read a specific file from the project. ### Method Not specified (assumed to be a tool invocation) ### Endpoint Not applicable (tool function) ### Parameters #### Path Parameters - **filePath** (string) - Required - Path to the file #### Query Parameters - **projectName** (string) - Optional - Project identifier ``` -------------------------------- ### write_section Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Write the content of a specific section to the project. ```APIDOC ## write_section ### Description Write the content of a specific section to the project. ### Method Not specified (assumed to be a tool invocation) ### Endpoint Not applicable (tool function) ### Parameters #### Path Parameters - **filePath** (string) - Required - Path to the file - **sectionTitle** (string) - Required - Title of the section - **newContent** (string) - Required - Replacement content for the section, including the section heading - **commitMessage** (string) - Required - Commit message #### Query Parameters - **projectName** (string) - Optional - Project identifier ``` -------------------------------- ### Write Section Content Source: https://github.com/mjyoo2/overleafmcp/blob/master/README.md Use the `write_section` tool with `filePath`, `sectionTitle`, `newContent`, and `commitMessage` to update the content of a specific section in a file. ```text # Write the content of a specific section to the project Use write_section with filePath: "main.tex", sectionTitle: "Introduction", newContent: "\section{Introduction}\n...", commitMessage: "..." ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.