Labsco
MCP SERVER

Pprof Analyzer

by ZephyrDeng

Hand a Go pprof profile to an assistant and get the hot spots, a flame graph, or a diff against a baseline.

Runtime Debugging & Crash Analysis
Summary
Comparison tools, not just a top-N list.

Anyone can read a single profile; the work is telling whether this release is worse than the last one, and that is what the leak detector, the baseline diff and the time-series analysis are for — growth by object type and allocation site is a far better lead than a flat allocation ranking. Two limits to plan around: the SVG flame graph needs Graphviz installed, and the interactive UI only runs on macOS, with errors from the background process not surfaced back to you.

What it is

A Go MCP server for analysing pprof performance profiles. It parses the profile itself for the top-N and flame-graph output, and shells out to `go tool pprof` when you want an SVG or the interactive web UI.

What you get
  • `analyze_pprof` — cpu, heap, goroutine, allocs, mutex and block profiles, output as text, markdown, JSON top-N or hierarchical flame-graph JSON
  • `generate_flamegraph` — an SVG flame graph written to a path you name, with the content returned as well
  • `detect_memory_leaks` — compares two heap snapshots and reports growth by object type and allocation site, with a threshold you set
  • `compare_profiles` — baseline against target for any profile type, listing regressed, improved, added and removed functions
  • `analyze_heap_time_series` — three or more heap profiles in order, turned into growth rates and trending object types
  • `open_interactive_pprof` launches the pprof web UI in the background and returns its PID; `disconnect_pprof_session` stops it again
Requirements

Install with `go install`, build from source, or run the Docker image, which bundles the dependency you would otherwise install yourself. `generate_flamegraph` needs Graphviz on your PATH, because the SVG is produced by the dot command. `open_interactive_pprof` is macOS only and needs the go command available; it defaults to port 8081. Profiles can be passed as file, http or https URIs.

Setup effort

One command — go install github.com/ZephyrDeng/pprof-analyzer-mcp@latest