🚀 ソースマップパーサー
このプロジェクトは、WebAssemblyベースのソースマップパーサーを実装しています。JavaScriptのエラースタックトレースをソースコードにマッピングし、関連するコンテキスト情報を抽出することができます。開発者は、JavaScriptのエラースタックトレースを簡単にソースコードにマッピングし、問題を迅速に特定して解決することができます。このドキュメントは、開発者がこのツールをよりよく理解して使用するのを支援することを目的としています。
🚀 クイックスタート
このセクションでは、ソースマップパーサーを使用するための基本的な手順を説明します。
✨ 主な機能
- WebAssemblyモジュールの初期化:JavaScriptラッパーを介してWebAssemblyモジュールをロードし、インスタンス化して、正しく動作するようにします。
- ソースマップ内容の取得:指定されたURLからソースマップファイルの内容を取得し、必要な検証を行います。
- スタック情報の解析:エラースタックトレース内の各位置情報を、ソースコードの位置に解析します。
📦 インストール
MCP統合
⚠️ 重要提示
Node.js 18+のバージョンが必要です。
オプション1:NPXを通じて直接実行
npx -y source-map-parser-mcp@latest
オプション2:ビルド成果物をダウンロード GitHubリリースページから該当バージョンのビルド成果物をダウンロードし、以下を実行します。
node dist/main.es.js
実行時パラメータの設定
以下の環境変数を使用して、パーサーの動作を設定します。
SOURCE_MAP_PARSER_API_KEY
: 認証に使用するAPIキー。SOURCE_MAP_PARSER_CACHE_ENABLED
: キャッシュ機能を制御します(値はtrue
またはfalse
)。
💻 使用例
基本的な使用法
const result = await parse_stack({
stack: /* エラースタック文字列 */,
options: {
cacheProvider: /* キャッシュプロバイダーのインスタンス */,
sourceMapCacheEnabled: true,
apiKey: 'your_api_key'
}
});
高度な使用法
カスタム解析ロジック
parser.ts
ファイルで、getSourceToken
メソッドをオーバーライドすることで、カスタムの解析ロジックを実装できます。
ツールインターフェイスの拡張
server.ts
ファイルで、server.tool
メソッドを使用して、新しいツールインターフェイスを追加できます。
📚 ドキュメント
MCPサービスツールの説明
コアインターフェイス
parse_stack
: 指定されたエラースタック文字列を解析し、解析結果を返します。
🔧 技術詳細
よくある質問
-
WebAssemblyモジュールの初期化に失敗しました
以下のエラーメッセージが表示された場合:
parser init error: WebAssembly.instantiate(): invalid value type 'externref', enable with --experimental-wasm-reftypes @+86
以下の手順で問題を解決してください。
- Node.jsバージョンを確認する:Node.jsバージョンが18以上であることを確認してください。18未満の場合は、Node.jsをアップグレードしてください。
- 実験的なフラグを有効にする:Node.js 18+を使用しているが、依然として問題が発生する場合は、以下のコマンドでツールを起動してください。
npx --node-arg=--experimental-wasm-reftypes -y source-map-parser-mcp@latest
ローカル開発ガイド
依存関係のインストール
Node.jsとnpmがインストールされていることを確認し、以下のコマンドを実行してプロジェクトの依存関係をインストールします。
npm install
MCPサービスのリンク
以下のコマンドを実行して、MCPサーバーを起動します。
npx tsx src/main.ts
注意事項
- ソースマップファイル:提供されたソースマップファイルのURLがアクセス可能で、形式が正しいことを確認してください。
- エラー処理:解析中にネットワークエラーやファイル形式エラーなどの問題が発生する可能性があります。呼び出し時に適切なエラー処理を行うことをお勧めします。
貢献ガイド
IssuesやPull Requestsを通じて、このプロジェクトに貢献することを歓迎します。
📄 ライセンス
このプロジェクトはMITライセンスの下で公開されています。詳細については、LICENSE
ファイルを参照してください。







