MCP服务器
一个用于HDF5文件操作、Slurm作业管理、硬件监控和数据压缩的模型耦合协议服务器。
服务介绍
mcp-server
作者:Zack Chaffee A20478873
一个实现 Model Coupling Protocol (MCP) 功能的服务器,用于 HDF5 文件操作和 Slurm 作业管理。
功能
HDF5 文件操作:
- 读取数据集
- 列出文件内容
Slurm 作业管理:
- 提交作业
- 检查作业状态
节点硬件操作
- 获取 CPU 信息
- 获取内存信息
- 获取磁盘信息
- 获取全面的系统信息
压缩操作
- 使用 gzip 或 zlib 压缩字符串数据
- 使用 gzip 或 zlib 压缩文件
- 解压缩数据
初始化
克隆此仓库后进入该目录:
接下来我们将创建一个虚拟环境并安装所有依赖项:
uv venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .
uv pip install -e ".[test]"
运行
启动服务器运行以下命令:
python -m src.server
这将自动在 http://localhost:8000 上启动服务器。
端点
POST /mcp: 主 MCP 请求端点GET /health: 健康检查端点
示例:
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"
}'
测试
进行测试运行:
pytest
带有覆盖率的测试:
pytest --cov=src