mcpField
M
MCP Server Implementation

MCP Server Implementation

ローカル
github.com/jalzoubi開発ツール079 週間前に更新

MCP Server Implementation について

MCP Server Implementationは、HDF5データ操作とSlurmジョブのシミュレーションに対応するPythonサーバー実装です。HTTP MCPエンドポイント経由でこれらの機能を使う用途に向いています。

主な機能

  1. 01HDF5ディレクトリの再帰的な一覧表示
  2. 02HDF5データセットとメタデータの読み取り
  3. 03Slurmジョブ送信のシミュレーション
  4. 04シミュレーションしたジョブ状態の追跡
  5. 05リクエストの非同期処理

活用シーン

  1. 01モックHDF5データセットの確認
  2. 02HDF5ファイルのメタデータ取得
  3. 03Slurmジョブ送信のシミュレーション
  4. 04シミュレーションしたジョブ状態の確認

MCP 対応

HTTP MCPエンドポイントを通じてHDF5とSlurmの機能を提供し、JSON-RPC 2.0リクエストを処理します。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

MCP サーバーの実装

名前:Jafar Alzoubi 学生 ID:A20501723

実装した機能

  • HDF5(データ)
  • Slurm(ツール)

セットアップ

  1. uv をインストールします:pip install uv
  2. 環境を作成します:uv venv
  3. 有効化します:source .venv/bin/activate
  4. 依存関係を同期します: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

コメント

MCP は初めてですか?

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

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