mcp-server
Provides access to scientific computing resources, enabling HDF5 file operations, Slurm job management, and hardware information retrieval. Facilitates data compression and decompression using gzip or zlib.
Author

zchaffee1
MIT License
Quick Info
Tools 1
Last Updated 2026-02-19
Actions
Tags
gzipzlibhdf5zchaffee1 mcpgzip zlibmcp server
mcp-server
By: Zack Chaffee A20478873
A server implementing Model Coupling Protocol (MCP) capabilities for HDF5 file operations and Slurm job management.
Features
HDF5 file operations:
- Read datasets
- List file contents
Slurm job management:
- Submit jobs
- Check job status
Node Hardware Operations
- Get CPU information
- Get memory information
- Get disk information
- Get comprehensive system information
Compression Operations
- Compress string data with gzip or zlib
- Compress files with gzip or zlib
- Decompress data
Initialization
Once you clone this reponsitory cd into it
After this hwe will create a virtual enviornment and install all dependincies:
uv venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .
uv pip install -e ".[test]"
Running
To startup the server run:
python -m src.server
This will autoclocate the server at http://localhost:8000.
Endpoints
POST /mcp: Main endpoint for MCP requestsGET /health: Health check endpoint
Examples:
import httpx
async with httpx.AsyncClient() as client:
# Read a dataset
response = await client.post("http://localhost:8000/mcp", json={
"capability": "hdf5",
"action": "read_dataset",
"parameters": {
"file_path": "/path/to/data.h5",
"dataset_path": "/path/to/dataset"
}
})
# List contents
response = await client.post("http://localhost:8000/mcp", json={
"capability": "hdf5",
"action": "list_contents",
"parameters": {
"file_path": "/path/to/data.h5",
"group_path": "/"
}
})
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "mcp/listTools",
"params": {},
"id": "1"
}'
Testing
For testing rung:
pytest
For tests with coverage:
pytest --cov=src
