← 返回目录
M

MemoryLens MCP

社区
按需进行 .NET 内存分析,并提供 AI 可执行的代码修复建议。
GitHub 源仓库 ↗
★ 10 Stars 分类 · 开发工具 热门 源版本 989fdfb95b11
51FMRS · D

MemoryLens MCP 为 .NET 内存分析提供了有用的 MCP 接口,它封装了 JetBrains dotMemory 并添加了基于规则的智能发现。它的优势在于能够提供 AI 可操作的修复建议,并通过 npm/dnx/全局工具简化了部署。然而,它对 .NET 10 和 dotMemory CLI 的依赖,以及自动下载外部工具可能带来的潜在安全风险,是用户需要权衡的因素。

可靠性
8/20
安全与权限
8/20
维护活跃度
10/20
文档质量
14/20
安装易用性
11/20
查看 FMRS 评分方法 →

MemoryLens MCP 是一个 MCP 服务器,用于对 .NET 进程进行按需内存分析。它基于 JetBrains dotMemory,并通过启发式规则引擎提供可操作的、AI 可执行的代码修复建议。支持通过 EventPipe 进行进程内堆快照,并内置泄漏启发式规则。该服务器需要 .NET 10 SDK 或更高版本,并支持多种部署方式:npm 启动器、.NET 全局工具或 Docker。它包含自动下载和缓存 dotMemory CLI 的工具。

工具能力

ensure_dotmemory
下载并验证 JetBrains dotMemory CLI 是否可用。
list_processes
列出可分析的目标 .NET 进程(通过诊断 IPC 端点发现)。
snapshot
捕获目标进程的单个内存快照。
analyze
对捕获的快照运行规则引擎,并返回内存问题发现。
compare_snapshots
捕获两个快照(带可配置延迟)并进行比较,用于检测内存增长。
get_rules
列出所有可用的分析规则及其元数据。

安装接入

使用 npx(需要 .NET 10 SDK):在 MCP 客户端配置中添加stdio服务器,命令为 npx -y memorylens-mcp。或者使用 dnx:dnx MemoryLens.Mcp --yes。也可以安装 .NET 全局工具:dotnet tool install -g MemoryLens.Mcp

claude_desktop_config.json
{
  "mcpServers": {
    "memorylens": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "memorylens-mcp"
      ]
    }
  }
}

选型与风险

适合谁

  • .NET 开发人员需要快速、按需的内存分析,并与 AI 辅助编码工具集成。
  • 需要分析运行中的 .NET 进程(通过 PID)的调试场景。
  • 希望自动检测常见内存泄漏模式(如事件处理程序泄漏、静态集合无限增长)的团队。

不适合谁

  • 不适用于非 .NET 进程。
  • 不适合没有安装 .NET 10 SDK 或不受支持的平台(如 FreeBSD)的用户。
  • 不适用于需要离线工作的场景,除非已提前手动安装并缓存 dotMemory CLI。

所需权限

  • 执行任意命令以启动进程(如 dotMemory CLI)。
  • 可能访问网络以下载工具和依赖项。
  • 如果从容器运行,可能需要 ptrace 能力和主机 PID 命名空间。

风险与副作用

  • 工具可能会下载并执行外部二进制文件(dotMemory CLI),带来供应链风险。
  • 在目标进程上执行内存分析可能会影响其性能或稳定性。
  • 需要以提升的权限运行,可能带来安全风险。

常见排障

  1. 确保 .NET 10 SDK 在 PATH 中。
  2. 对于不受支持的平台,设置 DOTMEMORY_PATH 指向现有的 dotMemory CLI。
  3. 如果自动下载失败,检查网络连接并重试 `ensure_dotmemory`。
  4. 如果进程列表为空,确认目标进程是 .NET 进程且正在运行。
  5. 参考错误场景表:'Platform not supported'、'Network/download failure'、'chmod +x failed' 等。

使用场景

对运行中的 .NET 进程进行内存快照,查看当前内存状态并发现潜在泄漏。
比较前后两个快照以检测内存增长,例如在处理大量请求后。
通过规则引擎获得具体的、AI 可操作的内存问题修复建议。

支持客户端

Claude Desktop完整支持
VS Code部分支持
Visual Studio部分支持
Claude Code完整支持