mcpField
R
Resume MCP Server

Resume MCP Server

ローカル
github.com/aarangopビジネス・マーケティング274 週間前に更新

Resume MCP Server について

Resume MCP Serverは、求職者が職務記述に合わせてベースの履歴書を調整し、MarkdownまたはLaTeX/PDF形式で出力できるサーバーです。キャリア相談、テンプレート検証、オプションのObsidian保管庫へのアクセスにも対応します。

主な機能

  1. 01職務記述に合わせた履歴書の調整
  2. 02調整した履歴書のMarkdown保存
  3. 03LaTeXおよびPDFの生成
  4. 04Obsidianファイルの検索と読み取り
  5. 05キャリア相談と履歴書へのフィードバック

活用シーン

  1. 01応募職種に合わせた履歴書の調整
  2. 02調整済み履歴書のPDF作成
  3. 03Obsidian保管庫で履歴書情報を検索
  4. 04履歴書の評価とキャリア選択肢の検討

MCP 対応

履歴書の調整、キャリア相談、テンプレートの管理と検証、ファイルアクセス、LaTeX/PDF生成に使うMCPプロンプトとツールを提供します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

履歴書 MCP サーバー

AI を活用した履歴書のカスタマイズに対応する Model Context Protocol(MCP)サーバーです。このサービスを使うと、特定の求人情報に合わせて履歴書/CV を自動的にカスタマイズし、ATS システム向けに最適化された Markdown 版と LaTeX/PDF 版を作成できます。

🚀 機能

  • 履歴書のカスタマイズ:求人情報に合わせたオリジナルの履歴書を作成します
  • LaTeX 対応:LaTeX テンプレートを使用して、プロフェッショナルな PDF 形式で出力します
  • Obsidian 連携:Obsidian ボルト内のファイルを検索、管理します
  • キャリアガイダンス:履歴書やキャリアの選択肢についてフィードバックを得られます
  • MCP プロトコル:シームレスな AI 連携を実現するため、Model Context Protocol に準拠しています

📋 前提条件

  • Python 3.10 以降
  • Docker または Podman(LaTeX コンパイルサービス用)
  • Node.js/npm(MCP Inspector 用)
  • Obsidian(任意。ボルト連携用)
    • Obsidian を使用しない場合は、ファイルシステム上の任意のディレクトリを使用できます。その場合は、.env ファイルで OBSIDIAN_VAULT 変数を設定してください。

⚙️ インストール

  1. リポジトリをクローンします。

    git clone https://github.com/yourusername/resume-mcp.git
    cd resume-mcp
    
  2. 必要な Python 依存関係をインストールします。

    pip install -r requirements.txt
    # Or using uv (recommended for better dependency resolution)
    uv pip install -e .
    
  3. LaTeX コンパイルサーバーを起動します(PDF の生成に必要です)。

    # Using Docker
    cd latex-compilation-server
    docker-compose up -d
    cd ..
    
    # OR using Podman
    cd latex-compilation-server
    podman-compose up -d
    cd ..
    

    次のコマンドでサーバーが起動していることを確認できます。

    curl http://localhost:7474/health
    
  4. MCP Inspector をインストールします(デバッグ/開発用)。

    npm install -g @modelcontextprotocol/inspector
    
リポジトリの初期設定

--recursive フラグを付けずにリポジトリをクローンした場合、LaTeX コンパイルサーバーのサブモジュールを初期化する必要がある場合があります。

git submodule init
git submodule update

これにより、latex-compilation-server ディレクトリに LaTeX コンパイルサーバーの完全なコードが揃います。

🔧 設定

ルートディレクトリに .env ファイルを作成し、次の変数を設定します(または環境変数として設定します)。

# Server configuration
SERVER_NAME="Resume Tailoring Server"

# File paths
BASELINE_RESUME_PATH="./templates/baseline_resume.md"
PROMPT_TEMPLATE_PATH="./templates/prompt_template.md"
LATEX_TEMPLATE_PATH="./templates/latex_template.tex"
OUTPUT_DIRECTORY="./templates/tailored_resumes"

# Obsidian vault configuration (optional)
OBSIDIAN_VAULT="/path/to/your/obsidian/vault"

# LaTeX compilation server configuration
LATEX_SERVER_URL="http://localhost:7474"
LATEX_OUTPUT_DIR="./templates/latex_output"

# Logging
LOG_LEVEL="INFO"

# Anthropic API key (if using Anthropic models)
ANTHROPIC_API_KEY="your_anthropic_api_key"

🏃‍♂️ サーバーの実行

標準モード

標準モードでサーバーを実行するには、次のコマンドを使用します。

python main.py

サーバーは stdio トランスポートモードで起動し、MCP 対応の任意のクライアントに接続できます。

Inspector を使用する場合(開発/デバッグモード)

開発やテストでは、MCP Inspector を使ってサーバーを実行できます。

# Using the provided script
./inspect.sh

# Or manually
npx @modelcontextprotocol/inspector uv run main.py
問題のデバッグ

サーバーに問題がある場合は、デバッグスクリプトを実行できます。

python debug_server.py

設定に対してさまざまなチェックを行い、問題の特定を支援します。

🧠 履歴書 MCP サーバーの使用

このサーバーは、履歴書のカスタマイズに使える複数のプロンプトとツールを提供します。

プロンプト

サーバーを利用する最も簡単な方法は、用意されているプロンプトを使うことです。

  1. CV のカスタマイズ - 求人情報に基づいて履歴書をカスタマイズします
  2. キャリアガイダンス - キャリアに関するアドバイスや履歴書へのフィードバックを得られます

これらのプロンプトを使用するには、システム内にテンプレートを用意し、.env ファイルで設定する必要があります。

また、必要な入力を尋ねるようにプロンプトを変更することもできます。さらに、MCP ツールを使って、基本となる履歴書や求人情報など、関連情報を含むファイルにアクセスすることもできます。

ツール
  1. 管理ツール:

    • list_templates:利用可能なテンプレートを一覧表示します
    • get_baseline_resume:基本となる履歴書を取得します
  2. 検証ツール:

    • validate_latex_template:LaTeX テンプレートが有効かどうかを確認します
    • check_latex_server:LaTeX コンパイルサーバーが利用可能かどうかを確認します
    • check_latex_server_status:LaTeX サーバーの詳細な状態を取得します
    • start_latex_server_help:LaTeX サーバーの起動手順を取得します
  3. Obsidian ツール:

    • search_obsidian:Obsidian ボルト内のファイルを検索します
    • read_obsidian_file:Obsidian ファイルの内容を読み込みます
  4. CV ツール:

    • save_tailored_cv:カスタマイズした CV を Markdown 形式で保存します
    • generate_latex_cv:カスタマイズした CV を、安全なコンテナ化済み LaTeX コンパイルサーバーを使って LaTeX/PDF に変換します

🖨️ LaTeX コンパイルサーバー

このプロジェクトには、ローカルシステムに LaTeX をインストールせずに、LaTeX ドキュメントから安全に PDF ファイルを生成する、コンテナ化された LaTeX コンパイルサービスが含まれています。このサービスは Docker コンテナ内で独立したマイクロサービスとして実行され、このリポジトリには latex-compilation-server ディレクトリ内のサブモジュールとして含まれています。

メリット:
  • セキュリティ:LaTeX のコンパイルを Docker コンテナ内で分離し、システムコマンドが悪用される可能性を防ぎます
  • 一貫性:すべてのプラットフォーム(macOS、Windows、Linux)で同じように動作します
  • セットアップの簡素化:LaTeX やその依存関係をローカルにインストールする必要はありません
仕組み:
  1. MCP サーバーが LaTeX の内容をコンテナ化された HTTP サービスに送信します
  2. サービスが分離された環境でドキュメントをコンパイルします
  3. コンパイルされた PDF が MCP サーバーに返されます
  4. PDF が指定した出力ディレクトリに保存されます

アーキテクチャの詳細については、 LaTeX サーバーのアーキテクチャを参照してください。

管理:

Docker でサービスを起動/停止します:

cd latex-compilation-server
docker-compose up -d    # Start server
docker-compose down     # Stop server
docker-compose logs -f  # View logs

または Podman を使用します:

cd latex-compilation-server
podman-compose up -d    # Start server
podman-compose down     # Stop server
podman-compose logs -f  # View logs

🛡️ セキュリティに関する考慮事項

LaTeX コンパイルのセキュリティ

このプロジェクトでは、いくつかのセキュリティ上の理由から、システムコールを直接実行するのではなく、コンテナ化された LaTeX コンパイルサービスを使用しています。

  1. 分離:LaTeX のコンパイルプロセスは Docker コンテナ内で実行され、ホストシステムから分離されています
  2. シェルコマンドなし:MCP サーバーがシェルコマンドを直接実行することはないため、コマンドインジェクションの可能性を防ぎます
  3. サンドボックス環境:LaTeX コードは、権限が制限された制御環境で実行されます
  4. API ベースの通信:すべての通信は、シェル実行ではなく、明確に定義された HTTP API を介して行われます
  5. ステートレスな処理:ファイルはコンパイル後、コンテナ内に保持されません

このアーキテクチャにより、悪意のある LaTeX ドキュメントが送信されたとしても、ホストシステムにアクセスしたり、影響を与えたりすることはできません。

📄 テンプレートファイル

基本の履歴書

カスタマイズ版を作成する際のベースとなる、Markdown 形式の履歴書です。このプロジェクトには、情報を編集できるサンプルの基本履歴書が含まれています。

LaTeX テンプレート

プロフェッショナルな PDF を生成するための LaTeX テンプレートです。テンプレートには、カスタマイズした履歴書の対応するセクションに置き換えられる必須のプレースホルダー($name、$profile、$technical_skills など)を含める必要があります。

📚 ワークフローの例

  1. templates/baseline_resume.md に基本の履歴書を用意します
  2. templates/latex_template.tex で LaTeX テンプレートを設定します
  3. LaTeX コンパイルサーバーを起動します:
    cd latex-compilation-server
    docker-compose up -d
    cd ..
    
  4. MCP サーバーを実行します:python main.py
  5. MCP クライアント(統合された LLM など)で接続します
  6. 「Tailor CV」プロンプトに求人情報を送信します
  7. CV ツールを使用して LaTeX/PDF 版を生成します
  8. カスタマイズした履歴書を確認して活用します!

🔍 トラブルシューティング

よくある問題と解決策
LaTeX テンプレートの問題

LaTeX テンプレートにプレースホルダーが不足しているという警告が表示された場合は、$name、$profile、$technical_skills など、必須のフィールドがすべて含まれていることを確認してください。

初期化の問題

RuntimeError: Received request before initialization was complete が発生した場合:

  1. コンポーネントをインポートした後に少し待機する時間を追加します
  2. resume_mcp/mcp/__init__.py のインポート構造を確認し、すべてのコンポーネントが正しくインポートされていることを確認します
  3. デバッグサーバーを実行して、具体的な問題を特定します:
    python debug_server.py
    
MCP 接続の問題

クライアントがサーバーに接続できない場合:

  1. stdio トランスポートが正しく動作していることを確認します
  2. 必須のコンポーネントがすべてインポートされていることを確認します
  3. インスペクターを使って詳細なログを確認します:
    ./inspect.sh
    
Obsidian 連携の問題

Obsidian との連携が機能しない場合は、次の点を確認してください。

  1. .env ファイルの OBSIDIAN_VAULT パスを確認します
  2. Obsidian の Vault ディレクトリのファイル権限を確認します
  3. デバッグサーバーを通じて、基本的な Obsidian 操作をテストします
LaTeX コンパイルサーバーの問題

PDF を生成できない場合は、次の手順を実行してください。

  1. LaTeX サーバーが実行中かどうか確認します。

    curl http://localhost:7474/health
    
  2. 実行中でない場合は、起動します。

    cd latex-compilation-server
    docker-compose up -d
    
  3. 問題が発生した場合は、サーバーのログを確認します。

    docker-compose logs latex-server
    
  4. サーバーを再起動する必要がある場合は、次のコマンドを実行します。

    docker-compose restart latex-server
    
  5. .env ファイルに正しいサーバー URL が設定されていることを確認します。

    LATEX_SERVER_URL="http://localhost:7474"
    
高度なデバッグ

より詳しくデバッグするには、次の手順を実行してください。

  1. .env ファイルで LOG_LEVEL="DEBUG" を設定します
  2. インスペクターを使ってサーバーを実行し、詳細なログを取得します
  3. エラーメッセージと実行の流れを inspect.log で確認します
  4. debug_server.py スクリプトを使って、コンポーネントの初期化を確認します

🧩 サーバーの拡張

新しいプロンプトの追加

resume_mcp/mcp/prompts ディレクトリに新しいプロンプトファイルを作成します。

from resume_mcp.mcp.base import mcp

@mcp.prompt(name="My Custom Prompt")
def my_custom_prompt():
    return {
        "description": "Description of what this prompt does",
        "prompt": "Your prompt template here"
    }
新しいツールの追加

resume_mcp/mcp/tools ディレクトリに新しいツールファイルを作成します。

from resume_mcp.mcp.base import mcp

@mcp.tool()
def my_custom_tool(param1, param2=None):
    """Documentation for the tool.

    Args:
        param1: Description of param1
        param2: Description of param2
    """
    # Tool implementation
    return {"result": "Tool output"}
カスタムテンプレート

templates/ ディレクトリにカスタム LaTeX テンプレートを作成できます。次の点に注意してください。

  1. 必要なプレースホルダーをすべて含めます
  2. 検証ツールを使ってテストします
  3. 新しいテンプレートを使うように .env の設定を更新します

📜 ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については、LICENSE ファイルを参照してください。

コメント

MCP は初めてですか?

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

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