mcpField
R
Resume Onepage Autofit Mcp

Resume Onepage Autofit Mcp

ローカル
github.com/seriserendipia生産性03 週間前に更新

Resume Onepage Autofit Mcp について

Resume Onepage Autofit Mcpは、Markdownの履歴書をPDFに変換し、はみ出しなどのレイアウト情報を報告します。AIエージェントが元ファイルを修正して再出力する流れを支援し、MCPクライアントでの1ページ履歴書作成に使えます。

主な機能

  1. 01Markdown履歴書をPDFに変換
  2. 02A4一枚への収まりを確認
  3. 03行単位のレイアウト情報を報告
  4. 04履歴書の構造化JSONを出力
  5. 05形式に沿わない記述を警告

活用シーン

  1. 011ページのPDF履歴書を作成
  2. 02Markdownを編集してはみ出しを調整
  3. 03JSONで履歴書の項目を確認
  4. 04形式上の警告を確認

MCP 対応

このMCPサーバーは、Claude DesktopなどのAIクライアント向けに`render_resume_pdf`を提供します。収まり具合とレイアウト情報を返し、Markdownファイルの反復編集に使えます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

AI Resume Auto-Fitting System

🌐 中文 | 英語

License: MIT Python 3.8+ Playwright

🤖 AI と Word の間でコピーしたり、書式を調整したり、1 ページに収めるために手直ししたりするのにうんざりしていませんか?そのフィードバックループを AI に任せられたらどうでしょう?この MCP を使うと、AI が PDF をレンダリングし、内容を自動調整して、きれいな書式の 1 ページにぴったり収められます。

🎯 仕組み

User: Please generate a single-page resume from my experience

AI Agent:
1. 📝 Write the resume to resume.md
2. 🔍 Call render_resume_pdf with its path
3. ⚠️ Failed: overflows by 6% (about 4 body lines); the bullet on line 58 ends with a 6-character line
4. 🔧 Edit only those lines in resume.md
5. ✅ Success! PDF generated

🚀 クイックスタート

1. MCP サーバーをインストールする
# Enter MCP Server directory and install dependencies
cd mcp_server
pip install -r requirements.txt
# ⚡ Or using uv (recommended): uv pip install -r requirements.txt

# Install Chromium browser (first time only, ~150MB)
playwright install chromium
2. Claude Desktop を設定する

%APPDATA%\Claude\claude_desktop_config.json を編集します。

{
  "mcpServers": {
    "resume-onepage-autofit-mcp": {
      "command": "python",
      "args": ["<your-path>/myresumebuilder/mcp_server/mcp_server.py"]
    }
  }
}

<your-path> を実際のプロジェクトパスに置き換えてください。

⚡ uv の使用を希望する場合:

"resume-onepage-autofit-mcp": {
  "command": "uv",
  "args": [
    "run",
    "--directory",
    "<your-path>/myresumebuilder",
    "mcp_server/mcp_server.py"
  ]
}
3. 履歴書の内容を準備する

myexperience.md に履歴書の内容を記述します(書式については example_resume.md を参照してください)。

4. 使用を開始する

Claude Desktop を再起動し、「職務経験から 1 ページの履歴書を生成してください」と AI に伝えるだけです。

エージェントは履歴書を .md ファイルに書き込み、そのファイルの絶対パス(markdown_path)をツールに渡します。Linux/macOS では (/home/you/resume.md)、Windows では (C:\Users\you\resume.md) のようになります。レンダリングのたびに履歴書全体を再送信するのではなく、ファイルを直接編集します。詳細は mcp_server/README.md を参照してください。

PDF は Markdown ファイルと同じ名前で、その隣に書き出されます(resume.md → resume.pdf)。各 PDF(例:resume.pdf)の隣には、レンダラーが resume.structured.json も書き出します。このファイルでは、概要、スキル、職務経験、プロジェクトがフィールド(会社名、役職、勤務地、開始月、終了月)に分割されています。ツールの結果には「Format warnings」として、標準の履歴書書式に従っていない行が、それぞれ書き換え後の形式とともに列挙されます。

💡 カスタム出力パス:絶対パスの output_path を渡すと、PDF を別の場所に保存できます。


✨ 主な機能

  • 🎯 スマートなフィッティング:内容を自動調整し、履歴書を A4 の 1 ページにぴったり収めます
  • 🔍 高精度な検出:Playwright に基づき、ページの高さをピクセル単位で正確に検出します
  • 📏 行単位のフィードバック:各セクションや箇条書きが何行を占めるか、最終行に何文字あるか、何行がはみ出しているかを報告します。ツールは事実のみを伝え、削る内容はエージェントが判断します
  • 🔄 フィードバックループ:エージェントが Markdown ファイルを直接編集し、再レンダリングします
  • 🚀 MCP 統合:Claude Desktop やその他の AI クライアントからの直接呼び出しに対応します

