Back to Discover

DotNetAnalyzer

connector

CartapenaBark

93 MCP tools for .NET code analysis, refactoring, security scanning & architecture checking — via Roslyn + Claude Code Plugin

View on GitHub
2 starsMITSynced Aug 2, 2026

Install to Claude Code

/plugin marketplace add CartapenaBark/DotNetAnalyzer

README

DotNetAnalyzer

一个强大的 MCP (Model Context Protocol) 服务器工具,将 Roslyn 的代码分析能力引入 Claude Code

.NET NuGet License English

📖 简介

DotNetAnalyzer 是一个使用 .NET 8.0/9.0/10.0 开发的 .NET 全局工具,通过封装强大的 Roslyn (.NET Compiler Platform) API,使 Claude Code 能够深度分析和理解 C# 代码。

为什么需要 DotNetAnalyzer?

Claude Code 是一个强大的 AI 编程助手,但对于 .NET 代码的理解存在局限。DotNetAnalyzer 通过 MCP 协议桥接了这一鸿沟,提供:

  • 语义级代码分析 - 不仅仅是语法高亮,而是真正的类型和符号理解
  • 智能代码导航 - 跳转到定义、查找引用、理解继承层次
  • 项目管理 - 解决方案分析、依赖关系、构建顺序
  • 深度洞察 - 调用图分析、代码度量、复杂度评估
  • 性能优化 - LRU缓存、增量分析、快速响应

作为 .NET 工具的优势

  • 🚀 一键安装 - 通过 dotnet tool install 快速安装
  • 📦 自动更新 - 支持 dotnet tool update 自动更新
  • 🔧 跨平台 - 支持 Windows、macOS、Linux
  • 🎯 零配置 - 开箱即用,无需手动构建

🎯 核心功能

当前版本 (v1.7.0) 提供 93 个 MCP 工具,覆盖代码分析、重构、代码质量、架构规则检查、反编译、安全漏洞检测、依赖健康度分析、性能优化、XAML 分析、桌面模式检测与项目文件操作能力;所有分析能力均已达到 verified 级别。

功能概览

类别工具数说明
🔍 代码诊断2编译器诊断、代码度量
📁 项目管理5依赖分析、构建顺序、.slnx 支持
🔬 代码分析6语法树、覆盖率、死代码、性能与文档生成
🎯 符号查询4引用查找、声明定位、符号详情
🧭 导航工具7跳转定义、类型层次、代码度量
🔧 重构工具5提取方法、重命名、变量引入、重构器枚举
代码生成6接口实现、构造函数、格式化与 using 管理
📊 调用与比较8调用图、调用者/被调用者、语法树与代码差异
🧪 代码质量4异味检测、技术债务、综合质量报告
代码操作4代码操作、重构建议、补全
🔎 高级查询4符号解析、定义与引用聚合、文档列表
👀 监控与可视化9文件监听、变更影响、缓存、依赖图与热力图
🏛️ 架构规则2依赖方向、层级约束、命名约定、SARIF 报告
🔬 反编译与分析4C# 反编译、IL 分析、程序集元数据、API Surface
🔒 安全检测4OWASP 漏洞扫描、SARIF 报告、规则查询、许可证合规
📦 依赖健康度3CVE 漏洞扫描、依赖健康度、版本冲突检测
性能优化3解决方案性能分析、缓存优化、运行时统计
🖼️ XAML 分析4XAML 解析、绑定验证、资源分析、View-ViewModel 映射
🖥️ 桌面模式检测5MVVM 违规、异步反模式、DI 注册、内存泄漏检测
📝 项目文件操作3添加项目引用、添加 NuGet 包、更新项目属性

📄 完整 API 文档 | 🏗️ 系统架构

