Token导航 LogoToken导航TokenDH.com
Diag Session MCP logo
AI代理未说明官方级别未说明来源级核验

Diag Session MCP

MCP Server

一个用于分析Windows ETL跟踪文件的生产级MCP服务器,支持从.diagsession存档中提取ETL文件并进行性能分析。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
性能分析C#AI代理

安装说明

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

作者 / 组织

bivex

提供方

bivex

最后核验

2026/5/17 20:22

快速接入

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

详细介绍

诊断会话MCP服务器

用于分析.diagsession存档中的Windows ETL跟踪文件的生产级模型上下文协议(MCP)服务器。基于干净的架构原则和企业最佳实践构建。

特性

  • ETL跟踪分析:使用CPU采样数据分析Windows性能记录器跟踪
  • 呼叫树生成:构建显示包容性/排他性CPU时间的分层调用树
  • 符号分辨率:与Microsoft符号服务器集成,用于函数名称解析
  • .diagsession支持:自动从.diagsession ZIP存档中提取ETL文件
  • 流程过滤:按特定进程ID筛选分析
  • 深度控制:限制调用树深度以实现高效响应
  • MCP协议:通过标准MCP工具界面显示分析

建筑

服务器遵循严格分离关注点的分层架构:

┌─────────────────────────────────────┐
│      MCP Protocol Layer             │  Tool handlers, schemas
├─────────────────────────────────────┤
│      Application Layer              │  Use cases, DTOs
├─────────────────────────────────────┤
│      Domain Layer                   │  Business logic, models
├─────────────────────────────────────┤
│      Infrastructure Layer           │  TraceEvent adapter, ZIP extraction
└─────────────────────────────────────┘

关键组件

  • 领域模型: CallTreeNode, FunctionStats, AnalysisResult, AnalysisOptions
  • 域接口: IEtlAnalyzer, IDiagSessionExtractor
  • 应用: AnalyzeDiagSessionUseCaseDTO, RequestContext
  • 基础设施: TraceEventEtlAnalyzer, DiagSessionArchiveExtractor
  • 主控程序: AnalyzeCallTreeTool

安装

先决条件

  • .NET 8.0 SDK或更高版本
  • Windows操作系统(TraceEvent库需要)

构建

dotnet restore
dotnet build

dotnet run --project DiagSession-Mcp.csproj

服务器将启动并通过stdio传输监听MCP请求。

MCP工具:analyze_call_tree

参数

参数类型必填说明
diagsession_pathstring.diagsession或.etl文件的路径
max_depthinteger最大调用树深度(默认值:10,最大值:50)
process_idinteger按特定进程ID筛选
symbol_pathstring符号服务器路径
timeout_secondsinteger符号加载超时(默认值:30,最大值:300)
max_symbol_size_mbnumber跳过大于此大小的符号
verboseboolean启用详细日志记录

响应架构

{
  "callTrees": {
    "4036": {
      "functionName": "InterruptEstimator (PID: 4036)",
      "moduleName": null,
      "inclusiveSamples": 246,
      "exclusiveSamples": 0,
      "inclusivePercent": 100.0,
      "exclusivePercent": 0.0,
      "inclusiveTimeMs": 246.0,
      "exclusiveTimeMs": 0.0,
      "children": [...]
    }
  },
  "processNames": {
    "4036": "InterruptEstimator"
  },
  "totalSamples": 246,
  "profileIntervalMs": 1.0,
  "analysisTimestamp": "2025-11-25T07:36:00Z",
  "correlationId": "abc123",
  "topFunctionsByExclusive": [...],
  "topFunctionsByInclusive": [...]
}

错误代码

  • FILE_NOT_FOUND:指定的文件不存在
  • INVALID_PARAMS:提供的参数无效
  • TIMEOUT:分析超时
  • INTERNAL_ERROR:意外的服务器错误

配置

配置从加载 appsettings.json 以及环境变量。

应用程序参数

{
  "DiagSessionMcp": {
    "SymbolPath": "srv*c:\\symbols*https://msdl.microsoft.com/download/symbols",
    "DefaultTimeoutSeconds": 30,
    "MaxConcurrentAnalyses": 2,
    "MaxMemoryMB": 4096,
    "AllowedDirectories": ["C:\\DiagSessions"],
    "LogLevel": "Information"
  }
}

环境变量

  • _NT_SYMBOL_PATH:覆盖符号服务器路径
  • DIAGSESSION_MCP__SYMBOLPATH:通过配置覆盖符号路径

发展

项目结构

DiagSession-Mcp/
├── src/
│   ├── Domain/
│   │   ├── Models/          # Domain entities
│   │   └── Interfaces/      # Domain contracts
│   ├── Application/
│   │   ├── UseCases/        # Application logic
│   │   ├── DTOs/            # Data transfer objects
│   │   └── Common/          # Cross-cutting concerns
│   ├── Infrastructure/
│   │   └── Adapters/        # External system adapters
│   ├── Mcp/
│   │   └── Tools/           # MCP tool implementations
│   └── Program.cs           # Entry point
├── appsettings.json
└── DiagSession-Mcp.csproj

测试

# Run all tests
dotnet test

# Run specific test category
dotnet test --filter Category=Unit
dotnet test --filter Category=Integration

设计原则

此服务器遵循企业架构最佳实践:

  • 限界上下文:专注于ETL跟踪分析
  • 端口和适配器:接口背后的外部依赖关系
  • 领域驱动设计:具有业务逻辑的丰富域模型
  • 关注点分离:严格分层,责任明确
  • 依赖注入:通过构造函数注入的所有依赖项
  • 不变性:DTO和域模型在可能的情况下是不可变的
  • 明确合同:对工具模式进行版本控制和记录
  • 可观测性:带有关联ID的结构化日志记录
  • 错误处理:域错误与技术故障分开
  • 可测试性:每一层都可以独立测试

许可证

麻省理工学院

鸣谢

内置:

目录标签

目录标签

性能分析C#AI代理本地部署Windows诊断ETL分析MCP协议符号解析

接入字段

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

未说明

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

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明none部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP