Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Read, edit, compile, and review Overleaf projects through your own signed-in web session.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
OVERLEAF_BASE_URL, OVERLEAF_COOKIE_JAR_FILE, OVERLEAF_ALLOWED_PROJECTS, OVERLEAF_LOCAL_READ_ROOTS, OVERLEAF_LOCAL_WRITE_ROOTS, OVERLEAF_ALLOWED_EFFECTSYou need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"overleaf-web": {
"command": "npx",
"args": [
"-y",
"overleaf-web-mcp",
"serve"
],
"env": {
"OVERLEAF_BASE_URL": "your-value",
"OVERLEAF_COOKIE_JAR_FILE": "your-value",
"OVERLEAF_ALLOWED_PROJECTS": "your-value",
"OVERLEAF_LOCAL_READ_ROOTS": "your-value",
"OVERLEAF_LOCAL_WRITE_ROOTS": "your-value",
"OVERLEAF_ALLOWED_EFFECTS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add overleaf-web --env OVERLEAF_BASE_URL=your-value --env OVERLEAF_COOKIE_JAR_FILE=your-value --env OVERLEAF_ALLOWED_PROJECTS=your-value --env OVERLEAF_LOCAL_READ_ROOTS=your-value --env OVERLEAF_LOCAL_WRITE_ROOTS=your-value --env OVERLEAF_ALLOWED_EFFECTS=your-value -- npx -y overleaf-web-mcp serveFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"overleaf-web": {
"command": "npx",
"args": [
"-y",
"overleaf-web-mcp",
"serve"
],
"env": {
"OVERLEAF_BASE_URL": "your-value",
"OVERLEAF_COOKIE_JAR_FILE": "your-value",
"OVERLEAF_ALLOWED_PROJECTS": "your-value",
"OVERLEAF_LOCAL_READ_ROOTS": "your-value",
"OVERLEAF_LOCAL_WRITE_ROOTS": "your-value",
"OVERLEAF_ALLOWED_EFFECTS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"overleaf-web": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"overleaf-web-mcp",
"serve"
],
"env": {
"OVERLEAF_BASE_URL": "your-value",
"OVERLEAF_COOKIE_JAR_FILE": "your-value",
"OVERLEAF_ALLOWED_PROJECTS": "your-value",
"OVERLEAF_LOCAL_READ_ROOTS": "your-value",
"OVERLEAF_LOCAL_WRITE_ROOTS": "your-value",
"OVERLEAF_ALLOWED_EFFECTS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
OVERLEAF_BASE_URL envOVERLEAF_COOKIE_JAR_FILE envOVERLEAF_ALLOWED_PROJECTS envOVERLEAF_LOCAL_READ_ROOTS envOVERLEAF_LOCAL_WRITE_ROOTS envOVERLEAF_ALLOWED_EFFECTS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account mhmdaskari, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.9.0) reached the registry today.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, EmbeddedCI BenchPod
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Drive a BenchPod hardware-in-the-loop bench: power, flash, UART, I2C, CAN, analog and logic.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Overleaf Web MCP
Read, edit, compile, and review your Overleaf projects, signed in as you, from Claude, Codex, Cursor, or any MCP client, or from a shell or a TypeScript program.
Docs · Get started · Command line · Tools · Safety · Compare · Changelog
Overleaf Web MCP is a Model Context Protocol server, the overleaf-web-mcp command line, and a TypeScript library, createOverleafClient from overleaf-web-mcp/core, all over one engine with the same safety checks. It signs in to Overleaf once through a browser window you control, then lets an AI assistant, a script, or your own program work on your projects the way you would in the web editor: browse files, make revision-checked edits, optionally as tracked changes, compile, and handle review comments and tracked changes. It uses the same browser-facing endpoints the Overleaf editor uses, so no Git integration or premium plan is needed for the core workflow.
Once connected, talk to your assistant in plain language. It picks the tools.
proposal.tex the root."main.tex for a general audience, as a tracked change."./figures differ from what's in the project? Upload only those."~/papers/thesis, and show me what would be deleted first."main.tex with me, and accept the ones I approve."You need Node.js 20 or newer, a Chrome-family browser (Chrome, Chromium, Brave, or Edge), and an Overleaf account.
[!NOTE]
The server uses Overleaf's private web APIs, which can change without notice, and automating
www.overleaf.commay carry Terms-of-Service and account risk. Try it on a disposable project first and keep request volume low.
1. Sign in once. A dedicated browser window opens. Complete the normal Overleaf login, including SSO or two-factor. Only cookies for the Overleaf origin are saved, to a file only your user can read. The session lasts five days from its last use, so sign in again after five idle days, or schedule npx overleaf-web-mcp keepalive daily to keep it alive (see configuration).
npx overleaf-web-mcp login
2. Connect your MCP client. For Claude Code:
claude mcp add overleaf --scope user -- npx -y overleaf-web-mcp serve
For Codex:
codex mcp add overleaf -- npx -y overleaf-web-mcp serve
Claude Desktop, Cursor, VS Code, and other clients
Add this to the client's MCP configuration:
{
"mcpServers": { "overleaf": { "command": "npx", "args": ["-y", "overleaf-web-mcp", "serve"] } } }
VS Code uses a servers key and "type": "stdio" instead; the installation guide has the exact block for each client.
3. Restart the client and ask it to check your Overleaf connection.
Client-by-client steps, self-hosted Overleaf, and troubleshooting, including the "failed to connect" you get when node is older than 20, are in the installation guide.
Every tool is also a command, for scripts, CI jobs, and agents that work in a shell. After npx overleaf-web-mcp login:
npx overleaf-web-mcp projects list --query thesis
npx overleaf-web-mcp files read main.tex npx overleaf-web-mcp call get_sections --request request.json
Each command prints one JSON value on stdout, or one JSON error line on stderr, and its exit code says what is safe to do next: 0 complete, 1 failed, 2 fix the call, 3 not allowed, 4 read or plan again, 5 outcome unknown (never re-run it blindly), 6 partial, 7 retry later. Document text goes through a file or stdin, never the command line. The command line guide has every command and exit code. Three Agent Skills in skills/ use it to revise a manuscript, handle reviewer comments, and sync figures and sources.
From TypeScript, overleaf-web-mcp/core has one typed method per tool (TypeScript SDK):
import { createOverleafClient } from 'overleaf-web-mcp/core'
const client = await createOverleafClient() try { const file = await client.readFile({ projectId, filePath: 'main.tex' }) } finally { await client.close() }
\section headings in a file, read one section, replace one section.33 tools in eight groups: account, project lifecycle, files, folder sync, sections, compilation, review, and history. Read-only tools change nothing on Overleaf and write nothing on your computer. Destructive tools can replace or remove existing content, and all but stop_compile need a value repeated back first: the path, name, or count of what they delete, the revision of the document they replace, the planToken of a folder sync, or overwrite for a file that exists.
All 33 tools , with their annotations and local effects
An upload that would replace a file, and a folder sync without a planToken, are refused unless that replacement or unplanned sync is asked for by name. The last column shows which tools read or write files on the computer the server runs on. Every parameter and result is in the tool reference; each tool is also overleaf-web-mcp call and a method of createOverleafClient.
| Group | Tool | What it does | Annotation | Local effect |
|---|---|---|---|---|
| Account | auth_status | Verify the saved session and report when it expires | read-only | |
| Account | list_projects | List and search projects, newest first | read-only | |
| Project lifecycle | create_project | Create a blank or example project | ||
| Project lifecycle | clone_project | Copy a project, files and settings included | ||
| Project lifecycle | import_project_zip | Create a project from a local .zip archive | reads | |
| Project lifecycle | manage_project | Rename, trash, restore, archive, unarchive, or delete a project | destructive | |
| Project lifecycle | update_project_settings | Set the root document, TeX engine, TeX Live image, or spell-check language | ||
| Files | get_project_tree | Read the file tree with the project's compile settings | read-only | |
| Files | read_file | Read a text document and its revision | read-only | |
| Files | write_file | Replace a document with a revision-checked edit of only the changed words | destructive | reads |
| Files | create_file | Create a text document, optionally with content | ||
| Files | manage_entity | Create a folder, or rename, move, or delete an entity | destructive | |
| Files | upload_file | Upload a local file, replacing what is at that path when confirmed | destructive | reads |
| Files | batch_upload | Upload a list of local files to the pat
Only the beginning is shown; read the rest in the repo