使用说明

项目简介

MSBuild MCP Host 是一个实现了 Model Context Protocol (MCP) 的服务器,它专注于为大型语言模型(LLM)提供关于 .NET MSBuild 项目的上下文信息和操作能力。通过此服务器,LLM 客户端可以理解和操控 MSBuild 项目,例如分析项目依赖、管理NuGet包,甚至执行项目升级等操作。

主要功能点

  • 项目分析工具:
    • 'list-target-frameworks': 列出项目支持的目标框架版本。
    • 'list-project-dependencies': 列出项目依赖的其他项目。
    • 'list-package-references': 列出项目引用的 NuGet 包及其版本。
    • 'get-package-versions': 获取指定 NuGet 包在配置的源中的可用版本。
  • 项目操作 Prompt:
    • 'upgrade-project': 将单个项目升级到指定的目标框架版本。
    • 'upgrade-all-projects': 将多个项目升级到指定的目标框架版本,并生成升级计划。

安装步骤

  1. 构建项目: 打开命令行终端,导航到 'msbuild.mcp' 目录,并执行 'dotnet build' 命令来构建项目。构建成功后,可执行文件将生成在 'msbuild.mcp\bin\Debug\net9.0' 目录下。

服务器配置

MCP 服务器需要配置在 MCP 客户端中才能使用。以下分别提供了 Claude 和 VSCode 的配置示例。您需要将 '<repo root>' 替换为您的仓库根目录的实际路径。

Claude 配置:

在 Claude 的配置文件中添加以下 JSON 代码:

{
  "mcpServers": {
    "msbuild": {
      "command": "<repo root>\\msbuild.mcp\\bin\\Debug\\net9.0\\msbuild.mcp.exe"
    }
  }
}
  • 'server name': 'msbuild',服务器名称,可以自定义,用于在客户端中标识该服务器。
  • 'command': '<repo root>\msbuild.mcp\bin\Debug\net9.0\msbuild.mcp.exe',MCP 服务器的启动命令,指向构建生成的可执行文件路径。

VSCode 配置:

您可以选择让 VSCode 自动发现 Claude 的 MCP 服务器配置(如果您已经配置了 Claude),或者直接在 VSCode 的 'settings.json' 中配置:

方式一:自动发现 Claude 配置 如果已配置 Claude,在 VSCode 的 'settings.json' 中添加:

  "chat.mcp.discovery.enabled": true,

方式二:直接配置 在 VSCode 的 'settings.json' 中添加以下 JSON 代码:

{
    "mcp": {
        "inputs": [],
        "servers": {
            "msbuild": {
                "command": "<repo root>\\msbuild.mcp\\bin\\Debug\\net9.0\\msbuild.mcp.exe",
                "args": [],
                "env": {}
            }
        }
    }
}
  • 'server name': 'msbuild',服务器名称,可以自定义。
  • 'command': '<repo root>\msbuild.mcp\bin\Debug\net9.0\msbuild.mcp.exe',MCP 服务器的启动命令,指向构建生成的可执行文件路径。
  • 'args': 启动参数,本示例中为空数组 '[]'。
  • 'env': 环境变量,本示例中为空对象 '{}'。

基本使用方法

  1. 启动 MCP 服务器:无需手动启动,当 MCP 客户端(如 Claude 或 VSCode)需要使用 MSBuild 相关功能时,会自动启动配置的 MCP 服务器。
  2. 在 MCP 客户端中使用:在 Claude 或 VSCode 等 MCP 客户端中,当需要分析或操作 MSBuild 项目时,客户端会调用此 MCP 服务器提供的工具和 Prompt,例如:
    • 在聊天对话中,可以要求 Claude “列出项目 A 的目标框架版本”, Claude 可能会调用 'list-target-frameworks' 工具并返回结果。
    • 可以指示 Claude “将项目 B 升级到 .NET 9.0”,Claude 可能会使用 'upgrade-project' Prompt 与您进行更详细的交互。

本地调试:

可以使用 'npx @modelcontextprotocol/inspector ./bin/Debug/net9.0/msbuild.mcp' 命令来本地调试和检查 MCP 服务器的功能。

信息

分类

开发者工具