Skip to main content
Glama
lady-logic

MMI Architecture Analyzer

by lady-logic

MMI Architecture Analyzer

Model Context Protocol (MCP) server for analyzing C# project architecture quality using the MMI (Modularity Maturity Index) framework by Carola Lilienthal.

Overview

This MCP server provides automated analysis of .NET/C# projects to assess architecture quality across four critical dimensions from Carola Lilienthal's MMI framework:

  • Dimension 2: Layering - Validates Clean Architecture layer dependencies

  • Dimension 5: Encapsulation - Analyzes public vs internal type visibility

  • Dimension 8: Abstraction Levels - Detects mixing of business logic with technical details

  • Dimension 9: Circular Dependencies - Identifies dependency cycles using Tarjan's algorithm

Features

Token-Optimized Reports: Compact mode reduces token usage by 66%
Interactive Heatmap: D3.js visualization with cycle detection
Incremental Analysis: File-hash caching for 70% faster monitoring
Live Monitoring: Real-time analysis with trend tracking
Cycle Detection: Graph-based circular dependency analysis with visual highlighting

Installation

Prerequisites

  • Node.js 18 or higher

  • Cursor IDE

Setup

  1. Clone this repository:

git clone https://github.com/lady-logic/mmi-analyzer.git
cd mmi-analyzer
  1. Install dependencies:

npm install
  1. Configure in Cursor:

Add to your Cursor MCP settings (~/.cursor/config.json or via Settings β†’ MCP):

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

Note: Use absolute paths. On Windows, use forward slashes.

  1. Restart Cursor

Usage

The MMI Analyzer provides seven tools accessible via Cursor's AI assistant:

1. Complete MMI Analysis

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

Runs all four dimension analyses and provides an overall architecture quality score.

2. Interactive Architecture Heatmap

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

Generates D3.js visualization showing:

  • Files as nodes colored by quality score (green=excellent, red=critical)

  • Dependencies as links (gray=normal, red=violations, pink=cycles)

  • Animated pulsing for circular dependencies

  • Interactive filtering by layer or cycles

  • Click nodes to see detailed issues

3. Circular Dependency Analysis

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

Detects circular dependencies across the entire project:

  • Uses graphlib's Tarjan algorithm for cycle detection

  • Analyzes ALL C# dependencies (using statements)

  • Severity classification:

    • πŸ”΄ CRITICAL: Domain layer involved in cycle

    • 🟠 HIGH: 2-way circular dependency

    • 🟑 MEDIUM: 3-4 files in cycle

    • πŸ”΅ LOW: 5+ files in cycle

  • Shows complete cycle paths

4. Live Monitoring

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

Watches .cs files and automatically analyzes changes with trend visualization.

5. Layering Analysis

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

Detects Clean Architecture violations (e.g., Domain depending on Infrastructure).

6. Encapsulation Analysis

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

Identifies over-exposed types that should be internal.

7. Abstraction Level Analysis

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

Finds mixing of business logic with technical details (SQL, HTTP, File I/O).

Report Modes

Compact Mode (Default)

  • Token-optimized output (~66% reduction)

  • Grouped violations

  • Concise recommendations

  • Perfect for quick checks and monitoring

Detailed Mode

  • Full violation listings

  • Code examples

  • Comprehensive tables

  • Ideal for documentation and deep analysis

Example Output

# 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

Heatmap Visualization

The interactive heatmap provides real-time visual feedback:

Color Coding:

  • 🟒 Green: Excellent (4.5-5.0)

  • πŸ”΅ Blue: Good (3.5-4.5)

  • 🟠 Orange: Acceptable (2.5-3.5)

  • πŸ”΄ Red: Critical (<2.5)

  • 🟣 Pink: Circular dependency

Interactive Features:

  • Drag nodes to rearrange

  • Zoom and pan

  • Filter by layer or cycles

  • Click nodes for detailed issues

  • Animated pink pulsing links show cycles

Architecture

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

Scoring System

MMI Scores (0-5):

  • 5 - Exzellent: State-of-the-art architecture

  • 4 - Gut: Strong architecture, minor improvements needed

  • 3 - Akzeptabel: Solid foundation, some refactoring recommended

  • 2 - VerbesserungswΓΌrdig: Significant technical debt

  • 1 - Schlecht: Major refactoring required

  • 0 - Kritisch: Architecture fundamentally broken

Cycle Scoring:

  • 0 cycles = 5 points

  • <1% files in cycles = 4 points

  • <3% files in cycles = 3 points

  • <5% files in cycles = 2 points

  • <10% files in cycles = 1 point

  • β‰₯10% files in cycles = 0 points

Performance

  • Compact reports: ~2,400 tokens (vs. 7,000 detailed)

  • Monitoring: Only analyzes changed files (70% reduction)

  • Caching: MD5 hash-based file tracking

  • Cycle detection: O(V + E) using Tarjan's SCC algorithm

  • First analysis: Full scan, subsequent: incremental

Breaking Cycles

When circular dependencies are detected, the tool suggests resolution strategies:

  1. Dependency Inversion - Introduce interfaces

  2. Event-Driven Architecture - Use message bus (e.g., MassTransit)

  3. Extract Common Dependencies - Create shared module

  4. Merge Components - Combine artificially separated code

  5. Anti-Corruption Layer - Add translation layer

Troubleshooting

Server not connecting

  1. Check absolute paths in Cursor config

  2. Verify Node.js version: node --version (needs 18+)

  3. Check logs: mmi-analyzer.log in server directory

No analysis results

  • Ensure the project path contains .cs files

  • Verify project follows folder structure (Domain/, Application/, Infrastructure/)

Cache issues

  • Delete .mmi-cache.json in project root to force full re-analysis

Cycles not detected

  • Ensure files have proper namespace declarations

  • Check that using statements reference project namespaces

  • Multiple files can share the same namespace (supported)

Contributing

Contributions welcome! This is an experimental tool for learning MCP server development.

License

MIT

References


Status: Experimental | Version: 0.4.0

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

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/lady-logic/mmi-analyzer'

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