返回市场
windows诊断mcp服务器

windows诊断mcp服务器

作者:jackalterman3 星标更新:2025-09-13

项目介绍

Windows 诊断 MCP 服务器

这是一个提供全面 Windows 系统诊断能力的模型上下文协议(MCP)服务器。该服务器允许代理访问 Windows 事件日志、崩溃信息、系统运行时间、稳定性分析以及 Windows 注册表诊断。

功能

系统诊断

  • 系统诊断:对 Windows 事件、崩溃和系统健康状况进行全面分析
  • 蓝屏检测:识别蓝屏死机事件和关键系统错误
  • 关机分析:跟踪预期和非预期的系统关机
  • 应用程序崩溃监控:监控应用程序崩溃和故障
  • 系统稳定性评分:提供带有可操作建议的稳定性分析
  • 运行时间追踪:报告系统运行时间和启动信息

注册表诊断

  • 注册表搜索:通过关键字搜索 Windows 注册表
  • 启动程序分析:分析启动程序中的可疑条目
  • 系统组件扫描:扫描服务、驱动程序和卸载条目中的问题
  • 孤立条目检测:查找指向不存在文件的孤立注册表条目
  • 注册表健康评估:整体注册表健康状况评估
  • 安全风险扫描:扫描注册表中的潜在安全风险

MCP 在 Claude Desktop 中使用的截图

安装

先决条件

  • Windows 10/11 或 Windows Server
  • Node.js 18+
  • PowerShell 5.1+(内置在 Windows 中)
  • 管理员权限(推荐用于全部功能)
  • 配置 PowerShell 执行策略以允许脚本执行

设置步骤

  1. 克隆或下载文件

    mkdir windows-diagnostics-mcp
    cd windows-diagnostics-mcp
    
  2. 保存 TypeScript 服务器代码 作为 src/index.ts

  3. 创建 package.json 使用提供的配置

  4. 创建 tsconfig.json 使用提供的 TypeScript 配置

  5. 安装依赖项

    npm install
    
  6. 配置 PowerShell 执行策略(如果尚未设置):

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    

    或者为了全局访问(需要管理员权限):

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
    
  7. 构建服务器

    npm run build
    

配置

对于 Claude Desktop

在您的 Claude Desktop 配置文件中添加以下内容(%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "windows-diagnostics": {
      "command": "node",
      "args": ["C:\\path\\to\\your\\windows-diagnostics-mcp\\build\\index.js"],
      "env": {
        "NODE_ENV": "production"
      }
    }
  }
}

重要:为了实现全部功能,请以管理员身份运行 Claude Desktop,确保能够正确访问事件日志和注册表。

对于其他 MCP 客户端

服务器可以通过以下方式启动:

node build/index.js

可用工具

MCP 服务器提供了以下代理可以使用的工具:

系统诊断工具

1. get_system_diagnostics

全面的系统诊断报告,包括所有事件类型。

参数:

  • daysBack(数字,默认值:7):回溯天数以获取事件
  • detailed(布尔,默认值:false):是否包含详细的事件信息

2. get_shutdown_events

仅获取关机和重启事件。

参数:

  • daysBack(数字,默认值:7):回溯天数以获取事件

3. get_bsod_events

获取蓝屏死机(BSOD)事件。

参数:

  • daysBack(数字,默认值:7):回溯天数以获取事件

4. get_system_uptime

获取当前系统运行时间和启动信息。

参数:

5. analyze_system_stability

分析系统稳定性并提供建议。

参数:

  • daysBack(数字,默认值:30):分析天数以进行稳定性评估

注册表诊断工具

6. search_registry

通过关键字搜索 Windows 注册表。

参数:

  • searchTerm(字符串,必需):在注册表中搜索的关键字
  • maxResults(数字,默认值:50):返回的最大结果数量

7. analyze_startup_programs

分析启动程序中的可疑条目。

参数:

8. scan_system_components

扫描系统组件如服务、驱动程序和卸载条目中的问题。

参数:

9. find_orphaned_entries

查找指向不存在文件的孤立注册表条目。

参数:

10. get_registry_health

获取整体注册表健康状况评估。

参数:

11. scan_security_risks

扫描注册表中的潜在安全风险。

参数:

使用示例

一旦与兼容的 MCP 客户端配置好,代理可以使用如下命令:

系统诊断

  • "检查我的系统在过去一周内是否有任何崩溃"
  • "分析我的 Windows 系统稳定性"
  • "显示最近的 BSOD 事件"
  • "我的当前系统运行时间是多少?"
  • "给我一个全面的诊断报告"

注册表诊断

  • "搜索注册表中与 'Adobe' 相关的条目"
  • "分析我的启动程序中的可疑条目"
  • "检查孤立的注册表条目"
  • "扫描我的注册表中的安全风险"
  • "给我一个整体的注册表健康状况评估"
  • "扫描系统组件中的问题"

安全注意事项

  • 管理员权限:以管理员权限运行以完全访问事件日志和注册表
  • PowerShell 执行:服务器执行 PowerShell 脚本来收集系统信息
  • 注册表访问:注册表操作需要适当的权限,并可能影响系统稳定性
  • 本地访问:此服务器仅访问本地系统信息,不进行网络请求
  • 事件日志访问:需要适当的权限来读取 Windows 事件日志
  • 执行策略:PowerShell 执行策略必须允许脚本执行

故障排除

常见问题

  1. PowerShell 执行策略错误

    无法加载,因为在此系统上禁止运行脚本
    

    解决方案:配置 PowerShell 执行策略:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
    
  2. 访问被拒绝错误

    • 以管理员身份运行 MCP 客户端(例如 Claude Desktop)
    • 某些事件日志和注册表键需要提升的权限
    • 检查用户账户权限
  3. 注册表访问错误

    • 确保具有适当的注册表访问权限
    • 某些注册表键需要 SYSTEM 级别访问
    • 以管理员身份运行以完全访问注册表
  4. JSON 解析错误

    • 检查 PowerShell 是否输出有效的 JSON
    • 验证没有额外的输出写入到标准输出
    • 检查 PowerShell 版本兼容性
  5. 未找到事件

    • 如果系统稳定,这可能是正常的
    • 尝试增加 daysBack 参数
    • 检查事件日志服务是否正在运行
  6. 脚本执行被阻止

    • 验证 PowerShell 执行策略设置
    • 检查是否有防病毒软件阻止脚本执行
    • 确保 PowerShell 模块未损坏

调试

启用调试日志记录,设置环境变量:

set DEBUG=mcp:*
node build/index.js

PowerShell 执行策略详情

服务器需要执行 PowerShell 脚本。常见的执行策略:

  • 受限:不允许任何脚本(某些系统上的默认设置)
  • 远程签名:允许本地脚本,下载的脚本必须签名
  • 不受限:允许所有脚本(不推荐)

检查当前策略:

Get-ExecutionPolicy

推荐设置:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

监控的事件类型

服务器监控这些 Windows 事件日志条目:

系统事件

  • 1074:由用户/应用程序发起的系统关机
  • 1076:记录系统关机原因
  • 6005:事件日志服务启动(启动)
  • 6006:事件日志服务停止(关机)
  • 6008:检测到意外关机
  • 6009:系统启动
  • 6013:报告系统运行时间

关键事件

  • 41:内核电源关键错误(意外关机)
  • 1001:Windows 错误报告 BSOD
  • 1003:系统崩溃转储创建

应用程序事件

  • 1000:应用程序错误/崩溃
  • 1001:应用程序挂起
  • 1002:应用程序恢复

硬件/驱动器事件

  • 219:驱动器加载问题
  • 7026:服务启动失败
  • 7000:服务启动失败
  • 7009:服务超时
  • 7031:服务崩溃

分析的注册表区域

注册表诊断工具检查:

启动位置

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
  • HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
  • 启动文件夹条目

系统组件

  • 已安装的服务
  • 设备驱动程序
  • 卸载条目
  • 系统文件关联

安全相关的键

  • 安全策略
  • 用户账户设置
  • 网络配置
  • 浏览器设置

输出格式

服务器提供结构化的信息,包括:

  • 事件时间戳 以 ISO 格式
  • 事件描述 以纯英文
  • 稳定性评分 (0-100 分)
  • 可操作建议
  • 系统运行时间统计
  • 内存转储信息
  • 硬件错误摘要
  • 注册表键路径和值
  • 安全风险评估
  • 文件存在验证

开发

要修改或扩展服务器:

  1. 编辑源代码:修改 src/index.ts
  2. 重新构建:运行 npm run build
  3. 测试:使用 MCP 检查器或兼容客户端
  4. 添加工具:遵循 MCP SDK 模式添加新的诊断功能

添加新的诊断功能

要添加新的诊断功能:

  1. 扩展 PowerShell 脚本,添加额外的事件日志查询或注册表操作
  2. ListToolsRequestSchema 处理程序中添加新的工具定义
  3. 实现相应的处理方法
  4. 更新文档
  5. 使用适当的权限进行测试

PowerShell 脚本指南

当添加新的 PowerShell 功能时:

  • 使用 ConvertTo-Json 进行结构化输出
  • 使用 try-catch 块优雅地处理错误
  • 测试不同的执行策略
  • 在访问之前验证注册表键的存在
  • 使用适当的 PowerShell cmdlet 进行注册表操作

许可证

MIT 许可证 - 查看 LICENSE 文件了解详情。

贡献

欢迎贡献!请:

  1. 遵循 TypeScript 最佳实践
  2. 在 Windows 10/11 上进行测试
  3. 文档新功能
  4. 确保 PowerShell 兼容性
  5. 认真测试注册表操作
  6. 包含适当的错误处理

更改日志

v2.0.0

  • 添加了全面的注册表诊断工具
  • 注册表搜索功能
  • 启动程序分析
  • 系统组件扫描
  • 孤立条目检测
  • 注册表健康评估
  • 安全风险扫描
  • 增强了 PowerShell 执行策略文档

v1.0.0

  • 初始发布
  • 基本诊断功能
  • MCP 集成
  • 稳定性分析
  • PowerShell 后端