MMI Architecture Analyzer
Provides automated analysis of .NET and C# projects to assess architecture quality across dimensions such as layering, encapsulation, abstraction levels, and circular dependencies using the MMI framework.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MMI Architecture Analyzer run a full MMI analysis on my C# project and show the interactive heatmap"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: Code-Oracle
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
Clone this repository:
git clone https://github.com/lady-logic/mmi-analyzer.git
cd mmi-analyzerInstall dependencies:
npm installConfigure 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.
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 reportRuns 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 layerHeatmap 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.mdScoring 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:
Dependency Inversion - Introduce interfaces
Event-Driven Architecture - Use message bus (e.g., MassTransit)
Extract Common Dependencies - Create shared module
Merge Components - Combine artificially separated code
Anti-Corruption Layer - Add translation layer
Troubleshooting
Server not connecting
Check absolute paths in Cursor config
Verify Node.js version:
node --version(needs 18+)Check logs:
mmi-analyzer.login server directory
No analysis results
Ensure the project path contains
.csfilesVerify project follows folder structure (
Domain/,Application/,Infrastructure/)
Cache issues
Delete
.mmi-cache.jsonin project root to force full re-analysis
Cycles not detected
Ensure files have proper
namespacedeclarationsCheck that
usingstatements reference project namespacesMultiple files can share the same namespace (supported)
Contributing
Contributions welcome! This is an experimental tool for learning MCP server development.
License
MIT
References
MMI Framework: Carola Lilienthal - Langlebige Softwarearchitekturen
MCP Protocol: Anthropic Model Context Protocol
Clean Architecture: Robert C. Martin
Cycle Detection: Tarjan's Strongly Connected Components algorithm
Status: Experimental | Version: 0.4.0
Available Tools
9 toolsanalyze_abstractionC
Analyzes separation of abstraction levels. Detects mixing of business logic (Domain/Application) with technical details (SQL, HTTP, File I/O). Identifies violations of clean separation.
Inputs: projectPath (required), mode.
analyze_cyclesB
Analyzes circular dependencies (cycles) in the codebase. Detects files that depend on each other in a circular way, which violates good architecture principles. Critical when Domain layer is involved.
Inputs: projectPath (required), mode.
analyze_encapsulationC
Analyzes encapsulation quality by checking public vs internal visibility of classes, interfaces, and records. Identifies over-exposed types that should be internal.
Inputs: projectPath (required), mode.
analyze_layeringB
Analyzes Clean Architecture layering violations in a C# project. Checks if Domain/Application/Infrastructure layers follow dependency rules.
Inputs: projectPath (required), mode.
analyze_mmiB
Complete MMI (Modularity Maturity Index) analysis. Runs all three dimensions: Layering (Dimension 2), Encapsulation (Dimension 5), and Abstraction Levels (Dimension 8). Provides overall architecture quality score.
Inputs: projectPath (required), mode.
get_monitoring_statusB
Shows status of all monitored projects with current scores and trends.
Inputs: no named parameters.
start_monitoringB
Starts continuous MMI monitoring for a C# project. Watches .cs files and automatically analyzes on changes. Stores score history over time.
Inputs: projectPath (required).
stop_monitoringB
Stops MMI monitoring for a project. Preserves history.
Inputs: projectPath (required).
visualize_architectureC
Generate interactive architecture heatmap visualization with D3.js. Shows files as nodes colored by score (green=good, red=critical), dependencies as links, violations highlighted. Click nodes to see details.
Inputs: projectPath (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 9 tools
Most tools have distinct purposes, such as analyze_abstraction for abstraction levels and analyze_cycles for circular dependencies, but analyze_mmi overlaps by running multiple analyses that other tools handle individually, which could cause confusion in tool selection. The monitoring tools (get_monitoring_status, start_monitoring, stop_monitoring) are clearly separate from analysis tools, reducing overall ambiguity.
All tool names follow a consistent verb_noun pattern with snake_case, such as analyze_abstraction, get_monitoring_status, and visualize_architecture. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions across the nine tools.
With 9 tools, the count is well-scoped for an architecture analyzer server, covering analysis, monitoring, and visualization aspects without being overwhelming. Each tool serves a clear role, such as specific analyses or monitoring controls, making the set appropriately sized for the domain.
The tool set provides comprehensive coverage for architecture analysis, including specific checks (e.g., layering, encapsulation), overall scoring (analyze_mmi), monitoring lifecycle (start/stop/get status), and visualization. A minor gap is the lack of tools for fixing or suggesting corrections for identified violations, but agents can work around this by using analysis results to guide manual improvements.
Maintenance
Related MCP Connectors
MCP server for static security analysis of Android source code
Repository knowledge graph MCP server for codebase understanding and debugging.
One MCP server for all your MCP servers: code mode, per-tool permissions, approvals and audit.
Zero-log MCP server with 49 tools for AI guardrails, secret scanning, MCP linting & EU compliance.
491
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for comprehensive code analysis, navigation, and quality assessment across 25+ programming languages.988MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for automated architectural mapping, security vulnerability detection, ML asset tracking, and code metrics in local repositories.-
- AlicenseNot gradedqualityDmaintenanceA local MCP server that provides Sonar-grade static analysis (bugs, vulnerabilities, code smells) for TypeScript/JS and C# repositories, with CLI and dashboard support.MIT
- FlicenseAqualityDmaintenanceMCP server for repository mapping, dependency analysis, and architecture diagram generation for JavaScript, TypeScript, and Python projects.410 npm-