Skip to main content
Glama

overleaf-claude-mcp

Подключите Claude к вашей учётной записи Overleaf. Claude может просматривать список ваших проектов, выбирать нужный, читать LaTeX-файлы и изображения, редактировать файлы, компилировать и забирать готовый PDF.

У Overleaf нет публичного API на бесплатном тарифе: Git-мост и синхронизация с Dropbox доступны только в Premium. Поэтому этот сервер использует те же внутренние HTTP- и сокетные эндпоинты, что и веб-приложение Overleaf, авторизуясь через браузерную сессию, которую вы создаёте один раз. Каждый эндпоинт был извлечён из JavaScript-бандла самого Overleaf и проверен на реальном аккаунте. См. Проверенные эндпоинты.


Учебник

Что потребуется

  • Node 20 или новее (node -v)

  • Установленный Chrome или Edge

  • Учётная запись Overleaf, подойдёт и бесплатный тариф

  • Claude Code (claude --version) или Claude Desktop

Шаг 1: Запустите настройку

Из этой папки в Windows:

setup.cmd

В macOS или Linux:

./setup.sh

Настройка выполнит пять шагов и выведет каждый из них:

  1. Установит зависимости

  2. Соберёт проект в dist/

  3. Проверит наличие рабочей сессии Overleaf. Если её нет, в браузере откроется страница входа в Overleaf

  4. Прочитает один из ваших реальных проектов, чтобы убедиться, что подключение работает

  5. Предложит зарегистрировать сервер в Claude Code

Шаг 2: Войдите, когда откроется браузер

Окно браузера — это настоящий Chrome. Войдите обычным способом, включая двухфакторную аутентификацию. Никто не вводит за вас пароль, и ваш пароль никогда не считывается и не сохраняется.

Как только вы попадёте на страницу со списком проектов, окно закроется само, и настройка продолжится. Файлы cookie вашей сессии сохраняются в ~/.overleaf-claude-mcp/session.json.

Этот файл равносилен полному доступу к вашей учётной записи Overleaf. Он добавлен в .gitignore и создаётся с правами 0600. Не передавайте его никому и не коммитьте.

Шаг 3: Разрешите настройке зарегистрировать сервер

На шаге 5 появится запрос:

      Register this server with Claude Code now? [y/N]

Ответьте y. Будет выполнено:

claude mcp add overleaf -- node C:/CoolYEAH/overleaf-claude-mcp/dist/index.js

Если вы пропустили этот шаг или используете другой клиент, зарегистрируйте сервер вручную. Для Claude Code выполните команду выше. Для Claude Desktop отредактируйте %APPDATA%\Claude\claude_desktop_config.json в Windows или ~/Library/Application Support/Claude/claude_desktop_config.json в macOS:

{
  "mcpServers": {
    "overleaf": {
      "command": "node",
      "args": ["C:/CoolYEAH/overleaf-claude-mcp/dist/index.js"]
    }
  }
}

Шаг 4: Перезапустите Claude

MCP-серверы подхватываются только при запуске. Закройте и снова откройте Claude Code или Claude Desktop.

Убедитесь, что сервер загрузился:

claude mcp list

Вы должны увидеть overleaf в списке подключённых. В сессии Claude Code то же самое показывает /mcp.

Шаг 5: Используйте

Просто сформулируйте запрос обычным языком. Claude сам выберет нужные инструменты.

List my Overleaf projects
Select the Efficient Reasoning project
Read sections/methodology.tex
In sections/results.tex, change "Table 1" to "Table~\ref{tab:main}"
Compile it and tell me what the LaTeX errors are
Show me figures/fig1.png
Save the compiled PDF to C:/tmp/paper.pdf

Выберите проект один раз — и он запомнится. Выбор сохраняется в ~/.overleaf-claude-mcp/state.json и переживает перезапуски, поэтому все последующие запросы будут применяться к этому проекту, пока вы его не смените. Чтобы в одном запросе поработать с другим проектом, не переключаясь, назовите его: «прочитай main.tex из моего проекта thesis».


Related MCP server: claudeleaf

Как это запускается

Никаких слеш-команд и ничего печатать не нужно. Claude читает описания инструментов и вызывает их, когда ваш запрос им соответствует. Достаточно упомянуть Overleaf или уже выбранный проект или файл.

Если Claude не использует инструменты, обычно причина в одном из двух: вы не перезапустили Claude после регистрации, или проект ещё не выбран. Спросите «какой проект Overleaf выбран?», чтобы проверить.

Инструменты

Инструмент

Назначение

overleaf_list_projects

Список проектов с отметкой выбранного

overleaf_select_project

Выбор активного проекта по id или имени

overleaf_current_project

Показать, какой проект выбран

overleaf_list_files

Полное дерево файлов и папок

overleaf_read_file

Чтение LaTeX или другого текстового файла

overleaf_read_image

Просмотр рисунка прямо в чате

overleaf_download_file

Сохранение любого файла, включая PDF, локально

overleaf_grep

Поиск по регулярному выражению в проекте

overleaf_write_file

Создание или перезапись текстового файла

overleaf_edit_file

Точная замена строки внутри файла

overleaf_upload_file

Загрузка локального файла, например рисунка

overleaf_create_folder

Создание папки и недостающих родительских

overleaf_rename

Переименование файла или папки

overleaf_move

Перемещение файла или папки

overleaf_delete

Удаление записи, требует confirm: true

overleaf_compile

Компиляция на стороне сервера

overleaf_compile_log

Компиляция и вывод разобранных ошибок LaTeX

overleaf_download_pdf

