Token导航 LogoToken导航TokenDH.com
Msbuild Graph MCP logo
开发工具未说明官方级别未说明来源级核验

Msbuild Graph MCP

MCP Server

为LLM驱动的编码助手提供MSBuild解决方案的预构建静态分析,包括项目依赖分析、构建问题检测、共享导入检查和配置比较。

工具数

10

提示词数

0

GitHub Stars

0

资源数

0
代码辅助C#Claude静态分析ClaudeCursorWindsurfVS Code

安装说明

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

作者 / 组织

FlorinVica

提供方

FlorinVica

最后核验

2026/5/17 20:23

快速接入

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

详细介绍

MSBuild项目图MCP服务器

![CI](https://github.com/FlorinVica/msbuild-graph-mcp/actions/workflows/ci.yml) ![NuGet](https://www.nuget.org/packages/MsBuildGraphMcp) ![License: MIT](LICENSE) ![.NET](https://dotnet.microsoft.com/) ![Tests](#testing)

LLM驱动的编码助手的MSBuild解决方案的预构建静态分析。 在构建之前,通过自然语言分析项目依赖关系、检测构建问题、检查共享导入和比较配置。

没有现有的MCP服务器提供预构建项目图分析。这填补了这一空白。

它的作用

问你的人工智能助手关于你的自然问题。NET/C++解决方案:

  • *“显示此解决方案的依赖关系图”* → 具有拓扑排序的完整DAG
  • *“是否存在TFM不匹配?”* → 查找引用net8.0库的net6.0项目
  • *“Directory.Build.props会影响什么?”* → 显示导入每个共享文件的所有项目
  • *“比较调试与发布”* → 物业和套餐参考差异
  • *“LangVersion是从哪里来的?”* → 目录跟踪。Build.props第3行

工具

工具说明
analyze_solutionParse.sln/.slnx/.slnf--项目、TFM、输出类型、配置
get_project_graph使用拓扑排序和图度量构建完全依赖DAG
find_shared_imports查找目录。构建.props/.targets和其他共享导入
detect_build_issues查找循环deps、TFM不匹配、孤立项目、平台不匹配
analyze_project_properties使用源代码跟踪检查评估的属性(哪个文件,哪个行)
compare_configurations调试与发布(或任意两个配置)的差异——属性、包、引用
analyze_impact“如果我删除项目X,会有什么问题?”--直接+传递依赖项
check_package_versionsNuGet包版本一致性、CPM检测、版本覆盖跟踪
get_build_order具有关键路径长度的轻量级构建顺序(拓扑排序)
list_projects无需MSBuild评估即可快速列出项目——即时响应

支持的客户

✅ 适用于

客户端配置文件详细信息
VS代码+GitHub副本.vscode/mcp.json副驾驶代理模式直接调用MCP工具
VS代码+继续开发.vscode/mcp.json适用于Claude、GPT或任何LLM后端
光标.cursor/mcp.json内置AI原生调用MCP工具
Windsurf设置UI通过stdio传输支持原生MCP
克劳德桌面claude_desktop_config.json全工具+即时支持
克劳德代码(终端)CLI: claude mcp add与终端工作流程保持一致
Visual Studio 2026+复制品.mcp.json 在解决方案目录中VS 2026预览版中的原生MCP支持

❌ 不支持

客户原因
Visual Studio 2022VS 2022中的复制副本不支持MCP协议
ChatGPTOpenAI使用不同的协议(函数调用,而不是MCP)
Gemini谷歌使用不同的协议(不是MCP)

快速开始

安装

dotnet tool install -g MsBuildGraphMcp

配置

克劳德桌面 --添加到 %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "msbuild-graph": {
      "command": "msbuild-graph-mcp"
    }
  }
}

克劳德代码:

claude mcp add msbuild-graph -- msbuild-graph-mcp

VS Code --添加到 .vscode/mcp.json:

{
  "servers": {
    "msbuild-graph": {
      "type": "stdio",
      "command": "msbuild-graph-mcp"
    }
  }
}

光标 --添加到 .cursor/mcp.json:

{
  "mcpServers": {
    "msbuild-graph": {
      "command": "msbuild-graph-mcp"
    }
  }
}

需求

  • .NET SDK 8.0+(或Visual Studio 2022+)
  • Windows(MSBuildLocator发现VS/.NET SDK安装)

输出示例

get_project_graph