📸 ワークフロー

User provides experience → AI generates Markdown resume
                                    ↓
                        MCP Server renders & validates
                                    ↓
                    ┌─────── Detect page height ───────┐
                    │                                  │
                  Success                           Failure
               (within one page)                 (overflow X%)
                    │                                  │
              Generate PDF                Return per-block line counts
                    │                                  ↓
                    │                       AI edits the lines it chooses
                    │                                  │
                    └──────────── Re-render ←──────────┘

🧭 エージェントプロンプト

ツールはレイアウトに関する事実を報告し、削る内容を提案することはありません。次のようなプロンプトをエージェントに与えてください(ワークフローに合わせて調整してください)。

You build a one-page resume with the render_resume_pdf tool.

1. Write the resume to a Markdown file, e.g. /home/you/resumes/acme/resume.md, in the
   canonical forms described in the tool's markdown_path parameter. Write the file once.
2. Call render_resume_pdf with the file's absolute path.
3. After each render, change only the lines that need it with your edit tool and render
   again with the same path. Never rewrite the whole file or paste the resume into the call.
   - Start with the paragraph under pdf_path: it says whether the render succeeded, why not,
     and what the next render must achieve.
   - overflow: "Page fit" gives overflow_percent and overflow_body_lines. The table "Space by
     section and entry" shows how many lines each section, job, project and school takes. Its
     "wrapped items" column lists items that wrap, as "source line: characters on last line";
     "58: 6" means 6 characters on line 58 cost a whole line, so trimming them saves it. Cut
     what is least relevant to the target job first.
   - success with a large empty_space_percent: there is room; add relevant detail or stop.
   - layout_error: each line under "Layout warnings" is an entry header that wrapped. It must
     fit on one line.
   - Format warnings: in the same edit, rewrite each listed line to its expected form. If a
     month is missing, ask the user; never invent one.
4. Stop when status is success and there are no format warnings. If it still does not fit
   after 5 renders, tell the user what you would cut and ask.

Never change facts (numbers, dates, company names, titles) to make the page fit.

🔧 ビジュアルプレビュー(任意)

デフォルトのスタイルパラメーターを手動で調整するには、コントロールパネルを使用します(フロントエンドのみで動作し、Python は不要です)。

# Use VS Code Live Server extension (recommended)
# Right-click control_panel.html -> "Open with Live Server"

# Or Python simple server
python -m http.server 8080
# Visit http://localhost:8080/control_panel.html

💡 コントロールパネルは主に、スタイルの上限・下限(例:フォントサイズの範囲、行間)を手動でデバッグするためのものです。日常的な使用では、内容に応じて最適な範囲内でレイアウトを自動調整する AI エージェントをご利用ください。技術的な詳細は DEVELOPMENT.md を参照してください。

📚 ドキュメント

🐛 既知の制限事項

  1. ブラウザーへの依存:Chromium が必要です(初回は約 150 MB)
  2. 内容の長さ:非常に長い履歴書(10 ページ以上)では、複数回のレンダリングが必要になる場合があります
  3. 特殊文字:一部の絵文字はレイアウトに影響する場合があります

🔄 開発ロードマップ

v0.2.0(予定)
  • カスタムテンプレート

🤝 コントリビューション

Issue とプルリクエストを歓迎します!

開発環境のセットアップ
# Clone repository
git clone https://github.com/seriserendipia/resume-onepage-autofit-mcp.git
cd resume-onepage-autofit-mcp

# Create virtual environment
conda create -n agent_env python=3.10
conda activate agent_env

# Install dependencies
pip install -r mcp_server/requirements.txt
playwright install chromium
コミット規約
  • feat: 新機能
  • fix: バグ修正
  • docs: ドキュメントの更新
  • test: テスト関連

📄 ライセンス

MIT License - LICENSE をご覧ください。

🙏 謝辞

  • Playwright - 強力なブラウザー自動化ツール
  • Source Sans 3 - 同梱の本文用書体(SIL OFL 1.1、fonts/OFL.txt をご覧ください)
  • MCP - 統一された AI ツールプロトコル
  • Markdown-it - 信頼性の高い Markdown パーサー
  • Paged.js - ブラウザーでの PDF ページネーション

📧 お問い合わせ


⭐ このプロジェクトがお役に立ちましたら、ぜひスターを付けてください!

⭐ このプロジェクトがお役に立ちましたら、ぜひスターを付けてください!

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。