Компиляция и сохранение PDF

overleaf_word_count

Подсчёт слов после компиляции

overleaf_select_project принимает id проекта или любую часть имени. Если имя соответствует нескольким проектам, он выведет список кандидатов, а не будет угадывать. overleaf_delete откажется выполниться, если confirm не равен true, так что случайно удалить файл Claude не сможет.


Устранение неполадок

«No Overleaf session at ...» — вы ещё не вошли в систему или срок сессии истёк. Выполните npm run login или снова запустите setup.cmd.

Claude не видит инструменты — вы не перезапустили Claude после регистрации. Проверьте claude mcp list.

Инструмент внезапно перестал работать — возможно, Overleaf изменил какой-то эндпоинт. Запустите npm run recon, который проверит каждый эндпоинт в режиме чтения и точно укажет, какой вызов сломался.

Проверьте настройки из терминала, без Claude:

npm run read -- "Efficient Reasoning"

Выводит дерево файлов и все заголовки разделов подходящего проекта. Добавьте путь, чтобы вывести один файл:

npm run read -- "Efficient Reasoning" sections/methodology.tex

Запускайте настройку заново в любое время. Она переиспользует рабочую сессию и заново проверяет подключение, так что это ещё и проверка работоспособности.


Как это работает

Дерево файлов берётся из сокетного соединения Overleaf, потому что только оно содержит идентификаторы сущностей, а они нужны для записи. Рукопожатие — это GET /socket.io/1/?projectId=<id> в формате socket.io 0.9; затем сервер отправляет joinProjectResponse со всем проектом, включая rootFolder, идентификаторы документов и хеши файлов. Дерево кэшируется на OVERLEAF_TREE_TTL_MS (по умолчанию 15 секунд) и сбрасывается после каждой записи.

Текстовые файлы читаются по одному документу, поэтому чтение всегда отражает текущее состояние. overleaf_grep вместо этого читает архив проекта, так что поиск по всему проекту обходится в один запрос, а не в один на файл.

Запись идёт через эндпоинт загрузки. Загрузка поверх существующего имени — это обновление на месте: идентификатор сущности сохраняется, поэтому история Overleaf и другие участники документа продолжают работать. Недостающие родительские папки создаются автоматически.

Проверенные эндпоинты

Подтверждено на реальном аккаунте, а не предположительно:

Операция

Вызов

Примечания

Список проектов

GET /project

Мета-тег ol-prefetchedProjectsBlob

CSRF

GET /project

Мета-тег ol-csrfToken, пересылается как x-csrf-token

Новый проект

POST /project/new

возвращает project_id

Дерево файлов

GET /socket.io/1/?projectId= затем websocket

joinProjectResponse

Только пути

GET /project/:id/entities

дёшево, без идентификаторов

Чтение документа

GET /project/:id/doc/:docId/download

обычный текст

Чтение бинарника

GET /project/:id/blob/:hash

хеш берётся из дерева

Архив

GET /project/:id/download/zip

используется для grep

Создать или перезаписать

POST /project/:id/upload?folder_id=

multipart, поле qqfile

Создать документ или папку

POST /project/:id/doc, POST /project/:id/folder

тело {name, parent_folder_id}

Переименовать

POST /project/:id/:type/:entityId/rename

204

Переместить

POST /project/:id/:type/:entityId/move

204, тело {folder_id}

Удалить

DELETE /project/:id/:type/:entityId

204

Компиляция

POST /project/:id/compile

возвращает outputFiles и clsiServerId

Подсчёт слов

GET /project/:id/wordcount

:type — это doc, file или folder.

Скрипты

Команда

Что делает

setup.cmd / ./setup.sh

Полная настройка с нуля

npm run setup

То же самое, если зависимости установлены

npm run login

Только повторная аутентификация

npm run read -- "<project>"

Просмотр проекта из терминала

npm run recon

Проверка каждого эндпоинта в режиме чтения

npm run smoke

Сквозной тест записи в одноразовом проекте

npm run build

Компиляция в dist/

npm run smoke создаёт проект claude-mcp-smoketest, затем выполняет запись, перезапись, загрузку изображения, переименование, перемещение, удаление и компиляцию. Проект остаётся в вашем аккаунте, чтобы вы могли его изучить. Удалите его, когда закончите.

Конфигурация

Всё необязательно. См. .env.example.

Переменная

Значение по умолчанию

OVERLEAF_BASE_URL

https://www.overleaf.com

OVERLEAF_HOME_DIR

~/.overleaf-claude-mcp

OVERLEAF_SESSION_FILE

$OVERLEAF_HOME_DIR/session.json

OVERLEAF_CACHE_DIR

$OVERLEAF_HOME_DIR/cache

OVERLEAF_TREE_TTL_MS

15000

OVERLEAF_SOCKET_TIMEOUT_MS

20000

OVERLEAF_LOGIN_TIMEOUT_MS

600000

Ограничения

Всё это не является поддерживаемым API, и Overleaf может изменить его в любой момент. Используйте только со своей учётной записью. Совместное редактирование в реальном времени не реализовано: запись заменяет целый документ, а не отправляет операции на уровне символов, поэтому избегайте записи в файл, пока кто-то другой в нём печатает.

Install Server
F
license - not found
B
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Edit your Overleaf LaTeX projects from Claude and ChatGPT; every change is a real Git commit.

  • Read, edit, publish, and preview your pepita websites from Claude.

  • Connect Claude to Fathom meeting recordings, transcripts, and summaries

View all MCP Connectors

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/MarvelCollin/overleaf-claude-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server