{
  "metrics": {
    "nodeCount": 4,
    "edgeCount": 3,
    "uniqueProjectCount": 4,
    "maxDepth": 2,
    "constructionTimeMs": 297
  },
  "projects": [
    {
      "name": "WebApp",
      "targetFrameworks": ["net8.0"],
      "outputType": "Exe",
      "isRoot": true,
      "references": ["DataLib\\DataLib.csproj", "CoreLib\\CoreLib.csproj"]
    }
  ],
  "topologicalOrder": [
    "CoreLib\\CoreLib.csproj",
    "DataLib\\DataLib.csproj",
    "WebApp\\WebApp.csproj"
  ]
}

detect_build_issues

{
  "totalIssues": 2,
  "frameworkMismatches": [{
    "project": "OldApp.csproj",
    "projectTfm": "net6.0",
    "dependency": "NewLib.csproj",
    "dependencyTfm": "net8.0",
    "reason": "net6.0 cannot consume net8.0"
  }],
  "orphanProjects": [{
    "name": "UnusedLib",
    "reason": "Library with no referencing projects"
  }]
}

特性

  • 预构建分析 --无需生成,直接评估MSBuild项目文件
  • .sln/.slnx/.slnf --支持所有解决方案格式,包括新的.slnx(VS 17.10+)
  • 多目标识别 --通过外部/内部构建重复数据删除正确处理TargetFrameworks(复数)
  • TFM兼容性 --NuGet。基于框架的检查(net8.0-windows与net8.0、netstandard2.0与net48等)
  • 财产来源追踪 --显示定义每个MSBuild属性的文件和行号
  • 配置差异 --比较任意两种配置(调试/发布、自定义配置)
  • 循环依赖检测 --捕获MSB4251和循环依赖异常
  • 共享导入发现 --标识目录。Build.props,目录。构建目标,目录。包装.props
  • CPM检测 --识别中央包管理(ManagePack VersionsCentrally)

安全

所有工具都是 只读 --不会触发任何构建,也不会修改任何文件。

度量描述
IsBuildEnabled = false在评估期间阻止MSBuild目标执行
MSBUILDENABLEALLPROPERTYFUNCTIONS guard如果设置了此危险的环境变量,服务器将拒绝启动
路径验证UNC路径被拒绝、扩展白名单、存在性检查
每次调用都有新鲜的ProjectCollection工具调用之间没有状态泄漏
try/finally cleanup即使出现异常,项目也始终处于卸载状态
重要提示: MSBuild属性函数在评估期间执行(按设计)。功能如下 $([System.IO.File]::ReadAllText(...)) 加载项目时运行。只分析你信任的项目。

建筑

┌──────────────────┐     stdio (JSON-RPC)   ┌─────────────────────┐
│ Claude / Copilot │◄──────────────────────►│ msbuild-graph-mcp   │
│ VS Code / Cursor │                        │                     │
└──────────────────┘                        │ MSBuildLocator      │
                                            │ ► ProjectGraph      │
                                            │ ► ProjectCollection │
                                            │ ► SolutionPersist   │
                                            └─────────────────────┘

关键架构决策:

  • MSBuildLocator JIT陷阱模式 --Main()中的RegisterInstance(),MSBuild类型仅在\[NoInline\]方法中
  • 评估背景。共享 通过ProjectInstanceFactoryFunc--大型解决方案的2-5倍加速
  • 平行度上限为8 --防止高核心计算机上的内存耗尽
  • 微软。版本17.13.9 使用ExcludeAssets=“runtime”--避免17.14.8依赖项发布错误

测试

35个测试文件中的333个测试,来自5轮互联网研究,涵盖20多个来源:

dotnet test tests/MsBuildGraphMcp.Tests/
# Passed! - Failed: 0, Passed: 333, Skipped: 0, Total: 333, Duration: 12s

测试类别:验证、核心工具、TFM兼容性、安全性(OWASP/CVE)、解决方案格式、生产弹性、并发性、路径边缘情况、JSON序列化、真实场景。

在测试过程中发现并修复了8个生产错误。

补充工具

此服务器提供 预生成 分析。对于 后期生成 分析(需要完整的构建),请参阅:

贡献

贡献.md 作为指导方针。

许可证

麻省理工学院 -弗洛林·维卡

目录标签

目录标签

代码辅助C#Claude静态分析MSBuild分析本地部署依赖管理开发工具

支持客户端

ClaudeCursorWindsurfVS Code

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

10

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP