Resume MCP Server について
Resume MCP Serverは、求職者が職務記述に合わせてベースの履歴書を調整し、MarkdownまたはLaTeX/PDF形式で出力できるサーバーです。キャリア相談、テンプレート検証、オプションのObsidian保管庫へのアクセスにも対応します。
主な機能
- 01職務記述に合わせた履歴書の調整
- 02調整した履歴書のMarkdown保存
- 03LaTeXおよびPDFの生成
- 04Obsidianファイルの検索と読み取り
- 05キャリア相談と履歴書へのフィードバック
活用シーン
- 01応募職種に合わせた履歴書の調整
- 02調整済み履歴書のPDF作成
- 03Obsidian保管庫で履歴書情報を検索
- 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変数を設定してください。
- Obsidian を使用しない場合は、ファイルシステム上の任意のディレクトリを使用できます。その場合は、
⚙️ インストール
-
リポジトリをクローンします。
git clone https://github.com/yourusername/resume-mcp.git cd resume-mcp -
必要な Python 依存関係をインストールします。
pip install -r requirements.txt # Or using uv (recommended for better dependency resolution) uv pip install -e . -
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 -
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 サーバーの使用
このサーバーは、履歴書のカスタマイズに使える複数のプロンプトとツールを提供します。
プロンプト
サーバーを利用する最も簡単な方法は、用意されているプロンプトを使うことです。
- CV のカスタマイズ - 求人情報に基づいて履歴書をカスタマイズします
- キャリアガイダンス - キャリアに関するアドバイスや履歴書へのフィードバックを得られます
これらのプロンプトを使用するには、システム内にテンプレートを用意し、.env ファイルで設定する必要があります。
また、必要な入力を尋ねるようにプロンプトを変更することもできます。さらに、MCP ツールを使って、基本となる履歴書や求人情報など、関連情報を含むファイルにアクセスすることもできます。
ツール
-
管理ツール:
list_templates:利用可能なテンプレートを一覧表示しますget_baseline_resume:基本となる履歴書を取得します
-
検証ツール:
validate_latex_template:LaTeX テンプレートが有効かどうかを確認しますcheck_latex_server:LaTeX コンパイルサーバーが利用可能かどうかを確認しますcheck_latex_server_status:LaTeX サーバーの詳細な状態を取得しますstart_latex_server_help:LaTeX サーバーの起動手順を取得します
-
Obsidian ツール:
search_obsidian:Obsidian ボルト内のファイルを検索しますread_obsidian_file:Obsidian ファイルの内容を読み込みます
-
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 やその依存関係をローカルにインストールする必要はありません
仕組み:
- MCP サーバーが LaTeX の内容をコンテナ化された HTTP サービスに送信します
- サービスが分離された環境でドキュメントをコンパイルします
- コンパイルされた PDF が MCP サーバーに返されます
- 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 コンパイルサービスを使用しています。
- 分離:LaTeX のコンパイルプロセスは Docker コンテナ内で実行され、ホストシステムから分離されています
- シェルコマンドなし:MCP サーバーがシェルコマンドを直接実行することはないため、コマンドインジェクションの可能性を防ぎます
- サンドボックス環境:LaTeX コードは、権限が制限された制御環境で実行されます
- API ベースの通信:すべての通信は、シェル実行ではなく、明確に定義された HTTP API を介して行われます
- ステートレスな処理:ファイルはコンパイル後、コンテナ内に保持されません
このアーキテクチャにより、悪意のある LaTeX ドキュメントが送信されたとしても、ホストシステムにアクセスしたり、影響を与えたりすることはできません。
📄 テンプレートファイル
基本の履歴書
カスタマイズ版を作成する際のベースとなる、Markdown 形式の履歴書です。このプロジェクトには、情報を編集できるサンプルの基本履歴書が含まれています。
LaTeX テンプレート
プロフェッショナルな PDF を生成するための LaTeX テンプレートです。テンプレートには、カスタマイズした履歴書の対応するセクションに置き換えられる必須のプレースホルダー($name、$profile、$technical_skills など)を含める必要があります。
📚 ワークフローの例
templates/baseline_resume.mdに基本の履歴書を用意しますtemplates/latex_template.texで LaTeX テンプレートを設定します- LaTeX コンパイルサーバーを起動します:
cd latex-compilation-server docker-compose up -d cd .. - MCP サーバーを実行します:
python main.py - MCP クライアント(統合された LLM など)で接続します
- 「Tailor CV」プロンプトに求人情報を送信します
- CV ツールを使用して LaTeX/PDF 版を生成します
- カスタマイズした履歴書を確認して活用します!
🔍 トラブルシューティング
よくある問題と解決策
LaTeX テンプレートの問題
LaTeX テンプレートにプレースホルダーが不足しているという警告が表示された場合は、$name、$profile、$technical_skills など、必須のフィールドがすべて含まれていることを確認してください。
初期化の問題
RuntimeError: Received request before initialization was complete が発生した場合:
- コンポーネントをインポートした後に少し待機する時間を追加します
resume_mcp/mcp/__init__.pyのインポート構造を確認し、すべてのコンポーネントが正しくインポートされていることを確認します- デバッグサーバーを実行して、具体的な問題を特定します:
python debug_server.py
MCP 接続の問題
クライアントがサーバーに接続できない場合:
- stdio トランスポートが正しく動作していることを確認します
- 必須のコンポーネントがすべてインポートされていることを確認します
- インスペクターを使って詳細なログを確認します:
./inspect.sh
Obsidian 連携の問題
Obsidian との連携が機能しない場合は、次の点を確認してください。
.envファイルのOBSIDIAN_VAULTパスを確認します- Obsidian の Vault ディレクトリのファイル権限を確認します
- デバッグサーバーを通じて、基本的な Obsidian 操作をテストします
LaTeX コンパイルサーバーの問題
PDF を生成できない場合は、次の手順を実行してください。
-
LaTeX サーバーが実行中かどうか確認します。
curl http://localhost:7474/health -
実行中でない場合は、起動します。
cd latex-compilation-server docker-compose up -d -
問題が発生した場合は、サーバーのログを確認します。
docker-compose logs latex-server -
サーバーを再起動する必要がある場合は、次のコマンドを実行します。
docker-compose restart latex-server -
.envファイルに正しいサーバー URL が設定されていることを確認します。LATEX_SERVER_URL="http://localhost:7474"
高度なデバッグ
より詳しくデバッグするには、次の手順を実行してください。
.envファイルでLOG_LEVEL="DEBUG"を設定します- インスペクターを使ってサーバーを実行し、詳細なログを取得します
- エラーメッセージと実行の流れを
inspect.logで確認します 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 テンプレートを作成できます。次の点に注意してください。
- 必要なプレースホルダーをすべて含めます
- 検証ツールを使ってテストします
- 新しいテンプレートを使うように
.envの設定を更新します
📜 ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については、LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。