Token导航 LogoToken导航TokenDH.com
Architecture-Guardian logo
AI代理未说明官方级别未说明来源级核验

Architecture-Guardian

MCP Server

ArchGuard 是一个 .NET 9 应用程序,提供通过 AI 代理工具(MCP)和自动化 GitHub webhook 检查的 C# 验证功能,确保架构指南得到正确遵循。

工具数

2

提示词数

0

GitHub Stars

0

资源数

0
C#ClaudeAI代理ClaudeVS Code

安装说明

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

作者 / 组织

jzuras

提供方

jzuras

最后核验

2026/5/17 20:20

快速接入

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

详细介绍

ArchGuard(架构守护者)MCP服务器 / GitHub应用

A.提供C#验证检查的.NET 9应用程序 通过AI代理工具(MCP)和自动化的GitHub webhook检查。 当前的实现仅包含2个简单的规则验证,仅供演示之用。 关键在于,基于模板的规则系统可以轻松扩展,以处理任何所需的验证操作,从而使得 确保你的架构指南得到了妥善遵循(参见TEMPLATE_SYSTEM.md)。

请在我的LinkedIn帖子中查看更多信息:\ https://www.linkedin.com/feed/update/urn:li:activity:7370622737263894528/ (该链接为LinkedIn上的一个动态更新页面,直接翻译为中文无实际意义,保持原样即可)\ https://www.linkedin.com/feed/update/urn:li:activity:7371608592623312896/ 的中文翻译可以是:“领英(LinkedIn)动态更新链接:urn:li:activity:7371608592623312896/”。不过,通常我们不会直接翻译URL地址,因为它们在中文环境中通常保持原样,但这里为了符合翻译要求,给出了一个意译版本。实际上,在中文语境中,我们更可能直接使用该URL,或者简单描述为“领英上的某条动态更新链接”\ https://www.linkedin.com/feed/update/urn:li:activity:7373155482225647616/(该链接翻译为中文仍为原链接形式,因为链接本身是网址,无需翻译。但若仅就链接内容或意图进行描述,可表述为:“这是一个LinkedIn(领英)上的更新链接,指向特定的活动ID为7373155482225647616的帖子。”)\ https://www.linkedin.com/feed/update/urn:li:activity:7374811981289103360/ (该链接为LinkedIn上的特定更新页面,直接翻译为中文无实际意义,保持原样)\ https://www.linkedin.com/feed/update/urn:li:activity:7378160986584670208/(该链接为LinkedIn上的一个动态更新页面,直接翻译为中文无实际意义,可表述为“LinkedIn上的一个动态更新链接”)

概述

ArchGuard 以两种模式运行:

  1. MCP 服务器模式AI代理(如Visual Studio和VS Code中的GitHub Copilot)可以直接调用验证工具
  2. GitHub Webhook 模式由GitHub事件(推送、拉取请求、检查运行)触发的自动化验证

两种模式都使用相同的核心验证逻辑,该逻辑会启动一个AI代理(ClaudeCode、GeminiCLI、LocalFoundry或GitHubModels)来分析C#项目,以 依赖注入问题或任何其他定义的规则。

关键特性

  • 双操作模式 - MCP工具 + GitHub Webhook自动化
  • 动态仓库克隆 - 按需分析任何GitHub仓库
  • 背景清理 - 自动删除临时克隆的仓库
  • 私有仓库支持 - GitHub 应用程序认证用于私有仓库

建筑学

这个项目扩展了一个OAuth保护的MCP服务器架构,增加了与GitHub的集成功能。

基于之前的项目

关于OAuth 2.0服务器、MCP基础设施、ngrok设置以及基本配置详情,请参阅:\ Enphase MCP服务器项目原始README文件

OAuth/MCP基础设施(端点、JWT令牌、客户端注册、ngrok配置)与原始实现保持不变。

ArchGuard的不同之处在哪里

新的GitHub集成:

  • 动态仓库克隆系统
  • 针对私有仓库的GitHub应用认证
  • 用于推送、拉取请求和检查运行的Webhook处理程序
  • 背景仓库清理服务

快速入门

1. GitHub 应用配置

创建并安装一个具有以下权限的GitHub应用程序:

  • 仓库权限:

- 内容:阅读 - 元数据:读取 - 拉取请求:阅读 - 支票:填写

配置webhook事件:

  • 推动;推送
  • 拉取请求
  • 检查运行情况
  • 检查套件

2. 应用程序配置

更新 appsettings.json:

