Token导航 LogoToken导航TokenDH.com
MMI Architecture Analyzer logo
运维云端未说明官方级别未说明来源级核验

MMI Architecture Analyzer

MCP Server

一个用于分析.NET/C#项目架构质量的工具,基于MMI框架,支持分层、封装、抽象级别和循环依赖的自动化分析和可视化。

工具数

9

提示词数

0

GitHub Stars

0

资源数

0
代码质量C#CursorCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

lady-logic

提供方

lady-logic

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

MMI架构分析器

模型上下文协议(MCP)服务器,用于使用Carola Lilienthal的MMI(模块化成熟度指数)框架分析C#项目架构质量。

概述

此MCP服务器提供自动分析。NET/C#项目评估Carola Lilienthal MMI框架中四个关键维度的架构质量:

  • 维度2:分层 -验证清洁架构层依赖关系
  • 尺寸5:封装 -分析公共类型可见性与内部类型可见性
  • 维度8:抽象层次 -检测业务逻辑与技术细节的混合
  • 维度9:循环依赖关系 -使用Tarjan算法识别依赖循环

特性

令牌优化报告:紧凑模式将令牌使用量减少66%\ 交互式热图:D3.js可视化与循环检测\ 增量分析:文件哈希缓存,监控速度提高70%\ 实时监控:实时分析和趋势跟踪\ 循环检测:基于图形的循环依赖性分析,带有视觉突出显示

安装

先决条件

  • Node.js 18或更高版本
  • 光标IDE

设置

  1. 克隆此存储库:
git clone https://github.com/lady-logic/mmi-analyzer.git
cd mmi-analyzer
  1. 安装依赖项:
npm install
  1. 在游标中配置:

添加到光标MCP设置(~/.cursor/config.json 或通过设置→ MCP):

{
  "mcpServers": {
    "mmi-analyzer": {
      "command": "node",
      "args": ["C:/path/to/mmi-analyzer/src/server.js"]
    }
  }
}

注: 使用绝对路径。在Windows上,使用正斜杠。

  1. 重新启动游标

用法

MMI分析仪提供七种工具,可通过Cursor的AI助手访问:

1.完成MMI分析

analyze_mmi(projectPath: "D:/Projects/MyApp")
analyze_mmi(projectPath: "D:/Projects/MyApp", mode: "detailed")  // Full report

运行所有四维分析,并提供总体架构质量评分。

2.交互式建筑热图

visualize_architecture(projectPath: "D:/Projects/MyApp")

生成D3.js可视化,显示:

  • 按质量分数着色的节点文件(绿色=优秀,红色=关键)
  • 依赖关系作为链接(灰色=正常,红色=违规,粉色=循环)
  • 循环依赖的动画脉冲
  • 按层或周期进行交互式过滤
  • 点击节点查看详细问题

3.循环依赖性分析

analyze_cycles(projectPath: "D:/Projects/MyApp")
analyze_cycles(projectPath: "D:/Projects/MyApp", mode: "detailed")

检测整个项目中的循环依赖关系:

  • 使用graphlib的Tarjan算法进行循环检测
  • 分析所有C#依赖关系(使用语句)
  • 严重性分类:

- 🔴 关键的:循环中涉及的域层 - 🟠 :双向循环依赖 - 🟡 中等:循环3-4个文件 - 🔵 :循环中有5+个文件

  • 显示完整的循环路径

4.实时监控

start_monitoring(projectPath: "D:/Projects/MyApp")
get_monitoring_status()
stop_monitoring(projectPath: "D:/Projects/MyApp")

手表 .cs 文件,并通过趋势可视化自动分析变化。

5.分层分析

analyze_layering(projectPath: "D:/Projects/MyApp")

检测清洁架构违规(例如,域取决于基础架构)。

6.封装分析

analyze_encapsulation(projectPath: "D:/Projects/MyApp")

标识应为内部的过度暴露类型。

7.抽象层次分析

analyze_abstraction(projectPath: "D:/Projects/MyApp")

发现业务逻辑与技术细节(SQL、HTTP、文件I/O)的混合。

报告模式

压缩模式(默认)

  • 令牌优化输出(减少约66%)
  • 分组违规
  • 简明建议
  • 非常适合快速检查和监控

详细模式

  • 完整违规列表
  • 代码示例
  • 综合表格
  • 非常适合记录和深入分析

