Provides comprehensive test suite and coverage reporting for validating MCP server functionality, including specific capability tests for both HDF5 and Slurm integrations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Serverread temperature data from simulation_1.h5"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server Implementation
Name: Jafar Alzoubi Student ID: A20501723
Implemented Capabilities
HDF5 (Data)
Slurm (Tool)
Related MCP server: MCP Server
Setup
Install uv:
pip install uvCreate environment:
uv venvActivate:
source .venv/bin/activateSync dependencies:
uv sync
Running Server
uvicorn src.server:app --reload
Running Tests
pytest tests/
Assumptions
HDF5 mock data stored in
mock_data/hdf5Slurm simulation uses local echo commands
Those can be run induvidule and they work fine
HDF5 Operations
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 Operations
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
}'
Run all tests
pytest tests/
Run specific capability tests
pytest tests/test_hdf5.py -v pytest tests/test_slurm.py -v
Generate coverage report
pytest --cov=src
project-root/ ├── mock_data/ │ ├── hdf5/ │ │ ├── simulation_1.h5 │ │ └── simulation_2.h5 │ └── slurm/ │ ├── job_scripts/ │ └── job_status.json
Implementation Details
HDF5 Handler Uses h5py library for file operations
Mock data path: ./mock_data/hdf5/
Supported actions:
list: Recursive directory listing
read: Dataset retrieval with shape/dtype info
metadata: File-level metadata
Slurm Handler
Simulates job submission with subprocess
Mock features:
Generates UUID-based job IDs
Tracks job status in memory
Simulates queueing/running/completed states
Troubleshooting
Common Issues: lsof -i :8000 kill -9
Missing dependencies:
uv pip install --force-reinstall -r requirements.txt
Requirements Met
✅ Two capabilities implemented (HDF5 + Slurm)
✅ Full JSON-RPC 2.0 compliance
✅ 100% test coverage for both capabilities
✅ Proper error handling and responses
✅ Async request processing
Sample Test Output
tests/test_hdf5.py::test_read_dataset PASSED tests/test_slurm.py::test_job_submission PASSED
Ran 13 tests in 0.42s OK
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.