Skip to main content
Glama
overleaf-resume

overleaf-resume

by rohangawhade

Overleaf Resume

ローカルで履歴書を編集・コンパイルするためのツールです。Overleaf のウェブサイト上ではなく、MCP サーバーがソースファイルを Overleaf と必要に応じて同期します。複数の Overleaf プロジェクトを並行して扱えます。すべての同期ツールは明示的な project_id を取るため、特定の「その」プロジェクトに固定されることはありません。

無料プランの Overleaf アカウント(Git/API アクセスなし)向けに作られています。アカウントに Git 連携(有料プラン)がある場合は、代わりに git clone でプロジェクトを取得すればよく、このツールは不要です。

仕組み

  • 日常の編集: プロジェクトをプルしたら(下記参照)、projects/<name>/ 配下の .tex ファイルを直接編集し、Tectonic でローカルにコンパイルします。Overleaf への往復は不要です。

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

    これにより、その隣に PDF が生成されます。(tools/tectonic.exe はこのリポジトリに既にセットアップされているスタンドアロンバイナリです。ダウンロードした大きなバイナリでありソースではないため、gitignore されています。)

  • Overleaf との同期: 無料プランの Overleaf アカウント(Git/API アクセスなし)のため、MCP サーバー(overleaf_mcp/)が Playwright で実際にログインした Chromium セッションを操作し、プロジェクトのソースをダウンロードして、編集内容をオンラインエディタにプッシュします。ブラウザで手動で行う操作と同じです。

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/ に依存関係と Playwright の Chromium ブラウザがインストール済み、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 のログインページを開きます。メールアドレスとパスワードでログインしてください。「Google でサインイン」は使わないでください。Google は自動化されたブラウザ内でのサインインフォームをブロックするため、Google 専用アカウントは先に Overleaf でパスワードを設定する必要があります(アカウント設定)。セッションは .auth/storage_state.json に保存されます(gitignore されています。コミットや共有はしないでください)。overleaf_login_status がセッションの期限切れを報告したら、このスクリプトを再実行してください。

  4. このリポジトリの .mcp.json がサーバーを Claude Code に自動登録します。Claude Code を再起動するか(または /mcp を実行)、overleaf-resume サーバーを認識させてください。

  5. overleaf_list_projects を呼び出してすべての Overleaf プロジェクトとその ID を確認し、作業したいプロジェクトに対して 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 は常に必須です。デフォルトのプロジェクトは存在しないため、履歴書が 1 つでも複数でも同じように動作します。ID を調べる必要がある場合は overleaf_list_projects を使用してください。

ローカルコンパイルのトラブルシューティング

Overleaf はデフォルトで pdfLaTeX でコンパイルします。Tectonic は XeTeX ベースのエンジンを使用します。人気の "Jake's Resume" スタイルのテンプレートで発生した 2 つの問題を以下に示します。同じ問題に遭遇した場合の参考にしてください。

  • \pdfglyphtounicode / \input{glyphtounicode} / \pdfgentounicode=1 は pdfTeX 専用のプリミティブです。両方のエンジンで動作するようにガードしてください。

    \usepackage{iftex}
    \ifPDFTeX
      \input{glyphtounicode}
    \fi
    ...
    \ifPDFTeX
      \pdfgentounicode=1
    \fi
  • enumitem の \begin{itemize}...\end{itemize} のペア(このテンプレートの \resumeSubHeadingListStart/End マクロ経由)は、コメントアウトされたセクションをまたいでもバランスが保たれている必要があります。ブロックをコメントアウトした後に残った孤立した \end{itemize} は、enumitem 内部(\enit@enditemize)の奥深くで cryptic な Undefined control sequence を生成します。これは Tectonic/Overleaf の違いではありません。エラー数を確認すれば、Overleaf 自身のコンパイラでも失敗することがわかります。

注意事項

  • これは、自分のログイン済みセッションで Overleaf の実際の Web UI を自動化するものです。無料プランのプロジェクトには公開 API がありません。Overleaf が UI を変更すると壊れる可能性があり、保存されたセッションは時々期限切れになります(scripts/overleaf_login.py を再実行してください)。

  • 最初の tectonic コンパイルは LaTeX パッケージを取得するためにネットワークアクセスが必要です。以降のコンパイルはキャッシュされ、オフラインで動作します。

  • .auth/storage_state.json には有効なセッション Cookie が含まれています。バージョン管理から除外してください。

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers