Skip to main content
Glama

showcase

Perfetto MCP

将自然语言转化为强大的 Perfetto 追踪分析

一个模型上下文协议 (MCP) 服务器,可将自然语言提示词转换为针对性的 Perfetto 分析。无需编写 SQL,即可快速解释卡顿、诊断 ANR、定位 CPU 热点线程、发现锁竞争并查找内存泄漏。

✨ 功能特性

  • 自然语言 → SQL:用简单的英语提问,获取精确的 Perfetto 查询

  • ANR 检测:自动识别并分析“应用无响应”(ANR) 事件

  • 性能分析:CPU 分析、帧卡顿检测、内存泄漏检测

  • 线程竞争:查找同步瓶颈和锁竞争

  • Binder 分析:分析 IPC 性能和缓慢的系统交互

showcase

📋 前置要求

  • Python 3.13+ (macOS/Homebrew):

    brew install python@3.13
  • uv (推荐):

    brew install uv

🚀 快速开始

Install MCP Server

或者添加到 ~/.cursor/mcp.json (全局) 或 .cursor/mcp.json (项目):

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

运行此命令。更多信息请参阅 Claude Code MCP 文档

# Add to user scope
claude mcp add perfetto-mcp --scope user -- uvx perfetto-mcp

或者编辑 ~/claude.json (macOS) 或 %APPDATA%\Claude\claude.json (Windows):

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

或者添加到 .vscode/mcp.json (项目) 或运行 "MCP: Add Server" 命令:

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

在 GitHub Copilot Chat 的 Agent 模式中启用。

编辑 ~/.codex/config.toml

[mcp_servers.perfetto-mcp]
command = "uvx"
args = ["perfetto-mcp"]

可选:使用本地 trace_processor_shell 二进制文件

如果您的网络环境阻止下载,请将 PERFETTO_MCP_TRACE_PROCESSOR_BIN_PATH 设置为本地 trace_processor_shell 二进制文件的绝对路径。

设置此环境变量后,perfetto-mcp 将直接使用该二进制文件。如果不设置,则保持默认的 perfetto Python 行为。

示例 (mcp.json):

{
  "mcpServers": {
    "perfetto-mcp": {
      "command": "uvx",
      "args": ["perfetto-mcp"],
      "env": {
        "PERFETTO_MCP_TRACE_PROCESSOR_BIN_PATH": "D:/tools/perfetto/trace_processor_shell.exe"
      }
    }
  }
}

示例 (~/.codex/config.toml):

[mcp_servers.perfetto-mcp]
command = "uvx"
args = ["perfetto-mcp"]
[mcp_servers.perfetto-mcp.env]
PERFETTO_MCP_TRACE_PROCESSOR_BIN_PATH = "D:/tools/perfetto/trace_processor_shell.exe"

本地安装 (开发服务器)

cd perfetto-mcp-server
uv sync
uv run mcp dev src/perfetto_mcp/dev.py
{
  "mcpServers": {
    "perfetto-mcp-local": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/git/repo/perfetto-mcp",
        "run",
        "-m",
        "perfetto_mcp"
      ],
      "env": { "PYTHONPATH": "src" }
    }
  }
}
pip3 install perfetto-mcp
python3 -m perfetto_mcp

📖 如何使用

示例起始提示词:

在 perfetto 追踪中,我看到 FragmentManager 执行耗时 438ms。你能找出为什么它耗时这么长吗?

必需参数

每个工具都需要这两个输入:

参数

描述

示例

trace_path

Perfetto 追踪文件的绝对路径

/path/to/trace.perfetto-trace

process_name

目标进程/应用名称

com.example.app

在提示词中

请明确指定追踪文件和进程,在提示词前加上:

"使用 perfetto 追踪 /absolute/path/to/trace.perfetto-trace 处理进程 com.example.app"

可选过滤器

许多工具支持额外的过滤(让您的 LLM 处理即可):

  • time_range: {start_ms: 10000, end_ms: 25000}

  • 工具特定阈值: min_block_ms, jank_threshold_ms, limit

🛠️ 可用工具

🔎 探索与发现

工具

用途

示例提示词

find_slices

调查切片名称并定位热点路径

"查找包含 'Choreographer' 的切片名称并显示顶部示例"

execute_sql_query

运行自定义 PerfettoSQL 进行高级分析

"运行自定义 SQL 以关联前 30 秒内的线程和帧"

🚨 ANR 分析

注意:如果记录的追踪包含 ANR,此功能很有用

工具

用途

示例提示词

detect_anrs

查找具有严重性分类的 ANR 事件

"检测前 10 秒内的 ANR 并总结严重性"

anr_root_cause_analyzer

深入分析 ANR 原因并按可能性排序

"分析 20,000 ms 左右的 ANR 根本原因并列出可能的原因"

🎯 性能分析

工具

用途

示例提示词

cpu_utilization_profiler

线程级 CPU 使用率和调度

"按线程分析 CPU 使用率并标记最热的线程"

main_thread_hotspot_slices

查找运行时间最长的主线程操作

"列出 10s–25s 期间 >50 ms 的主线程热点"

📱 UI 性能

工具

用途

示例提示词

detect_jank_frames

识别错过截止时间的帧

"查找超过 16.67 ms 的卡顿帧并列出最差的 20 个"

frame_performance_summary

整体帧健康指标

"总结帧性能并报告卡顿率和 P99 CPU 时间"

🔒 并发与 IPC

工具

用途

示例提示词

thread_contention_analyzer

查找同步瓶颈

"查找 15s–30s 之间的锁竞争并显示最差的等待"

binder_transaction_profiler

分析 Binder IPC 性能

"分析缓慢的 Binder 事务并按服务器进程分组"

💾 内存分析

工具

用途

示例提示词

memory_leak_detector

查找持续的内存增长模式

"检测过去 60 秒内的内存泄漏信号"

heap_dominator_tree_analyzer

识别占用内存的类

"分析堆支配类并列出主要占用者"

输出格式

所有工具均返回结构化的 JSON,包含:

  • Summary: 高级发现

  • Details: 工具特定结果

  • Metadata: 执行上下文及使用的任何回退方案

📚 资源

📄 许可证

Apache 2.0 许可证。详情请参阅 LICENSE


-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/antarikshc/perfetto-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server