输出示例

# Complete MMI Analysis Report

Overall MMI Score: 4.2/5 (Gut)

## MMI Scorecard
| Dimension              | Score | Level      | Status |
|------------------------|-------|------------|--------|
| Layering               | 5/5   | Exzellent  | ✅     |
| Encapsulation          | 4/5   | Gut        | ✅     |
| Abstraction Levels     | 3/5   | Akzeptabel | 🟡     |
| Circular Dependencies  | 5/5   | Exzellent  | ✅     |

## 🎯 Priority Actions
1. **Fix abstraction mixing** - Remove SQL queries from Domain layer

热图可视化

交互式热图提供实时视觉反馈:

颜色编码:

  • 🟢 绿色:优秀(4.5-5.0)
  • 🔵 蓝色:良好(3.5-4.5)
  • 🟠 橙色:可接受(2.5-3.5)
  • 🔴 红色:严重(\<2.5)
  • 🟣 粉红色:循环依赖

交互功能:

  • 拖动节点以重新排列
  • 缩放和平移
  • 按层或周期过滤
  • 点击节点查看详细问题
  • 动画粉红色脉冲链接显示循环

建筑

mmi-analyzer/
├── src/
│   ├── server.js              # MCP server implementation
│   ├── config/
│   │   └── report-config.js   # Report mode configuration
│   ├── analyzers/
│   │   ├── layering.js        # Dimension 2: Layer dependencies
│   │   ├── encapsulation.js   # Dimension 5: Type visibility
│   │   ├── abstraction.js     # Dimension 8: Abstraction mixing
│   │   └── cycle-analyzer.js  # Dimension 9: Circular dependencies
│   ├── formatters/            # Report formatters (compact/detailed)
│   │   ├── cycle-formatter.js # Cycle-specific formatting
│   │   └── combined-formatter.js # 4D MMI reports
│   ├── monitoring/            # File watching & history
│   ├── visualizations/        # Heatmap generator with cycle viz
│   └── utils/
│       └── file-cache.js      # Hash-based caching
├── package.json
└── README.md

评分系统

MMI分数(0-5):

  • 5 - 优秀:最先进的建筑
  • 4-勇气:强大的架构,需要小幅改进
  • 3、可接受:基础扎实,建议进行一些重构
  • 2、值得改进:重大技术债务
  • 1、不好:需要进行重大重构
  • 0、批评:架构从根本上被打破

循环评分:

  • 0个周期=5分
  • 循环中\<1%的文件=4分
  • \<3%的文件循环=3分
  • \<5%的文件循环=2分
  • \<10%的文件循环=1分
  • 循环中≥10%的文件=0分

演出

  • 紧凑型报告:约2400个代币(详细信息为7000个)
  • 监控:仅分析更改的文件(减少70%)
  • 缓存:基于MD5哈希的文件跟踪
  • 循环检测:O(V+E)使用Tarjan的SCC算法
  • 分析:全扫描,后续:增量扫描

打破循环

当检测到循环依赖关系时,该工具会建议解决策略:

  1. 依赖倒置 -介绍接口
  2. 事件驱动架构 -使用消息总线(例如MassTransit)
  3. 提取常见依赖关系 -创建共享模块
  4. 合并组件 -组合人工分隔的代码
  5. 反腐败层 -添加翻译层

故障排除

服务器未连接

  1. 检查Cursor配置中的绝对路径
  2. 验证Node.js版本: node --version (需要18+)
  3. 检查日志: mmi-analyzer.log 在服务器目录中

无分析结果

  • 确保项目路径包含 .cs 文件
  • 验证项目是否遵循文件夹结构(Domain/, Application/, Infrastructure/)

缓存问题

  • 删除 .mmi-cache.json 在项目根源上迫使全面重新分析

未检测到循环

  • 确保文件正确 namespace 声明
  • 检查一下 using 语句引用项目命名空间
  • 多个文件可以共享同一命名空间(受支持)

贡献

欢迎投稿!这是一个学习MCP服务器开发的实验工具。

许可证

麻省理工学院

参考文献

______________________________________________________________________

状态:实验性| 版本: 0.4.0

目录标签

目录标签

代码质量C#Cursor架构分析JavaScript本地部署自动化工具可视化分析

支持客户端

Cursor

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明nonelocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP