プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のための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の3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: パソコンで動く
  • トランスポート: stdio
  • カテゴリ: その他

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

  • 基本チェック:1項目中1項目に合格
  • あなたのパソコンで、あなたのユーザーと同じ権限(ファイル、ネットワーク、アプリ)で動きます。
  • レジストリには、入力が必要なキーは載っていません。

必要なもの

  • npmNode.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月7日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント vola-trebla で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • – 対象外

    エンドポイントが応答する

    これはパソコンで動くため、インターネット上のエンドポイントはありません

  • – 対象外

    OAuthでサインイン

    パソコンで動き、代わりにローカルの設定を使います

  • … 未チェック

    ツールの説明に隠れた指示がない

    パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです

その他のほかのサーバーとの比較i

  • このカテゴリのほかの18334件のうち0%よりスターが多い
  • このカテゴリのほかの18334件のうち8%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの18334件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

V8 Cpu Profile Decoder MCPは安全ですか?

当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.3.0)がレジストリに届いたのは6 か月前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, ProAgentStore

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Remote Desktop Commander

作者:desktop-commander

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

クラウドで動く★ 211一昨日更新
インストール

ProAgentStore

作者:ProAgentStore

MCP-first control plane for ProAgentStore agents and private instances.

クラウドで動く今日更新
インストール

作者の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に聞く