mcpField
S
sourcemap-retrace-mcp

sourcemap-retrace-mcp

ローカル
github.com/vola-trebla開発ツール023 週間前に更新

sourcemap-retrace-mcp について

sourcemap-retrace-mcp は、圧縮された JavaScript の本番エラーを調べる開発者向けの MCP サーバーです。スタックフレームを元の TypeScript の位置に対応付け、周辺コードを取得し、ソースマップを検査します。

主な機能

  1. 01圧縮スタックフレームを TypeScript の位置に対応付け
  2. 02位置マーカー付きで周辺のソース行を取得
  3. 03ソースマップの有無とソースパスを監査

活用シーン

  1. 01本番エラーをソース位置まで追跡
  2. 02対応するエラー周辺のコードを確認
  3. 03デプロイ前にソースマップを検査

MCP 対応

スタックの逆引き、ソースコンテキストの取得、ソースマップ監査のツールを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"vola-trebla-sourcemap-retrace": {
"command": "npx",
"args": [
"-y",
"sourcemap-retrace-mcp"
]
}
}
}
起動コマンドnpx -y sourcemap-retrace-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmsourcemap-retrace-mcp0.2.0

ツール

7

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
stackTracestringはい圧縮されたエラーの生のスタックトレース(複数行文字列)
sourcemapDirstringはい.map ファイルを含むディレクトリ(または .js.map ファイルが格納された dist ディレクトリ)

詳細

🗺️ sourcemap-retrace-mcp

npm CI License: MIT

本番環境でアプリがクラッシュしました。スタックトレースは役に立ちません。AI エージェントにもバグの場所が分かりません。

ソースマップを使って、本番環境の圧縮されたスタックトレースを元の TypeScript ソースファイル、行、列に変換する MCP サーバーです。エージェントが難読化されたコードを20分も推測する前に使えます。


🤔 問題

監視ツールから次の内容が送られてきます。

TypeError: Cannot read properties of undefined (reading 'userId')
    at e.<anonymous> (main.a3f2c1.js:1:47821)
    at h (vendor.d4e5f6.js:1:12045)
    at processQueue (main.a3f2c1.js:1:89234)

エージェントにデバッグを依頼します。エージェントは main.a3f2c1.js を読み込みます。そこには40,000文字の圧縮された JavaScript があります。47821列目の e.<anonymous> が何を意味するのか、まったく分かりません。

sourcemap-retrace-mcp を使うと、次のように対応付けられます。

    at validateSession (src/auth/session.ts:142:8)
    at handleRequest (src/api/middleware.ts:67:3)

これでエージェントは、確認すべき場所を正確に把握できます。


🛠️ ツール

retrace_stack

圧縮されたスタックトレースを、元の TypeScript のソース位置に変換します。生のスタックトレースと、.js.map ファイルを含むディレクトリを渡します。

Retrace Results
  Frames mapped: 3  |  Unmapped: 1

TypeError: Cannot read properties of undefined (reading 'userId')
    at validateSession (src/auth/session.ts:142:8)
    at handleRequest (src/api/middleware.ts:67:3)
    at processQueue (src/queue/processor.ts:28:12)
    at Module._compile (node:internal/modules/cjs/loader:1376:14)
retrieve_code_context

対応付けられたエラー位置の周辺にある元のソースコードを、行番号と列位置のポインター付きで表示します。

Code Context
  File: src/auth/session.ts
  Target: line 142, column 8

  139 │   const session = await getSession(token);
  140 │   if (!session) throw new AuthError("invalid token");
  141 │
> 142 │   return session.userId;
        │         ^
  143 │ }
  144 │
  145 │ export async function refreshSession(token: string) {
audit_sourcemap_match

dist ディレクトリに .map ファイルが存在し、実際にディスク上にあるソースファイルを参照していることを検証します。デプロイ前に、古いマップや不足しているマップを検出できます。

Sourcemap Audit
  Directory: dist/
  Files checked: 4
  OK: 3  |  Missing maps: 0  |  Broken sources: 1

  ✓ main.a3f2c1.js — 47 source(s) mapped
  ✓ vendor.d4e5f6.js — 312 source(s) mapped
  ✓ worker.b1c2d3.js — 8 source(s) mapped
  ⚠ legacy.e7f8a9.js — 2 source(s) not found on disk:
      ../src/utils/deprecated.ts
      ../src/utils/compat.ts

⚡ セットアップ

{
  "mcpServers": {
    "sourcemap-retrace": {
      "command": "npx",
      "args": ["-y", "sourcemap-retrace-mcp"]
    }
  }
}

🚀 使い方

「本番環境でエラーが発生しました。スタックトレースはこちらです:[貼り付け]。dist ファイルは /path/to/dist にあります。トレースを元に戻して、エラー周辺のコードを表示し、原因を教えてください。」

エージェントは retrace_stack を実行し、続いて対応付けられた位置に対して retrieve_code_context を実行します。最後に、クラッシュした実際の TypeScript を読み取れます。

次のツールとの併用も便利です。


📦 リンク

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。