Skip to main content
Glama
rohangawhade

overleaf-resume

by rohangawhade

Overleaf Resume

Редактируйте и компилируйте свои резюме локально, а не на сайте Overleaf, с помощью MCP-сервера, который синхронизирует исходные файлы с Overleaf при необходимости. Работает с любым количеством проектов Overleaf бок о бок — каждый инструмент синхронизации принимает явный project_id, так что ничего не привязано к одному «единственному» проекту.

Создано для бесплатных аккаунтов Overleaf (без доступа к Git/API). Если ваш аккаунт имеет интеграцию с Git (платный план), просто git clone ваш проект — этот инструмент вам не нужен.

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

  • Ежедневное редактирование: после того как проект загружен (см. ниже), редактируйте его .tex-файл напрямую в projects/<name>/, затем компилируйте локально с помощью Tectonic — без обращения к Overleaf:

    tools/tectonic.exe projects/<name>/<main file>.tex

    Это создаёт PDF-файл рядом с ним. (tools/tectonic.exe — это автономный бинарник, уже настроенный в этом репозитории — он в gitignore, так как это большой загруженный бинарник, а не исходный код.)

  • Синхронизация с Overleaf: поскольку это бесплатный аккаунт Overleaf (без доступа к Git/API), MCP-сервер (overleaf_mcp/) управляет реальным, авторизованным сеансом Chromium с помощью Playwright, чтобы загружать исходники проекта и отправлять правки обратно в его онлайн-редактор — те же действия, которые вы бы выполняли вручную в браузере.

Related MCP server: LaTeX Resume MCP

Структура проекта

Каждый загруженный проект Overleaf попадает в свою собственную подпапку, поэтому несколько резюме могут сосуществовать без конфликтов:

projects/
  <your-project-name>/
    resume.tex (or whatever the project's main file is named)
    ...other pulled files (.cls, .sty, images)
    .backups/            # timestamped backups made before each re-pull
  <another-project-name>/
    ...

projects/ находится в gitignore — там хранится ваше реальное содержимое резюме (загруженное из Overleaf), поэтому оно остаётся локальным и никогда не попадает в коммиты.

Одноразовая настройка

Шаги 1–2 уже выполнены в этом репозитории (в .venv/ установлены зависимости и загружен браузер Chromium для Playwright; tools/tectonic.exe готов к использованию). Они перечислены здесь на случай, если вам нужно повторить их на другой машине или после чистой проверки.

  1. Создайте виртуальное окружение и установите зависимости:

    python -m venv .venv
    .venv\Scripts\activate
    pip install -r requirements.txt
    playwright install chromium
  2. Получите Tectonic: winget/choco могут требовать права администратора, которые не всегда доступны. Надёжный вариант без администратора — скачать бинарник для Windows напрямую и поместить его в tools/:

    gh release download tectonic@0.17.0 --repo tectonic-typesetting/tectonic \
      --pattern "tectonic-0.17.0-x86_64-pc-windows-msvc.zip" --dir tools
    # then unzip it so tools/tectonic.exe exists

    Проверьте с помощью tools/tectonic.exe --version.

  3. Войдите в Overleaf один раз, чтобы MCP-сервер мог повторно использовать сеанс:

    .venv/Scripts/python.exe scripts/overleaf_login.py

    Откроется окно браузера со страницей входа в Overleaf. Войдите с помощью email + пароля, а не «Войти через Google» — Google блокирует свою форму входа в любом автоматизированном браузере, поэтому для аккаунтов, использующих только Google, сначала нужно установить пароль в Overleaf (Account Settings). Затем сеанс сохраняется в .auth/storage_state.json (в gitignore — никогда не коммитьте и не делитесь им). Повторно запускайте этот скрипт, когда overleaf_login_status сообщает, что сеанс истёк.

  4. В этом репозитории .mcp.json автоматически регистрирует сервер в Claude Code. Перезапустите Claude Code (или выполните /mcp), чтобы он подхватил сервер overleaf-resume.

  5. Вызовите overleaf_list_projects, чтобы увидеть все ваши проекты Overleaf и их идентификаторы, затем overleaf_pull(project_id) для тех, с которыми вы хотите работать. Файлы попадают в projects/<name>/.

Инструменты MCP

  • overleaf_login_status — проверяет, действителен ли сохранённый сеанс.

  • overleaf_list_projects — список всех проектов Overleaf (имя + id).

  • overleaf_pull(project_id, local_dir?) — загружает исходники этого проекта в projects/<name>/ (или в local_dir, если указан), создавая резервные копии любых существующих файлов .tex/.cls/.sty/.bib в .backups/ перед этим.

  • overleaf_push(project_id, file_path) — отправляет текущее содержимое локального файла обратно в онлайн-редактор этого проекта Overleaf. file_path указывается относительно корня репозитория, например projects/<your-project-name>/resume.tex.

project_id всегда обязателен — нет единого проекта по умолчанию, поэтому это работает одинаково, есть ли у вас одно резюме или несколько. Используйте overleaf_list_projects, когда нужно найти нужный.

Устранение неполадок локальной компиляции

Overleaf по умолчанию компилирует с помощью pdfLaTeX; Tectonic использует движок на основе XeTeX. Две проблемы, которые это выявило на популярных шаблонах в стиле "Jake's Resume", на случай, если вы тоже с ними столкнётесь:

  • \pdfglyphtounicode / \input{glyphtounicode} / \pdfgentounicode=1 — это примитивы только для pdfTeX. Заключите их в условия, чтобы оба движка работали:

    \usepackage{iftex}
    \ifPDFTeX
      \input{glyphtounicode}
    \fi
    ...
    \ifPDFTeX
      \pdfgentounicode=1
    \fi
  • Пары \begin{itemize}...\end{itemize} из enumitem (через макросы \resumeSubHeadingListStart/End этого шаблона) должны оставаться сбалансированными даже в закомментированных секциях — случайный, несопоставленный \end{itemize}, оставшийся после комментирования блока, приводит к загадочной Undefined control sequence глубоко внутри внутренностей enumitem (\enit@enditemize). Это не различие Tectonic/Overleaf — это вызовет ошибку и на собственном компиляторе Overleaf, если посмотреть на количество ошибок.

Предостережения

  • Этот инструмент автоматизирует реальный веб-интерфейс Overleaf с вашим собственным авторизованным сеансом — для бесплатных проектов нет публичного API. Он может сломаться, если Overleaf изменит свой интерфейс, а сохранённый сеанс иногда истекает (повторно запустите scripts/overleaf_login.py).

  • Первая компиляция tectonic требует доступа к сети для загрузки пакетов LaTeX; последующие компиляции кэшируются и работают офлайн.

  • .auth/storage_state.json содержит живые куки сеанса — держите его вне системы контроля версий.

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/rohangawhade/overleaf-resume'

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