# mindspore-tools-mcp
**Repository Path**: whitea133/mindspore-tools-mcp
## Basic Information
- **Project Name**: mindspore-tools-mcp
- **Description**: 一个基于 MCP 的 MindSpore 开发工具包:既能查询官方模型清单,也提供 PyTorch ↔ MindSpore 互转等跨框架辅助能力。
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-12-13
- **Last Updated**: 2026-04-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# mindspore-tools-mcp




**基于 MCP 的 MindSpore 开发工具套件**
提供官方模型清单查询、智能模型推荐、PyTorch→MindSpore API 映射、以及 **AI 安全、数据处理、训练工具** 等开发必备功能。
[English](./README.md) | [中文](./README_CN.md)
---
## ✨ 功能特性
### 🔍 官方模型检索
- `list_models` - 支持按 group/category/task/suite 或关键词过滤
- `get_model_info` - 返回单模型详情
- `mindspore://models/official` - 资源端点提供完整模型清单
### 🤖 智能模型推荐
- `recommend_models` - 根据自然语言描述智能推荐合适的模型
- 支持任务描述: "图像分类"、"文本生成"、"OCR"、"推荐系统" 等
- 支持硬件约束: ascend、gpu、cpu
- 提供推荐理由和匹配分数
- `compare_models` - 对比多个模型,帮助选择最适合的模型
### 🗺️ API 映射工具
- `query_op_mapping` - 支持 section 过滤与模糊匹配
- `diagnose_translation` - 检查 PyTorch→MindSpore 代码翻译是否完整
- `mindspore://opmap/...` - 资源暴露 PyTorch→MindSpore API 映射
### 🛡️ AI 安全工具 (NEW!)
- `generate_adversarial_attack` - 生成对抗攻击配置和示例代码
- 支持: FGSM、PGD、DeepFool、CW、JSMA
- `evaluate_model_robustness` - 评估模型鲁棒性配置
### 📊 数据处理工具 (NEW!)
- `create_data_augmentation_pipeline` - 创建数据增强流水线
- 支持: 图像分类、目标检测、语义分割、NLP
### 🔧 训练工具 (NEW!)
- `get_lr_scheduler` - 获取学习率调度器配置
- 支持: 余弦退火、阶梯衰减、多项式衰减、One Cycle
- `get_training_callbacks` - 获取训练回调函数配置
- 支持: 检查点保存、早停、TensorBoard、梯度裁剪
### 📈 分析工具 (NEW!)
- `compute_model_complexity` - 计算模型 FLOPs、参数量、内存占用
### 🌐 分布式训练 (NEW!)
- `setup_distributed_training` - 配置分布式训练
### 🚀 部署工具 (NEW!)
- `quantize_model` - 模型量化配置
- 支持: 动态量化、静态量化、量化感知训练
- `convert_model_format` - 模型格式转换配置
### 🔍 代码评分器 (NEW!)
- `lint_mindspore_code` - MindSpore 代码质量评分
- 4 个维度评分: 性能、兼容性、最佳实践、可维护性
- 26 条检查规则,自动发现问题并给出建议
- `get_lint_rules` - 获取所有检查规则列表
- `compare_code_snippets` - 对比两个代码片段的质量
### 📊 数据脚本
- `scripts/update_model_list.py` - 更新官方模型 JSON
- `scripts/fetch_api_mapping.py` - 抓取并刷新 API 映射
---
## 📦 目录结构
```
mindspore-tools-mcp/
├── data/ # 官方模型与 API 映射数据
│ ├── convert/ # 分 section 的映射分片
│ ├── mindspore_official_models.json
│ ├── pytorch_ms_api_mapping_consistent.json
│ └── pytorch_ms_api_mapping_diff.json
│
├── scripts/ # 数据/映射更新脚本
│ ├── update_model_list.py
│ └── fetch_api_mapping.py
│
├── src/
│ └── mindspore_tools_mcp/ # MCP 服务
│ ├── server.py # MCP 入口
│ ├── tools.py # 模型检索工具
│ ├── msutils_tools.py # 🆕 msutils MCP 工具封装
│ ├── linter_tools.py # 🆕 代码评分器 MCP 封装
│ ├── msutils/ # 🆕 MindSpore 开发工具库
│ │ ├── data/ # 数据处理
│ │ ├── train/ # 训练工具
│ │ ├── security/ # AI 安全
│ │ ├── eval/ # 评估指标
│ │ ├── nlp/ # NLP 工具
│ │ ├── distributed/ # 分布式训练
│ │ ├── deploy/ # 部署工具
│ │ └── analysis/ # 分析可视化
│ └── linter/ # 🆕 代码评分器核心
│ ├── __init__.py
│ ├── rules.py # 检查规则定义
│ ├── checker.py # 检查逻辑
│ └── formatter.py # 报告格式化
│ ├── resource.py # 资源定义
│ └── prompt.py # Prompt 注册
│
├── examples/ # 🆕 使用示例
├── tests/ # 测试文件
├── pyproject.toml # 项目配置
└── uv.lock # 依赖锁文件
```
---
## 🚀 快速开始
### 1️⃣ 安装依赖
```bash
uv sync
```
### 2️⃣ 启动 MCP 服务
```bash
uv run python -m mindspore_tools_mcp.server
```
### 3️⃣ 客户端配置
```jsonc
// cline_mcp_settings.json
{
"mindspore_tools_mcp": {
"command": "uv",
"args": [
"--directory",
"E:/CodeProject/mindspore-tools-mcp",
"run",
"python",
"-m",
"mindspore_tools_mcp.server"
],
"autoApprove": []
}
}
```
---
## 📖 API 参考
### 模型检索工具
| 工具名 | 说明 | 示例 |
|--------|------|------|
| `list_models` | 列出模型 | `list_models(task="text-generation")` |
| `get_model_info` | 获取模型详情 | `get_model_info("llama2")` |
| `recommend_models` | 智能模型推荐 | `recommend_models("图像分类")` |
| `compare_models` | 对比模型 | `compare_models(["resnet50", "vit"])` |
| `query_op_mapping` | 查询 API 映射 | `query_op_mapping("torch.add")` |
| `diagnose_translation` | 诊断代码翻译 | `diagnose_translation(py_code, ms_code)` |
### AI 安全工具 🆕
| 工具名 | 说明 | 示例 |
|--------|------|------|
| `generate_adversarial_attack` | 生成对抗攻击配置 | `generate_adversarial_attack("fgsm", epsilon=0.1)` |
| `evaluate_model_robustness` | 评估模型鲁棒性 | `evaluate_model_robustness(model_config)` |
### 数据处理工具 🆕
| 工具名 | 说明 | 示例 |
|--------|------|------|
| `create_data_augmentation_pipeline` | 创建数据增强流水线 | `create_data_augmentation_pipeline("image_classification")` |
### 训练工具 🆕
| 工具名 | 说明 | 示例 |
|--------|------|------|
| `get_lr_scheduler` | 获取学习率调度器 | `get_lr_scheduler("cosine_annealing", total_epochs=100)` |
| `get_training_callbacks` | 获取训练回调配置 | `get_training_callbacks(["checkpoint", "early_stopping"])` |
### 分析工具 🆕
| 工具名 | 说明 | 示例 |
|--------|------|------|
| `compute_model_complexity` | 计算模型复杂度 | `compute_model_complexity("resnet50")` |
### 分布式训练 🆕
| 工具名 | 说明 | 示例 |
|--------|------|------|
| `setup_distributed_training` | 配置分布式训练 | `setup_distributed_training(num_gpus=8)` |
### 部署工具 🆕
| 工具名 | 说明 | 示例 |
|--------|------|------|
| `quantize_model` | 模型量化配置 | `quantize_model("dynamic", precision="int8")` |
| `convert_model_format` | 模型格式转换 | `convert_model_format("pytorch", "mindspore")` |
### 代码评分器 🆕
| 工具名 | 说明 | 示例 |
|--------|------|------|
| `lint_mindspore_code` | 代码质量评分 | `lint_mindspore_code(code, level="all")` |
| `get_lint_rules` | 获取检查规则 | `get_lint_rules(category="performance")` |
| `compare_code_snippets` | 对比代码质量 | `compare_code_snippets(code_a, code_b)` |
### 资源列表
| 资源名 | 说明 |
|--------|------|
| `mindspore://models/official` | 官方模型完整清单 |
| `mindspore://opmap/pytorch/consistent` | 一致 API 映射 |
| `mindspore://opmap/pytorch/diff` | 差异 API 映射 |
### Prompt 列表
| Prompt 名 | 说明 |
|-----------|------|
| `model_lookup` | 按任务查找模型 |
| `model_recommend` | 智能模型推荐 |
| `model_compare` | 模型对比 |
| `migration_guide` | 迁移指南 |
| `performance_optimize` | 性能优化建议 |
---
## 💡 使用示例
### 智能模型推荐
```python
# 推荐"图像分类"模型
recommend_models("图像分类", limit=3)
# 返回: resnet18, resnet34, resnet50 (带推荐理由和性能指标)
# 推荐支持 Ascend 的文本生成模型
recommend_models("文本生成大模型", hardware="ascend", limit=3)
# 返回: llama2, qwen, baichuan2
# OCR 模型推荐
recommend_models("OCR文字识别", limit=5)
# 返回: dbnet_resnet18, dbnet_resnet50, ...
```
### AI 安全对抗攻击 🆕
```python
# 生成 FGSM 攻击配置
generate_adversarial_attack("fgsm", epsilon=0.1)
# 返回: 攻击配置 + MindSpore 示例代码
# 生成 PGD 攻击配置
generate_adversarial_attack("pgd", epsilon=0.3, num_iterations=40)
# 返回: 迭代攻击配置 + 代码示例
```
### 数据增强流水线 🆕
```python
# 创建图像分类增强流水线
create_data_augmentation_pipeline("image_classification")
# 返回: 增强方法列表 + MindSpore Dataset 代码
# 创建 NLP 数据增强
create_data_augmentation_pipeline("nlp", augmentations=["RandomDelete", "SynonymReplace"])
```
### 学习率调度 🆕
```python
# 余弦退火调度
get_lr_scheduler("cosine_annealing", total_epochs=100, warmup_epochs=5)
# 返回: 调度器配置 + 学习率曲线 + MindSpore 代码
```
### 模型复杂度分析 🆕
```python
# 分析 ResNet50 复杂度
compute_model_complexity("resnet50")
# 返回: FLOPs=4.12G, Params=25.6M, Memory=98MB
```
### 模型量化 🆕
```python
# 动态量化配置
quantize_model("dynamic", precision="int8")
# 返回: 量化配置 + MindSpore 代码 + 预期加速比
# 静态量化配置
quantize_model("static", precision="int8", calibration_dataset_size=100)
```
### 代码评分器 🆕
```python
# 检查代码质量
code = '''
import mindspore as ms
from mindspore import nn
class Net(nn.Cell):
def __init__(self):
super().__init__()
self.conv = nn.Conv2d(3, 64, 3)
'''
result = lint_mindspore_code(code)
# 返回: score=85, grade="B", dimensions={...}, issues=[...]
# 对比两个代码
compare_code_snippets(good_code, bad_code)
# 返回: winner, score差异, 问题差异
```
---
## 📊 msutils 模块说明
`msutils` 是集成在项目中的 MindSpore 开发工具库,包含以下模块:
| 模块 | 功能 | 文件数 | 代码行数 |
|------|------|--------|---------|
| `data/` | 数据增强、加载器、变换 | 4 | 1,173 |
| `train/` | 回调函数、学习率调度器 | 3 | 976 |
| `security/` | 对抗攻击、防御、鲁棒性评估 | 4 | 855 |
| `eval/` | 评估指标 | 2 | 516 |
| `nlp/` | 文本增强、分词器 | 3 | 849 |
| `distributed/` | DDP 工具 | 2 | 398 |
| `deploy/` | 模型转换、量化 | 3 | 315 |
| `analysis/` | 复杂度分析、可视化 | 3 | 454 |
| **总计** | | **25** | **5,664** |
---
## 🔍 代码评分器 (Linter)
`linter` 模块提供 MindSpore 代码质量评分功能,帮助开发者发现代码问题并给出改进建议。
### 评分维度
| 维度 | 权重 | 说明 |
|------|------|------|
| ⚡ 性能 | 30% | 循环内创建对象、未使用混合精度等 |
| 🔌 兼容性 | 25% | PyTorch API 使用、废弃 API、Ascend 优化 |
| ✨ 最佳实践 | 25% | 随机种子、学习率调度、检查点、梯度裁剪 |
| 🔧 可维护性 | 20% | 函数长度、代码重复、文档字符串 |
### 检查规则
| 类别 | 规则数 | 示例 |
|------|--------|------|
| 性能规则 | 6 | 循环内创建优化器、未启用 AMP |
| 兼容性规则 | 5 | 使用 torch API、废弃 API |
| 最佳实践 | 7 | 未设置种子、未使用检查点 |
| 可维护性 | 5 | 函数过长、缺少文档 |
| **总计** | **26** | |
### 评分等级
| 等级 | 分数范围 | 说明 |
|------|---------|------|
| A | 90-100 | 优秀,代码质量很高 |
| B | 80-89 | 良好,有少量可改进之处 |
| C | 70-79 | 一般,建议优化 |
| D | 60-69 | 较差,需要改进 |
| F | 0-59 | 不合格,存在严重问题 |
---
## 🤝 贡献
欢迎提交 Issue 和 Pull Request!
---
## 📝 许可
MIT License - 详见 LICENSE 文件
---
## 👤 作者
- **GitHub**: [@whitea133](https://github.com/whitea133)
- **邮箱**: 1309848726@qq.com
---
## 🙏 致谢
- [MindSpore](https://www.mindspore.cn/) - 华为全场景深度学习框架
- [MCP](https://modelcontextprotocol.io/) - Model Context Protocol
---
**如果这个项目对你有帮助,请给我们一个 ⭐**