使用说明
MCP服务器实现
名字贾法尔·阿尔祖比 学号:A20501723
已实现的能力
- HDF5(数据)
- Slurm(工具)
设置
- 安装紫外线:
pip install uv - 创建环境:
uv venv - 激活
source .venv/bin/activate - 同步依赖关系:
uv sync
正在运行的服务器
uvicorn src.server:app --reload
运行测试
pytest tests/
假设
- HDF5模拟数据存储在
mock_data/hdf5 - Slurm模拟使用本地回声命令
这些都可以用induvidule运行,而且效果很好
HDF5运营
卷曲-X POST”http://127.0.0.1:8000/mcp"
-H“内容类型:应用程序/json”
d
“jsonrpc”:“2.0”,
“方法”:“mcp/callTool”,
“参数”:{
“工具”:“hdf5”,
“action”:“read”,
“filePath”:“mock_data/hdf5/simulation_1.h5”,
“数据集”:“温度”
},
“id”:1
}'
泥浆作业
卷曲-X POST”http://127.0.0.1:8000/mcp"
-H“内容类型:应用程序/json”
d
“jsonrpc”:“2.0”,
“方法”:“mcp/callTool”,
“参数”:{
“工具”:“诽谤”,
“动作”:“提交”,
“脚本”:“analysis.sh”,
“核心”:8
},
“id”:2
}'
运行所有测试
pytest测试/
运行特定的能力测试
pytest测试/test_hdf5.py-v pytest测试/test_slurm.py-v
生成覆盖率报告
请求 --cov=src
项目根/ ├── 模拟数据/ │ ├── hdf5/ │ │ ├── 模拟1.h5 │ │ └── 模拟2.h5 │ └── 泥浆/ │ ├── job_scripts/ │ └── job_status.json
实现细节
HDF5处理器 使用h5py库进行文件操作
模拟数据路径:。/mock_data/hdf5/
支持的操作:
list:递归目录列表
read:使用shape/dtype信息检索数据集
元数据:文件级元数据
Slurm处理器
使用子流程模拟作业提交
模拟功能:
生成基于UUID的作业ID
跟踪内存中的作业状态
模拟排队/运行/完成状态
故障排除
常见问题: 上一篇:8000 杀-9
缺少依赖项:
uv pip安装--强制重新安装-r要求.txt
满足要求
✅ 实现了两个功能(HDF5+Slurm)
✅ 完全符合JSON-RPC 2.0标准
✅ 两种功能的测试覆盖率均为100%
✅ 正确的错误处理和响应
✅ 异步请求处理
样本测试输出
tests/test_hdf5.py::test_read_dataset已通过 tests/test_slurm.py::test_job_submission已通过
在0.42s内进行了13次测试 好的