支持框架: .NET 8.0 (C# 12) / .NET 9.0 (C# 13) / .NET 10.0 (C# 14)

🏗️ 架构

DotNetAnalyzer 采用分层架构设计,通过 MCP 协议连接 Claude Code 和 Roslyn 分析引擎:

核心层级

  • 用户层 - Claude Code (AI 编程助手)
  • MCP 协议层 - stdio 通信,dotnet-analyzer 全局工具
  • 分析引擎层 - MCP 服务器、工具注册、Roslyn 集成
  • 工作区管理层 - MSBuildWorkspace、编译缓存、项目加载
  • 项目层 - .NET 解决方案/项目文件

核心组件

  • WorkspaceManager - LRU 缓存项目,并发加载控制
  • CompilationCache - 编译结果缓存,自动失效
  • ToolRegistry - 93 个 MCP 工具的注册和调用
  • RefactoringEngine - 重构操作执行引擎
  • PathValidator - 路径安全验证
  • ArchitectureRuleEngine - 架构规则检查引擎
  • DecompilationService - ILSpy 反编译服务

📄 查看详细架构图 - 包含系统架构图、组件关系图、项目结构图、MCP 工具层次图和调用流程图

🚀 快速开始

前置要求

安装

方式一:从 NuGet 安装(推荐)✨

DotNetAnalyzer 已发布到 NuGet.org

# 全局安装 DotNetAnalyzer 工具
dotnet tool install --global DotNetAnalyzer

# 验证安装
dotnet-analyzer --version

# 查看工具位置
dotnet-tool list --global

NuGet 包信息:

方式二:从源码构建

# 克隆仓库
git clone https://github.com/CartapenaBark/DotNetAnalyzer.git
cd DotNetAnalyzer

# 运行权威验证链路
bash scripts/validate-ci-cd.sh

# 从本地 NuGet 包安装
dotnet tool install --global DotNetAnalyzer --add-source ./Bin/nupkg --version 1.7.0

方式三:Claude Code Plugin(推荐)✨

DotNetAnalyzer 已发布为 Claude Code 插件,安装后自动注册 93 个 MCP 工具。

# 1. 安装全局工具
dotnet tool install --global DotNetAnalyzer

# 2. 在 Claude Code 中添加 Marketplace
/plugin marketplace add CartapenaBark/DotNetAnalyzer

安装后,Claude Code 自动发现 .NET 项目并触发对应分析。

3 个命令: /netan:analyze(项目分析)、/netan:security(安全扫描)、/netan:report(质量报告)

5 个智能技能: 项目结构、符号导航、代码质量、安全依赖、重构操作 — AI 根据上下文自动触发。

更新

# 更新到最新版本
dotnet tool update --global DotNetAnalyzer

卸载

# 卸载工具
dotnet tool uninstall --global DotNetAnalyzer

配置 Claude Code

在项目目录中创建 .mcp.json 文件来配置 MCP 服务器:

配置文件位置:

  • 项目级配置(推荐):.mcp.json - 放在项目根目录
  • 用户级配置:~/.claude/settings.json - 适用于所有项目

创建 .mcp.json 文件:

{
  "mcpServers": {
    "dotnet-analyzer": {
      "command": "dotnet-analyzer",
      "args": [
        "mcp",
        "serve"
      ],
      "env": {
        "DOTNET_ENVIRONMENT": "Production",
        "DOTNET_ANALYZER_LOG_LEVEL": "Information"
      }
    }
  }
}

或者使用项目级 settings.json

在项目根目录创建 .claude/settings.json

{
  "enabledMcpjsonServers": ["dotnet-analyzer"]
}

然后在项目根目录创建 .mcp.json 文件(同上)。

配置优先级:

  1. 企业管理策略(最高)
  2. 命令行参数
  3. .claude/settings.local.json(本地项目)
  4. .claude/settings.json(共享项目)
  5. ~/.claude/settings.json(用户级,最低)

支持的解决方案格式

DotNetAnalyzer 完全支持以下 Visual Studio 解决方案格式:

格式扩展名状态说明
传统格式.sln✅ 完全支持文本格式,Visual Studio 2010-2019
新一代格式.slnx✅ 完全支持XML 格式,Visual Studio 2022 17.8+

使用示例:

# 使用 .sln 格式
dotnet-analyzer mcp serve --solution MyProject.sln

# 使用 .slnx 格式
dotnet-analyzer mcp serve --solution MyProject.slnx

.slnx 优势:

  • 🎯 人类可读的 XML 结构
  • 📦 更简洁的语法
  • 🚀 .NET CLI 9.0.200+ 默认格式
  • ✅ 完全向后兼容 .sln

使用示例

配置完成后,你可以在 Claude Code 中自然地使用这些功能:

Plugin 命令(用户主动调用):

/netan:analyze                    # 分析当前解决方案
/netan:security ./src/MyApp.csproj  # 扫描指定项目的安全漏洞
/netan:report                     # 生成综合质量报告

Skill 技能(AI 根据上下文自动触发 — 直接用自然语言即可):

你: "分析这个项目的所有诊断信息"
Claude: [调用 get_diagnostics] ...
     "发现了 3 个错误和 15 个警告..."

你: "这个方法的调用者有哪些?"
Claude: [调用 get_caller_info] ...
     "这个方法被 5 个位置调用..."

你: "帮我提取这部分代码为一个方法"
Claude: [调用 extract_method] ...
     "已成功提取为新方法 CalculateTotal..."

🛠️ 技术栈

核心技术

  • .NET 8.0 - 现代化的跨平台开发框架
  • .NET CLI Tools - 全局工具框架
  • MCP SDK - Model Context Protocol 官方实现
  • Roslyn - 微软官方 C# 编译器平台

主要依赖

<!-- MCP 协议 -->
<PackageReference Include="ModelContextProtocol" Version="*" />

<!-- Roslyn 分析 -->
<PackageReference Include="Microsoft.CodeAnalysis" Version="5.*" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="5.*" />
<PackageReference Include="Microsoft.CodeAnalysis.Workspaces.MSBuild" Version="5.*" />

<!-- CLI 框架 -->
<PackageReference Include="System.CommandLine" Version="2.*" />

<!-- 测试 -->
<PackageReference Include="xUnit" Version="2.*" />
<PackageReference Include="Moq" Version="4.*" />
<PackageReference Include="FluentAssertions" Version="6.*" />

支持的解决方案格式:

  • ✅ 传统 .sln 格式(文本格式)
  • ✅ 新一代 .slnx 格式(XML 格式,Visual Studio 2022+)

📦 构建和发布

本地构建

# 运行权威本地验证链路
bash scripts/validate-ci-cd.sh

# 单独查看底层命令
dotnet restore DotNetAnalyzer.slnx -p:Configuration=Release --verbosity minimal
dotnet build DotNetAnalyzer.slnx -c Release --no-restore --verbosity minimal
dotnet test DotNetAnalyzer.slnx -c Release --framework net10.0 --no-build --verbosity normal --filter "Category!=Performance"
dotnet pack src/DotNetAnalyzer.Cli/DotNetAnalyzer.Cli.csproj -c Release --no-build --output ./Bin/nupkg

GitHub Actions CI/CD

项目使用 GitHub Actions 自动化构建和发布:

  • 触发条件: Push to develop branch, 创建 Release, 手动触发
  • 构建流程:
    1. 还原依赖
    2. 运行测试(CI 环境跳过性能测试)
    3. 创建 NuGet 包
    4. 发布到 NuGet.org(仅 Release)
    5. 创建 GitHub Release

注意: 性能基准测试对运行环境敏感,在 CI 环境中会自动跳过。本地开发时可以使用 dotnet test --filter "Category=Performance" 运行性能测试。

📄 查看工作流配置

版本策略

  • 语义化版本: 遵循 SemVer 2.0
  • 预发布版本: 使用 -beta, -rc 等标识
  • 自动发布: Git tag 推送时自动发布

🗺️ 开发路线图

当前公开 93 个 MCP 工具,所有分析能力均已达到 verified 级别。

能力域状态工具数
代码分析 / 导航 / 符号查询17
项目管理 / 监控 / 查询15
重构 / 代码生成 / 代码操作15
调用分析 / 比较 / 可视化 / 质量分析17
架构规则检查2
反编译与分析4
安全漏洞检测4
依赖健康度分析3
性能优化3
XAML 分析4
桌面模式检测5
项目文件操作3

🤝 贡献

欢迎贡献!请查看 CONTRIBUTING.md 了解详情。

开发指南

  1. Fork 并克隆仓库
  2. 创建功能分支: git checkout -b feature/amazing-feature
  3. 提交变更: git commit -m 'Add amazing feature'
  4. 推送分支: git push origin feature/amazing-feature
  5. 创建 Pull Request

代码规范

⚠️ 重要: 所有贡献者必须遵守项目编码规范

核心要求:

  • 保持单元测试覆盖率 > 80%
  • 为公共 API 添加 XML 文档注释
  • 编译时 0 个警告,0 个错误
  • 运行 dotnet format 格式化代码

本地测试工具

开发过程中可以本地安装和测试:

# 运行本地验证并生成包
bash scripts/validate-ci-cd.sh
dotnet tool install --global DotNetAnalyzer --add-source ./Bin/nupkg --version 1.7.0

# 测试工具
dotnet-analyzer --version
dotnet-analyzer mcp serve

# 完成后卸载
dotnet tool uninstall --global DotNetAnalyzer

📄 许可证

本项目采用 MIT 许可证。

📚 文档

用户指南

  • API 使用指南 - 完整的 MCP 工具 API 参考文档

    • 当前工具分组与关键接口说明
    • 参数、返回值和使用示例
    • 配置选项和最佳实践
    • 故障排除指南
  • 分析能力可信度矩阵 - 稳定 / 启发式 / 实验性能力边界

    • 哪些结果可以视为稳定行为
    • 哪些结果会在运行时附带可信度标记
    • 每项低可信能力的后续收敛路径
  • 使用示例 - 实际使用场景和代码示例

    • 基础示例(诊断检查、解决方案分析)
    • 代码分析示例(结构分析、继承关系)
    • 符号查询示例(查找引用、符号信息)
    • 代码诊断示例(错误定位、修复建议)
    • 依赖分析示例(依赖图、构建顺序)
    • 综合工作流(代码审查、调试)
  • 配置指南 - 详细的配置选项说明

    • 环境变量配置
    • MCP 服务器配置
    • 高级配置选项
    • 性能优化建议

开发者文档

项目文档

社区

🙏 致谢

📞 联系方式


📜 版本历史

完整更新历史请查看 CHANGELOG.md

  • v1.7.0 (2026-04-16) - 分析精度提升、配置基础设施、DI 增强、93 个工具
  • v1.5.0 (2026-03-29) - 质量修复、零警告零错误
  • v1.4.0 (2026-03-29) - XAML 分析、桌面模式检测、项目文件操作、92 个工具
  • v1.3.0 (2026-03-29) - 安全漏洞检测、依赖健康度分析、性能优化、80 个工具
  • v1.2.0 (2026-03-28) - 架构规则检查引擎、ILSpy 反编译集成、SARIF 报告、70 个工具
  • v1.1.2 (2026-03-22) - 产品可信度基线、验证链路统一与元数据修正
  • v1.1.0 (2026-03-21) - 代码质量分析与产品可信度基线
  • v1.0.1 (2026-03-13) - 文档优化,架构图迁移到独立文档
  • v1.0.0 (2026-03-12) - 正式版,74 个 MCP 工具
  • v0.8.0 - .NET 10.0 支持,框架统一
  • v0.7.0 - 重构、生成和高级分析工具
  • v0.6.0 - 架构优化和 CI/CD 完善

Rendered live from CartapenaBark/DotNetAnalyzer's GitHub README — not stored, always reflects the source repo.

1 Plugin

NameDescriptionCategorySource
dotnet-analyzerDotNetAnalyzer — 93 MCP tools for .NET code analysis, refactoring, security scanning, and architecture checking via RoslynCartapenaBark/DotNetAnalyzer

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.