{
  "GitHub": {
    "AppId": "your-github-app-id",
    "PrivateKeyFilePath": "path/to/private-key.pem"
  },
  "RepositoryCloning": {
    "CodingAgent": "ClaudeCode",      // Options: "ClaudeCode", "GeminiCLI", "LocalFoundry" (not recommended), "GitHubModels"
    "CleanupIntervalMinutes": 60,
    "MaxRetentionHours": 2,
    "CleanupAfterValidation": true
  },
  "GitHub": {
    "Models": {
      "PAT": "",                      // GitHub Personal Access Token (required for GitHubModels agent)
      "ModelId": "openai/gpt-4o",
      "Endpoint": "https://models.github.ai/inference"
    }
  }
}

3. OAuth/MCP 设置

遵循原始项目的设置:

  • ngrok URL 配置
  • OAuth客户端注册
  • MCP终端保护

4. 运行应用程序

# Start ngrok tunnel (see original project for details)
ngrok http 7071 --domain=your-static-domain.ngrok-free.app

# Run the application
dotnet run

ArchGuard验证工具

它验证的内容

  • 构造函数依赖项 - 确保所有通过构造函数注入的服务都已注册
  • 实体/数据传输对象(DTO)属性映射 - 验证实体与数据传输对象(DTO)之间的属性映射
  • 易于扩展 - 基于模板的规则系统,用于添加新的验证规则(见 TEMPLATE_SYSTEM.md)

它是如何运作的

  1. 仓库访问克隆GitHub仓库到临时目录(基于文件的代理),通过GitHub API提取文件(基于API的代理),或在通过MCP调用时访问本地目录。
  2. 分析使用AI代理(ClaudeCode、GeminiCLI、LocalFoundry或GitHubModels)来分析项目
  3. 结果返回包含验证结果、违规项及解释的JSON数据
  4. 清理删除基于文件的代理的临时存储库(立即或后台)

工具输入模式(或工具输入架构)

{
  "contextFiles": [
    { "filePath": "src/Services/SomeService.cs" }
  ],
  "diffs": ["git diff output lines..."]
}

操作模式

MCP模式(AI代理)

AI代理调用验证工具:

  • ValidateDependencyRegistration (模板规则)
  • ValidateEntityDtoPropertyMapping (生成的规则)
  • 工具使用MCP服务器的root访问权限克隆仓库或访问本地目录
  • 返回结构化的验证结果

GitHub Webhook 模式

由GitHub事件触发的自动化验证:

推送事件验证推送提交中的更改 拉取请求(或合并请求)在合并前验证拉取请求(PR)的更改\ 检查运行(或“验证执行”)按需重新运行验证 检查套件全面的验证套件

工作流程:

  1. GitHub发送webhook → ArchGuard接收事件
  2. 仓库已克隆到临时目录
  3. 针对特定提交/分支的验证运行
  4. 结果以检查运行的形式发布回GitHub
  5. 仓库已清理(立即或后台进行)

GitHub 集成详情

动态仓库克隆

  • 任何仓库不限于特定项目
  • 私有仓库使用GitHub应用程序身份验证
  • 特定的提交(或提交记录)从webhook精确克隆提交
  • 临时存储使用系统临时目录并进行清理
  • 跨平台路径Windows存储 → 用于Claude Code的WSL路径

Webhook 安全性

  • 签名验证验证GitHub webhook签名
  • 安装ID用于身份验证的webhook有效载荷提取内容
  • 事件过滤仅处理相关的GitHub事件

后台服务

  • 仓库清理自动删除旧的临时存储库
  • 可配置的保留策略为临时存储库设置最大年龄
  • 磁盘空间监控空间不足时的紧急清理
  • 立即清理验证后立即清理的选项

故障排除

GitHub Webhook 问题

  • 403 禁止访问检查GitHub应用程序的权限和安装情况
  • 空的JSON响应通常表示仓库克隆失败
  • 权限被拒绝错误Git 打包文件可能是只读的(自动处理)

仓库克隆问题

  • 认证失败验证GitHub应用的私钥和应用ID
  • 路径转换错误检查WSL(Windows Subsystem for Linux)的安装和路径格式
  • 清理失败可能需要手动清理临时目录

MCP/OAuth 问题

