traplens について
traplens はコーディングエージェント向けに、検証済みで日付付きの API 障害記録を提供します。開発前の既知問題の確認やエラー文からの検索に加え、解決済み障害の登録と既存記録の有効性確認もできます。
主な機能
- 01プロバイダー別に障害記録を検索
- 02エラー文から該当記録を検索
- 03解決後の障害記録を登録
- 04障害記録が今も有効か確認
- 05症状・原因・修正・例を参照
活用シーン
- 01サードパーティ API の実装前に既知の落とし穴を確認
- 02エラーメッセージから類似障害を探す
- 03解決後に障害と修正方法を記録
- 04既知の障害が現在も起きるか検証
MCP 対応
上流 Footgun MCP サーバーのツール一覧をローカルに公開し、呼び出しを上流へ転送して結果をそのまま返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| context | string | いいえ | タスクの任意の 1 行説明。例:"verify webhook signatures in Next.js"。関連性の高いトラップを先に表示します。 |
| surface | string | いいえ | 作業対象のサービス内の領域。任意。例:"webhooks" または "image generation"。一致するトラップを優先表示しますが、他のトラップは除外しません。 |
| provider | string | はい | サービスの slug または一般的な名称。例:"stripe"、"supabase"、"github-actions"、"openai api"。 |
| include_stale | boolean | いいえ | 最近再確認されていないトラップも返します。デフォルトは false です。 |
詳細
traplens
traplens は、他の人が経験した API の破壊的変更に関する記憶をコーディングエージェントに提供します。サードパーティーのサービスを対象にコードを書く前に、そのプロバイダーを検索し、検証済みで日付の記載された失敗パターンを最大 10 件取得できます。それぞれに、症状、原因、修正方法、コード例、最終確認日が含まれます。呼び出しに失敗した場合は、エラーテキストを貼り付けて、症状が一致するトラップを検索します。失敗を修正したら、新しいトラップを登録して、次のエージェントが同じことで何時間も無駄にしないようにします。また、既知のトラップに遭遇した場合、または回避した場合は、それが今も有効かどうかを確認します。
このブリッジはトラップデータを一切保持しません。上流の Footgun サーバーのツール一覧を、ライブエンドポイントから取得した内容そのままにローカルで提供し、各ツール呼び出しを上流に転送して、結果を変更せずに返します。
ツール
lookup_traps— プロバイダーのトラップを検索します。必須:provider(スラッグまたは一般的な名前。例:"stripe")。 任意:surface(サービスの一部分。該当結果を先頭に並べるためだけに使用)、context(タスクの説明を 1 行で指定)、include_stale。search_traps— エラーテキストに一致するトラップを検索します。必須:error_text(4~4000 文字。一致判定の前に、既知のキーおよびシークレットの形式は伏せ字にされます)。 任意:provider、include_stale。file_trap— 失敗を修正した後にトラップの下書きを作成します。 必須:provider、surface_type(api、sdk、ui、billing、infra、toolのいずれか)、surface_name、title、symptoms、cause、fix、apply、affected。任意:sources、tags、visibility(デフォルトはprivate、共有レジストリに登録する場合はpublic)。confirm_trap— トラップが今も有効かどうかを記録します。 必須:trap_id、still_true。任意:hours_lost、version_seen。
設定
FOOTGUN_MCP_URL(任意)— 上流のエンドポイントを上書きします。デフォルトはhttps://getfootgun.com/api/mcpです。 (この上書き用フックは、この再構築で独自に作成し、その旨を明記しています。)FOOTGUN_API_KEY(任意)— 設定すると、すべての上流リクエストにAuthorization: Bearer <key>ヘッダーが含まれます。未設定の場合、キーのヘッダーは送信されません。 (ヘッダー名はレジストリの記録で固定されています。Bearer スキームとこの転送機能は再構築で追加したもので、その旨を明記しています。元のインターフェースはキーなしで取得されました。)
転送の仕組み
最初のツール呼び出し時に、クライアントは上流とのストリーミング可能な HTTP セッションを開始します。まず JSON-RPC の initialize
リクエスト(protocolVersion は 2025-03-26、clientInfo の名前は
traplens)を送り、次に notifications/initialized
通知を送り、その後、呼び出し元の引数を変更せずに含めた tools/call リクエストを送ります。上流が initialize
への応答で Mcp-Session-Id ヘッダーを返した場合、その値は以降のセッション内のすべてのリクエストに付与され、プロセスの終了まで同じセッションが再利用されます。応答は通常の JSON またはサーバー送信イベントで届く場合があり、どちらも読み取られます。
上流からの成功結果は、上流が設定した isError フラグも含めて、そのまま返されます。失敗(JSON-RPC エラー、2xx 以外のステータス、読み取り不能な応答、完了できないリクエスト)は、テキストが traplens error: で始まる isError 結果として返されます(このエラー表示は、この再構築で独自に作成し、その旨を明記しています)。
CLI
各ツールは、1 つの JSON 引数文字列を取るサブコマンドとしても実行できます。
npx @reneturcios/traplens lookup_traps '{"provider":"stripe"}'
npx @reneturcios/traplens search_traps '{"error_text":"No such payment_method"}'
npx @reneturcios/traplens confirm_trap '{"trap_id":"fg-0158","still_true":true}'
npx @reneturcios/traplens --version
終了コード:成功時は 0、isError 結果の場合は 1、使用方法に誤りがある場合は 2 です。
MCP サーバー
npx -y @reneturcios/traplens mcp
MCP クライアントの設定:
{
"mcpServers": {
"traplens": {
"command": "npx",
"args": ["-y", "@reneturcios/traplens", "mcp"]
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/traplens
docker run --rm ghcr.io/cloudcorprecords/traplens --version
コンテナーのデフォルトコマンドは mcp であるため、最初の形式では stdio MCP サーバーが起動します。それ以外の引数は通常どおり CLI に渡されます。
開発
npm install
npm run build
npm test
npm run dev
テストスイートはすべて、スタブ化された JSON-RPC 上流サーバーに対して実行されます。ライブネットワークへの呼び出しはありません。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。