原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

V8 Cpu Profile Decoder MCP

作者:vola-trebla版本 0.3.0i★ –i在你的电脑上运行
注册名称io.github.vola-trebla/v8-cpu-profile-decoder-mcp

安装

概览

作者提供的说明(英文原文)

MCP server that decodes V8 CPU profiles into token-efficient bottleneck summaries for AI agents

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 其他

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 注册中心没有列出需要填写的密钥。

你需要

  • npm已安装 Node.js(用于 npx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "v8-cpu-profile-decoder": {
      "command": "npx",
      "args": [
        "-y",
        "v8-cpu-profile-decoder-mcp"
      ]
    }
  }
}

在终端中运行这条命令

claude mcp add v8-cpu-profile-decoder -- npx -y v8-cpu-profile-decoder-mcp

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "v8-cpu-profile-decoder": {
      "command": "npx",
      "args": [
        "-y",
        "v8-cpu-profile-decoder-mcp"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "v8-cpu-profile-decoder": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "v8-cpu-profile-decoder-mcp"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 vola-trebla 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“其他”中的其他服务器比较i

  • 星标数多于此分类中其他 18386 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 18386 个服务器的 8% 更新
  • 基础检查结果等于或优于此分类中其他 18386 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

V8 Cpu Profile Decoder MCP 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.3.0)于6个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。

有什么可以替代它?

同一分类中有:Spec Driven Development, Remote Desktop Commander, Tethered Trust

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Spec Driven Development

作者:formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

在你的电脑上运行★ 440MIT14个月前更新
安装

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

在云端运行★ 211前天更新
安装

Tethered Trust

作者:tetheredtrust.com

Fit, compatibility and recall checks for AI agents before they buy: verdicts, evidence, receipts.

在云端运行今天更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

v8-cpu-profile-decoder-mcp 🐸⚡

An MCP server that decodes V8 CPU profiles into token-efficient bottleneck summaries for AI agents.

Your Node.js app is slow. You ran --cpu-prof. Now you have a 20MB .cpuprofile file — and your AI agent is completely blind to it.


🤔 The Problem

V8 CPU profiles are massive. A typical .cpuprofile from a production Node.js app is 5–50MB of raw JSON — millions of lines mapping memory addresses, tick counts, and microsecond execution sequences. It looks like this:

{

"nodes": [ { "id": 1482, "callFrame": { "functionName": "processRequest", "url": "file:///app/dist/server.js", "lineNumber": 847 }, "hitCount": 3241, "children": [1483, 1490] }, ... ], "samples": [1482, 1483, 1482, 1490, 1482, ...], "timeDeltas": [120, 98, 115, 102, ...] }

An AI agent attempting to read this file instantly collapses its context window and fails. Even if it could read it, it can't run the aggregation algorithms needed to compute inclusive/exclusive CPU times across the call tree.

So when you ask your agent:

  • 🙈 _"Which function is consuming the most CPU?"_
  • 🙈 _"What's calling my slow database query?"_
  • 🙈 _"Which TypeScript file is the bottleneck actually coming from?"_

...it's guessing. It has no access to the profiling data.

v8-cpu-profile-decoder-mcp fixes that. It decodes the profile locally and hands the agent a 10-line semantic summary instead of a 50MB file.


🛠️ Tools

extract_hottest_functions

Parses the .cpuprofile and returns the top N functions ranked by exclusive CPU time (self time). Filters out V8 internals and Node.js built-ins — only user code.

{

"profile_path": "/app/profiles/CPU.20260516.cpuprofile", "top_n": 5, "min_self_percent": 1.0 }

[

{ "rank": 1, "functionName": "hashPassword", "url": "file:///app/dist/auth/crypto.js", "lineNumber": 42, "selfTimeMs": 1842.5, "totalTimeMs": 1842.5, "selfPercent": 61.32, "totalPercent": 61.32, "hitCount": 3241 }, { "rank": 2, "functionName": "parseJsonBody", "url": "file:///app/dist/middleware/body.js", "lineNumber": 18, "selfTimeMs": 412.1, "totalTimeMs": 412.1, "selfPercent": 13.71, "totalPercent": 13.71, "hitCount": 724 } ]


analyze_call_tree_path

Finds all callers of a specific function and shows how often each one invoked it. Accepts partial, case-insensitive function name matching.

{

"profile_path": "/app/profiles/CPU.20260516.cpuprofile", "function_name": "hashPassword", "top_callers": 3 }

{

"targetFunction": "hashPassword", "matchedNodes": 2, "totalSelfTimeMs": 1842.5, "totalPercent": 61.32, "callers": [ { "functionName": "loginHandler", "url": "file:///app/dist/routes/auth.js", "lineNumber": 94, "callCount": 2180, "selfTimeMs": 240.1 }, { "functionName": "validateSession", "url": "file:///app/dist/middleware/auth.js", "lineNumber": 31, "callCount": 1061, "selfTimeMs": 116.8 } ] }


correlate_source_code

Maps compiled JS bottlenecks back to their original TypeScript source locations using .js.map files. Falls back gracefully to compiled JS locations if no source map is found.

{

"profile_path": "/app/profiles/CPU.20260516.cpuprofile", "top_n": 5 }

{

"resolved": [ { "rank": 1, "generatedUrl": "file:///app/dist/auth/crypto.js", "generatedLine": 42, "source": { "originalFile": "src/auth/crypto.ts", "originalLine": 38, "originalColumn": 2, "originalFunction": "hashPassword" }, "selfTimeMs": 1842.5, "selfPercent": 61.32 } ], "sourcemapErrors": [] }

analyze_gc_pressure

Reports garbage collection overhead as a percentage of profiling duration, broken down by GC type. Flags when GC exceeds a configurable threshold and provides a targeted recommendation.

{

"profile_path": "/app/profiles/CPU.cpuprofile", "threshold_percent": 10 }

{

"gc_ticks": 184, "total_ticks": 1240, "gc_percentage": 14.84, "gc_type_breakdown": { "scavenger": 122, "mark_sweep": 0, "mark_compact": 0, "incremental": 62, "generic": 0 }, "exceeds_threshold": true, "threshold_percent": 10, "verdict": "GC consumed 14.84% of CPU — exceeds the 10% threshold. Dominated by Scavenger (short-lived object pressure). Consider object pooling, reusing buffers, or reducing closure captures." }


diff_profiles

Compares two .cpuprofile files (before/after an optimization) and returns per-function CPU time deltas, normalized against each profile's total duration. Frames are matched by call-frame coordinates, not transient node IDs, so alignment is stable across profiling sessions.

{

"before_profile_path": "/app/profiles/before.cpuprofile", "after_profile_path": "/app/profiles/after.cpuprofile", "top_n": 5 }

{

"before_duration_ms": 5000, "after_duration_ms": 4800, "total_execution_delta_ms": -200, "total_execution_delta_percent": -4, "top_improvements": [ { "function_name": "hashPassword", "url": "file:///app/dist/auth/crypto.js", "line_number": 42, "before_ms": 1842.5, "after_ms": 620.1, "absolute_diff_ms": -1222.4, "relative_diff_percent": -66.34 } ], "top_regressions": [], "only_in_before": [], "only_in_after": [] }


analyze_async_bottlenecks

Detects event-loop overhead by identifying V8 internal frames representing async machinery — microtask queue processing, nextTick saturation, and timer/immediate callbacks.

{

"profile_path": "/app/profiles/CPU.cpuprofile", "threshold_percent": 10 }

{

"total_ticks": 1240, "async_ticks": 186, "event_loop_overhead_ms": 372, "event_loop_overhead_percent": 15.0, "dominant_async_patterns": [ { "pattern": "promise_chains", "ticks": 142, "percent": 11.45 }, { "pattern": "nexttick_saturation", "ticks": 44, "percent": 3.55 } ], "verdict": "Event-loop overhead is 15.0% of CPU — exceeds the 10% threshold. Promise chain overhead is visible in the profile. Consider batching microtasks, using Promise.all() to parallelise I/O, or offloading CPU-bound continuations to worker threads." }


🚀 Installation

npx v8-cpu-profile-decoder-mcp

Or install globally:

npm install -g v8-cpu-profile-decoder-mcp
Generate a CPU profile in Node.js
# Single run

node --cpu-prof your-script.js

With custom output dir

node --cpu-prof --cpu-prof-dir ./profiles your-script.js

Or programmatically via Chrome DevTools → Performance tab → Record.

Claude Desktop config
{

"mcpServers": { "v8-cpu-profile-decoder-mcp": { "command": "npx", "args": ["-y", "v8-cpu-profile-decoder-mcp"] } } }


💡 Example Agent Prompts

_"Here's my CPU profile at /app/profiles/CPU.cpuprofile — which function is consuming the most CPU?"_

_"Find what's calling processRequest in this profile and how often"_

_"Map the top 10 hottest functions back to their original TypeScript files"_

_"My Node.js API is slow under load — profile is at /tmp/CPU.cpuprofile, find the bottleneck"_

_"Is GC the bottleneck? Check the profile at /tmp/CPU.cpuprofile and tell me what kind of allocation is causing it"_

_"Compare these two profiles before and after my optimization — which functions improved and which regressed?"_

_"Is this app spending too much CPU on async overhead and event-loop machinery?"_


🔗 Related Projects


📄 License

MIT © vola-trebla

问 PopNx