OAuth 参数兼容性:

  • Gemini 命令行界面 (CLI)需要 audience 参数支持(同时发送两者) audienceresource)
  • 其他客户可使用 resource 参数(RFC 8707 资源指示器)
  • 服务器支持ArchGuard 支持这两种参数,并遵循 OAuth 规范的优先级(audience > resource

“invalid_target”的认证错误:

  • 验证客户端是否在发送正确的MCP终端URL audience 或者 resource 参数
  • 预期的URL格式: https://your-ngrok-domain/mcp/ (带尾部斜杠)

请参阅原始的Enphase MCP服务器项目README文件,以获取有关OAuth服务器和MCP故障排除的更多信息。

已知的局限性

  • Gemini CLI 可靠性在验证过程中,输出可能会偶尔消失
  • 本地晶圆厂整合由于精度有限,不建议用于生产环境(见下文LocalFoundry部分)
  • 调试日志记录在积极开发期间,控制台输出大量信息
  • 上下文/差异当前已登录但未在验证逻辑中积极使用
  • DI规则范围仅验证构造函数依赖项(不包括属性注入等)

有关详细的技术问题和开发说明,请参阅 KNOWN_ISSUES.md 翻译为中文是:“已知问题.md” 或 “已知问题列表.md”.

本地晶圆厂整合讨论

状态可用但不推荐。(详见KNOWN_ISSUES.md)

LocalFoundry(微软的本地AI运行时)已被整合为继ClaudeCode和GeminiCLI之后的第三个AI代理选项。详见 KNOWN_ISSUES.md 翻译为中文是:“已知问题.md” 关于详细的技术限制和准确性问题。

设置(如果使用LocalFoundry)

如果您想尝试使用LocalFoundry:

  1. 安装LocalFoundry遵循微软的 开始使用LocalFoundry 指南;引导;导游
  1. 预先下载模型 (建议在运行 ArchGuard 之前进行)
   foundry model run qwen2.5-0.5b

这会将模型下载到本地,首次运行时可能需要较长时间。先运行此命令可以避免ArchGuard启动时出现超时问题。

  1. 测试你的设置使用LocalFoundry命令行聊天机器人或 VS Code 的 AI Studio 插件 直接与模型聊天以测试其性能。

GitHub模型集成

状态适用于且建议使用基于云的验证。

GitHub Models 通过 GitHub 的基础设施提供对云端 AI 模型(包括 GPT-4)的访问。这是推荐的基于 API 的代理选项。

优势

  • 更高的准确性云模型(尤其是GPT-4)在遵循指令方面优于本地模型
  • 无硬件要求没有本地GPU或CPU的限制
  • 可靠的JSON输出与较小的本地模型相比,解析问题极少
  • 提供免费套餐速率受限,但基本访问无使用费用
  • 未初始化无需下载本地模型,即时可用

设置

  1. 生成GitHub个人访问令牌(PAT)

- 访问 https://github.com/settings/tokens - 创建一个具有适当权限的新令牌,以便访问GitHub Models - 请参阅:https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens(管理您的个人访问令牌)

  1. 配置 ArchGuard

- 设置 CodingAgent to "GitHubModels"appsettings.json - 添加您的PAT(个人访问令牌/个人密码等,具体根据上下文确定)到 GitHub:Models:PAT 在 appsettings.json 中,或者 - 设定;套装 GITHUB_MODELS_PAT 环境变量(出于安全考虑,建议使用)

  1. 可选定制

- 改变 ModelId 使用不同的模型(默认: "openai/gpt-4o") - 终端已预配置为 https://models.github.ai/inference

局限性

  • 网络依赖需要互联网连接
  • 速率限制免费套餐对API调用有速率限制
  • 延迟网络往返执行与本地执行

如需详细的实施信息,请参阅 .

版权和许可

代码

版权所有 (©) 2025 Jzuras

这个程序是自由软件:你可以对其进行传播和/或修改 它根据由(版权持有者)发布的GNU通用公共许可证(条款)进行许可 自由软件基金会,采用其许可证的第三版,或 (由您选择)任何后续版本。

这个程序的分发是出于希望它能有所用处, 但没有任何保证;甚至没有暗示性的保证 商品的适销性或特定用途的适用性。请参阅 GNU通用公共许可证(GNU General Public License)中有关于此的更多详细信息。

商标

所有商标均为其各自所有者的财产。 本项目中使用的任何商标均仅为描述性使用,且用于说明兼容性。

目录标签

目录标签

C#ClaudeAI代理架构验证本地部署C#分析GitHub集成自动化检查

支持客户端

ClaudeVS Code

接入字段

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

未说明

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

oauth

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明oauth部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP