Skip to main content
Glama

MCP Server

by jalzoubi

MCP Server Implementation

Name: Jafar Alzoubi Student ID: A20501723

Implemented Capabilities

  • HDF5 (Data)
  • Slurm (Tool)

Setup

  1. Install uv: pip install uv
  2. Create environment: uv venv
  3. Activate: source .venv/bin/activate
  4. Sync dependencies: uv sync

Running Server

uvicorn src.server:app --reload

Running Tests

pytest tests/

Assumptions

  • HDF5 mock data stored in mock_data/hdf5
  • Slurm 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: PASSED tests/test_slurm.py: PASSED

Ran 13 tests in 0.42s OK

-
security - not tested
F
license - not found
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

A JSON-RPC 2.0 compliant server that enables interaction with HDF5 data files and Slurm job scheduling through standardized API endpoints.

  1. Implemented Capabilities
    1. Setup
      1. Running Server
        1. Running Tests
          1. Assumptions
            1. Those can be run induvidule and they work fine
              1. HDF5 Operations
              2. Slurm Operations
            2. Run all tests
              1. Run specific capability tests
                1. Generate coverage report
                  1. Implementation Details
                  2. Slurm Handler
                  3. Missing dependencies:
                  4. Requirements Met
                  5. Sample Test Output

                Related MCP Servers

                • -
                  security
                  F
                  license
                  -
                  quality
                  A FastAPI-based JSON-RPC 2.0 server implementation that enables users to work with HDF5 files, submit Slurm jobs, retrieve CPU information, and visualize CSV data through standardized API endpoints.
                  Last updated -
                  Python
                  • Linux
                • -
                  security
                  A
                  license
                  -
                  quality
                  A server implementing Model Coupling Protocol for HDF5 file operations, Slurm job management, hardware monitoring, and data compression.
                  Last updated -
                  Python
                  MIT License
                • -
                  security
                  F
                  license
                  -
                  quality
                  A JSON-RPC server that simplifies managing KVM virtual machines by providing a centralized interface for VM lifecycle, networking, storage, and display management tasks.
                  Last updated -
                  3
                  Python
                  • Linux

                View all related MCP servers

                MCP directory API

                We provide all the information about MCP servers via our MCP API.

                curl -X GET 'https://glama.ai/api/mcp/v1/servers/jalzoubi/mcp-server'

                If you have feedback or need assistance with the MCP directory API, please join our Discord server