perfonext-profiler-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| load_profileA | Parse and load a V8/Chrome CPU profile from disk. Supports both .cpuprofile files and Chrome DevTools Trace JSON exports. Returns a profile ID for use with other tools. |
| get_hotspotsA | Returns the top N functions by self-time (CPU time spent directly in the function, not its callees). Use this to find performance bottlenecks. |
| explain_functionA | Returns detailed timing info for a specific function: self-time, total-time, callers, and callees. Use this to understand why a function is slow. |
| compare_profilesA | Compare two loaded CPU profiles side-by-side. Shows functions that got slower/faster and new/removed hotspots. |
| suggest_optimizationsA | Analyzes the profile and returns structured optimization suggestions for the hottest functions. Detects high fan-in, recursion, dominant callers, V8-specific patterns, always reports CPU self-time cost for expensive functions, and deduplicates functions split across multiple call sites. |
| get_profile_summaryA | Returns an overview of a loaded profile: duration, sample count, top-level call tree (filtered to functions >0.1% of total time), and idle time percentage. For large profiles, the call tree is limited to depth 2 and top 20 children per node to keep output manageable. Also lists all loaded profiles if no ID is given. |
| read_source_contextA | Read the actual source code for a hot function and annotate each line with sampled tick counts from positionTicks. The returned window is sized to cover the function's actual hot lines, not just the area around its declaration; if any ticks still fall outside it, a |
| get_package_costsA | Aggregate CPU self-time by npm package. Identifies which third-party dependencies are consuming the most CPU, by parsing node_modules paths from the profile. Useful for deciding which packages to replace, lazy-load, or avoid. Scoped packages (e.g. @babel/core) are handled correctly. |
| how_to_collectA | Returns a ready-to-run command and step-by-step recipe for capturing a V8 CPU profile, then loading it with load_profile. Use this when you do not yet have a .cpuprofile file. Choose the scenario that matches how the code runs. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool maps to a distinct part of the profiling workflow: loading, summarizing, hotspot analysis, per-function detail, comparison, optimization, source inspection, package aggregation, and collection guidance. There is no meaningful overlap that would make an agent choose the wrong tool.
Most tools follow a clear snake_case verb_noun pattern such as load_profile, get_hotspots, and compare_profiles. A few names like explain_function and how_to_collect deviate slightly from the predominant get_ style, but the naming is still predictable and readable.
Nine tools is an ideal size for a profiler-analysis server: each tool serves a distinct analytical purpose and the set is neither bloated nor thin. The count feels appropriately scoped to the domain.
The tool surface covers the full workflow from capturing/loading profiles to summarizing, exploring hotspots, comparing profiles, reading source context, and identifying expensive packages. There are no obvious dead ends or missing operations that would prevent an agent from completing a typical profiling analysis.