项目简介 'ancplua-mcp' 是一个为 .NET 开发者设计的 MCP 服务器家族,它通过提供丰富的工具集,让大型语言模型(LLM)客户端能够更好地理解和操作开发环境。这些服务器可以帮助 LLM 执行代码构建、测试、Git操作、文件管理、分析NuGet包以及协调多个AI代码评审服务,从而提升AI辅助开发的效率和准确性。它支持多种传输协议,如标准输入输出 (Stdio) 和 HTTP,使其能够灵活地集成到各种开发环境和AI客户端中。

主要功能点

  • 工作站工具 (WorkstationServer)
    • 文件系统操作:读取、写入、列出文件和目录,支持路径安全检查。
    • Git 版本控制:获取仓库状态、分支信息、提交日志和差异,执行添加和提交操作。
    • CI/CD 工具:执行 '.NET' 项目的构建、测试和依赖恢复,支持运行自定义命令。
    • NuGet 包管理:搜索、获取包元数据、比较版本API差异、提取API表面信息,甚至反编译代码,帮助理解未知或新的包API。
    • Roslyn 代码分析:进行C#和VB.NET代码的度量分析,生成代码质量报告,查询复杂性、可维护性等指标。
    • 架构工具:分析项目架构,提供项目结构摘要。
  • HTTP 服务器 (HttpServer):通过 HTTP 协议提供上述大部分工作站工具,适用于远程、共享或多租户部署场景。
  • AI 服务编排 (AIServicesServer):发现和查询多种AI服务(如Claude, Gemini, Copilot, CodeRabbit, Jules等),未来将支持服务间路由、工作流和上下文共享。
  • GitHub 应用集成 (GitHubAppsServer):直接与 GitHub Apps 集成,提供触发AI评审、获取覆盖率等GitHub工作流功能。

安装步骤

  1. 先决条件
    • 安装 .NET SDK 8.0 或更高版本。
    • 安装 Git (如果需要使用Git相关功能)。
    • 确保您的环境中已安装 Docker (如果需要运行Dockerized的AIServicesServer)。
    • 安装 NATS 服务器 (如果计划使用 WhisperMesh 功能)。
  2. 克隆仓库
    git clone https://github.com/ANcpLua/ancplua-mcp.git
    cd ancplua-mcp
  3. 构建和测试
    dotnet build
    dotnet test
    # 或者运行本地验证脚本
    ./tooling/scripts/local-validate.sh
    这将编译所有服务器项目并运行单元测试。

服务器配置 (客户端所需)

为了让您的 MCP 客户端(如 Claude Desktop / Claude Code 或 GitHub Copilot Coding Agent)能够连接并使用这些服务器提供的工具,您需要将以下 JSON 配置添加到客户端的配置文件中(通常是 'claude.mcp' 或 '.mcp.json')。请根据您想使用的服务器类型进行选择性配置。

{
  "mcpServers": {
    // WorkstationServer:本地开发环境专用,通过标准输入输出(stdio)通信
    "ancplua-workstation": {
      "type": "stdio",
      "command": "dotnet",
      "args": [
        "run",
        "--no-build",
        "--project",
        "src/Ancplua.Mcp.WorkstationServer/Ancplua.Mcp.WorkstationServer.csproj"
      ],
      "comment": "用于本地文件系统、Git、CI/CD操作的MCP服务器。"
    },
    // HttpServer:远程或共享环境专用,通过HTTP通信 (注意:客户端仍通过stdio启动进程,进程内部会监听HTTP端口)
    "ancplua-http": {
      "type": "stdio", 
      "command": "dotnet",
      "args": [
        "run",
        "--no-build",
        "--project",
        "src/Ancplua.Mcp.HttpServer/Ancplua.Mcp.HttpServer.csproj"
      ],
      "comment": "提供HTTP接口的MCP服务器,默认监听 https://localhost:5001 或 http://localhost:5000。"
    },
    // AIServicesServer:用于发现和编排AI代码评审服务,通过标准输入输出(stdio)通信
    "ancplua-ai-services": {
      "type": "stdio",
      "command": "dotnet",
      "args": [
        "run",
        "--no-build",
        "--project",
        "src/Ancplua.Mcp.AIServicesServer/Ancplua.Mcp.AIServicesServer.csproj"
      ],
      "comment": "用于发现和编排AI代码评审服务的MCP服务器。"
    },
    // GitHubAppsServer (计划中):用于直接集成GitHub App工作流,通过标准输入输出(stdio)通信
    "ancplua-github-apps": {
      "type": "stdio",
      "command": "dotnet",
      "args": [
        "run",
        "--no-build",
        "--project",
        "src/Servers/Stdio/GitHubApps/Program.cs"
      ],
      "comment": "用于GitHub App集成(如AI评审器、覆盖率机器人)的MCP服务器。"
    },
    // RoslynMetricsServer:用于Roslyn代码分析和NuGet包检查,通过标准输入输出(stdio)通信
    "ancplua-roslyn-metrics": {
      "type": "stdio",
      "command": "dotnet",
      "args": [
        "run",
        "--no-build",
        "--project",
        "src/Servers/Stdio/RoslynMetrics/Program.cs"
      ],
      "comment": "提供Roslyn代码度量和NuGet包API分析功能的MCP服务器。"
    }
    // 您也可以在此处添加外部的MCP服务器配置,详情请参考MCP客户端文档
  }
}

基本使用方法 配置好 MCP 客户端后,当您向 LLM 客户端提出问题或指令时,如果指令涉及到服务器提供的工具功能,客户端将通过配置的 MCP 服务器调用相应的工具。

示例 (以支持 MCP 的 LLM 客户端为例,假设已配置 WorkstationServer):

  1. 文件操作:如果您想让LLM读取项目中的某个文件,您可以这样提问: '"请读取文件 'src/Program.cs' 的内容。"' LLM 客户端会通过 'ancplua-workstation' 服务器调用 'FileSystemTools.ReadFileAsync' 工具来获取文件内容。
  2. Git 状态查询: '"这个仓库当前的 Git 状态是什么?"' LLM 客户端会调用 'GitTools.GetStatusAsync' 工具来获取 Git 仓库状态。
  3. 构建项目: '"请构建这个项目。"' LLM 客户端会调用 'CiTools.BuildAsync' 工具来执行 'dotnet build' 命令。
  4. 查询NuGet包API: '"请显示 Newtonsoft.Json 12.0.0 和 13.0.0 之间的 API 变更报告。"' LLM 客户端会调用 'PackageInspectorTools.GetVersionDiffReport' 工具来提供详细的API差异报告。
  5. 触发AI评审 (需配置 AIServicesServer 和 GitHubAppsServer): '"请为 ANcpLua/ancplua-mcp 仓库的 PR #123 触发所有 AI 评审器。"' 客户端会调用 'AIOrchestrationTools.TriggerAllReviewers' 工具,然后该工具将指导AI如何触发外部AI评审服务。

信息

分类

开发者工具