← 返回目录
P

Perfetto MCP Server

社区
将自然语言转换为强大的 Perfetto 跟踪分析
GitHub 源仓库 ↗
★ 214 Stars 分类 · 开发工具 热门
63FMRS · C

一个面向 Android 性能分析的综合 MCP 服务器,将自然语言提示转化为 12 种专用 Perfetto 分析工具,覆盖 ANR、CPU、帧性能、锁竞争、Binder IPC 和内存分析。仅支持 stdio 传输,要求 Python 3.13+ 和 uv,非官方(Apache-2.0 许可的社区项目)。

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

Perfetto MCP Server 是一个 Model Context Protocol(MCP)服务器,可将自然语言提示转化为针对性的 Perfetto 分析。它无需编写 SQL 即可解释卡顿、诊断 ANR、找出 CPU 热点线程、揭示锁竞争并发现内存泄漏。每个工具都需要 trace_path(Perfetto 跟踪文件的绝对路径)和 process_name(目标进程/应用名称)。所有工具都返回包含摘要、详情和元数据的结构化 JSON。

工具能力

find_slices
调查 slice 名称并定位热点路径
execute_sql_query
运行自定义 PerfettoSQL 进行高级分析
detect_anrs
查找 ANR 事件并按严重程度分类
anr_root_cause_analyzer
深入分析 ANR 根因并按可能性排序
cpu_utilization_profiler
分析线程级 CPU 使用率和调度情况
main_thread_hotspot_slices
找出主线程上运行时间最长的操作
detect_jank_frames
识别错过帧截止时间的卡顿帧
frame_performance_summary
汇总整体帧健康指标
thread_contention_analyzer
查找同步瓶颈
binder_transaction_profiler
分析 Binder IPC 性能
memory_leak_detector
发现持续内存增长模式
heap_dominator_tree_analyzer
识别占用内存最多的类

安装接入

需要 Python 3.13+ 和 uv(macOS 可通过 brew install [email protected] 和 brew install uv 安装)。在 Cursor、Claude Code、VS Code 或 Codex 中添加 MCP 服务器配置,命令为 uvx perfetto-mcp。也可通过 pip3 install perfetto-mcp 后运行 python3 -m perfetto_mcp。如网络受限,可设置环境变量 PERFETTO_MCP_TRACE_PROCESSOR_BIN_PATH 指向本地 trace_processor_shell 二进制的绝对路径。开发模式可在 perfetto-mcp-server 目录中运行 uv sync 和 uv run mcp dev src/perfetto_mcp/dev.py。

claude_desktop_config.json
{"mcpServers":{"perfetto-mcp":{"command":"uvx","args":["perfetto-mcp"]}}}

选型与风险

适合谁

  • 需要分析 Android Perfetto 跟踪数据的 Android 开发者
  • 希望在无需手写 SQL 的情况下进行性能分析(卡顿、ANR、锁竞争、内存泄漏)的工程师
  • 支持 stdio MCP 的客户端(如 Cursor、Claude Code、VS Code、Codex)

不适合谁

  • 不分析 Perfetto 跟踪数据的用户
  • 不提供 trace_path 和 process_name 所需绝对路径的场景
  • 不支持通过 uvx 或 pip 运行 Python MCP 服务器的环境

所需权限

  • 需要读取本地 Perfetto 跟踪文件(通过 trace_path 传入的绝对路径)
  • 首次运行时可能需要下载 trace_processor_shell(或通过 PERFETTO_MCP_TRACE_PROCESSOR_BIN_PATH 使用本地二进制)

风险与副作用

  • 跟踪文件包含应用和系统运行时细节,共享跟踪数据可能泄露敏感信息
  • 默认行为可能下载外部二进制文件,受限网络环境应配置本地路径
  • 由 LLM 生成查询,结果需人工验证

常见排障

  1. 确认 trace_path 是指向 .perfetto-trace 文件的绝对路径
  2. 确认 process_name 与跟踪中的进程名一致(如 com.example.app)
  3. 如 trace_processor_shell 下载失败,设置 PERFETTO_MCP_TRACE_PROCESSOR_BIN_PATH 指向本地二进制
  4. 确认已安装 Python 3.13+ 和 uv
  5. 在提示中明确写出跟踪路径和进程名,例如 'Use perfetto trace /absolute/path for process com.example.app'

使用场景

解释为何 FragmentManager 执行耗时 438ms
检测并分析 ANR 的根本原因
找出 CPU 热点线程和主线程热点操作
检测超过 16.67ms 的卡顿帧并汇总帧性能
定位锁竞争和缓慢的 Binder 事务
发现内存泄漏信号和占用堆内存最多的类

支持客户端

Cursor完整支持
Claude Code完整支持
VS Code完整支持
Codex完整支持