MCP Server Implementation について
MCP Server Implementationは、HDF5データ操作とSlurmジョブのシミュレーションに対応するPythonサーバー実装です。HTTP MCPエンドポイント経由でこれらの機能を使う用途に向いています。
主な機能
- 01HDF5ディレクトリの再帰的な一覧表示
- 02HDF5データセットとメタデータの読み取り
- 03Slurmジョブ送信のシミュレーション
- 04シミュレーションしたジョブ状態の追跡
- 05リクエストの非同期処理
活用シーン
- 01モックHDF5データセットの確認
- 02HDF5ファイルのメタデータ取得
- 03Slurmジョブ送信のシミュレーション
- 04シミュレーションしたジョブ状態の確認
MCP 対応
HTTP MCPエンドポイントを通じてHDF5とSlurmの機能を提供し、JSON-RPC 2.0リクエストを処理します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバーの実装
名前:Jafar Alzoubi 学生 ID:A20501723
実装した機能
- HDF5(データ)
- Slurm(ツール)
セットアップ
- uv をインストールします:
pip install uv - 環境を作成します:
uv venv - 有効化します:
source .venv/bin/activate - 依存関係を同期します:
uv sync
サーバーの実行
uvicorn src.server:app --reload
テストの実行
pytest tests/
前提条件
- HDF5 のモックデータは
mock_data/hdf5に保存されています - Slurm のシミュレーションではローカルの echo コマンドを使用します
以下は個別に実行でき、正常に動作します
HDF5 の操作
curl -X POST "http://127.0.0.1:8000/mcp"
-H "Content-Type: application/json"
-d '{
"jsonrpc": "2.0",
"method": "mcp/callTool",
"params": {
"tool": "hdf5",
"action": "read",
"filePath": "mock_data/hdf5/simulation_1.h5",
"dataset": "temperature"
},
"id": 1
}'
Slurm の操作
curl -X POST "http://127.0.0.1:8000/mcp"
-H "Content-Type: application/json"
-d '{
"jsonrpc": "2.0",
"method": "mcp/callTool",
"params": {
"tool": "slurm",
"action": "submit",
"script": "analysis.sh",
"cores": 8
},
"id": 2
}'
すべてのテストを実行
pytest tests/
特定の機能のテストを実行
pytest tests/test_hdf5.py -v pytest tests/test_slurm.py -v
カバレッジレポートを生成
pytest --cov=src
project-root/ ├── mock_data/ │ ├── hdf5/ │ │ ├── simulation_1.h5 │ │ └── simulation_2.h5 │ └── slurm/ │ ├── job_scripts/ │ └── job_status.json
実装の詳細
HDF5 ハンドラー ファイル操作に h5py ライブラリを使用します
モックデータのパス:./mock_data/hdf5/
サポートされている操作:
list:ディレクトリを再帰的に一覧表示します
read:shape/dtype 情報とともにデータセットを取得します
metadata:ファイルレベルのメタデータ
Slurm ハンドラー
subprocess を使ってジョブの送信をシミュレートします
モック機能:
UUID ベースのジョブ ID を生成します
メモリ内でジョブのステータスを追跡します
キューイング/実行中/完了の状態をシミュレートします
トラブルシューティング
よくある問題: lsof -i :8000 kill -9
依存関係の不足:
uv pip install --force-reinstall -r requirements.txt
要件の達成状況
✅ 2 つの機能を実装(HDF5 + Slurm)
✅ JSON-RPC 2.0 に完全準拠
✅ 両方の機能についてテストカバレッジ 100%
✅ 適切なエラー処理と応答
✅ 非同期リクエスト処理
テスト出力例
tests/test_hdf5.py::test_read_dataset PASSED tests/test_slurm.py::test_job_submission PASSED
13 件のテストを 0.42 秒で実行 OK
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。