Leave Management MCP Server について
Excel ワークブックの従業員休暇データを読み取り、検索や分析に使う Python 製 MCP サーバーです。所定のシートと列を備えた休暇管理表を使う組織向けです。
主な機能
- 01Excel の休暇記録の読み込み
- 02従業員の休暇詳細の検索
- 03休暇記録の分析
活用シーン
- 01当日の休暇者の確認
- 02従業員の休暇残数の確認
- 03月ごとの休暇記録の一覧
MCP 対応
ワークブックの休暇データを検索・分析するツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
休暇管理 MCP サーバー
このリポジトリには、組織の従業員の休暇を管理するための Model Context Protocol(MCP)サーバーが含まれています。このサーバーは、従業員の休暇データを含む Excel ワークブックと連携し、休暇記録を検索・分析するためのツールを提供します。
目次
前提条件
- Python 3.9+
- UV パッケージマネージャー
- Claude Desktop(または別の MCP クライアント)
- 休暇データを含む Excel ワークブック
プロジェクト構成
leave-management-mcp/
├── src/
│ ├── __init__.py
│ ├── config.py # Configuration settings
│ ├── leave_server.py # Main MCP server
│ ├── data_manager.py # Data processing module
│ └── models/
│ ├── __init__.py
│ └── employee.py # Employee data models
├── data/
│ └── leave_tracker.xlsx # Excel workbook with leave data
├── main.py # Entry point wrapper
├── __init__.py # Root package marker
├── requirements.txt # Dependencies
└── README.md # Project documentation
インストール
- このリポジトリをクローンします。
git clone https://github.com/ItsMistahJi/itsmistahji-leave-management-mcp.git
cd leave-management-mcp
- UV で Python 環境をセットアップします。
pip install uv
uv init .
- 依存関係をインストールします。
uv add "mcp[cli]" pandas openpyxl python-dotenv PyPDF2
設定
- プロジェクトのルートに
.envファイルを作成します。
DATA_DIR=/path/to/your/data/directory
EXCEL_FILE=/path/to/your/data/directory/leave_tracker.xlsx
SERVER_NAME=LeaveManagement
DEBUG_MODE=True
- Excel ワークブックが正しい構成になっていることを確認します。
- 「Leaves-2025」という名前のシート(または
data_manager.pyを変更してシート名を指定します) - 「Sl No」「Name」「EMP ID」「Location」の列と、月名(「Jan」「Feb」など)の列
- 「Leaves-2025」という名前のシート(または
サーバーの実行
ローカル開発環境でのテスト
# Test the server locally
uv run python -m src.leave_server
# Install in Claude Desktop for testing
uv run mcp install src/leave_server.py --name "Leave Management"
VS Code との統合
この設定を VS Code の設定に追加します。
"mcpServers": {
"LeaveManagement": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli],pandas,openpyxl,python-dotenv,PyPDF2",
"mcp",
"run",
"/path/to/leave-management-mcp/src/leave_server.py"
]
}
}
[
注: /path/to/leave-management-mcp を実際のプロジェクトパスに置き換えてください。
トラブルシューティング
「No module named 'src'」エラー
このエラーは、Python がモジュール検索パス内で「src」パッケージを見つけられない場合に発生します。
解決方法:
__init__.pyファイルを追加して、src を適切なパッケージにします。
touch __init__.py
touch src/__init__.py
touch src/models/__init__.py
- サーバースクリプト(leave_server.py)を変更して、パスを含めます。
import sys
import os
sys.path.insert(0, os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
- ルートディレクトリにある main.py ラッパーを使用します。
import sys
import os
sys.path.insert(0, os.path.abspath('.'))
from src.leave_server import mcp
if __name__ == "__main__":
mcp.run()
「No module named 'pandas'」エラー
このエラーは、サーバーの実行環境に pandas がインストールされていない場合に発生します。
解決方法:
- すべての依存関係が同じ環境にインストールされていることを確認します。
uv add pandas openpyxl python-dotenv PyPDF2
- サーバーの実行時に
--withフラグを使用します。
uv run --with "mcp[cli],pandas,openpyxl,python-dotenv,PyPDF2" mcp run src/leave_server.py
Excel データの読み込みに関する問題
Excel データで検証エラーが発生する場合は、次の点を確認してください。
data_manager.pyのload_data関数を確認し、Excel の構成に合わせて変更します- シート名が Excel ファイルと一致していることを確認します
- 列名を確認し、NaN 値を適切に処理します
クエリの例
サーバーの起動後、Claude に次のように質問できます。
- 「今日、休暇中の人は誰ですか?」
- 「従業員 12345 の休暇残日数を見せてください」
- 「4 月に休暇を取得する従業員をすべて一覧表示してください」
- 「Arun S の休暇の詳細を取得してください」
- 「Jeeva Rao が 3 月に休暇を取得したのはいつですか?」
デバッグ用ログの確認
- Claude Desktop のログ:
- macOS:
~/Library/Logs/Claude/mcp.log - Windows:
%APPDATA%\Claude\logs\mcp.log
- macOS:
- print 文: サーバーコード内の
print()文の出力はログに表示されます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。