JWT Tools について
JWT Toolsは、JWTの確認、検証、署名を行うMCPサーバーです。トークンをレビューまたはテストする開発者向けで、未検証のデコードと鍵を使った検証を区別します。
主な機能
- 01トークンをデコードし危険なクレームを検出
- 02HS*とRS*の署名を検証
- 03テスト用トークンに署名
- 04クレームと署名の有効性を報告
活用シーン
- 01検証せずにトークンのクレームを確認
- 02指定した鍵でトークンを検査
- 03テスト用の署名済みトークンを作成
MCP 対応
MCPクライアントにJWTのデコード、検証、署名ツールを提供します。stdioトランスポートを使用し、ポートは開きません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/basitalisandhu/mcp-jwt-tools:0.3.0ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/basitalisandhu/mcp-jwt-tools:0.3.0stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
jwt-tools MCP サーバー
検証を行わずに JSON Web Token をデコードし(そのことを出力に明記します)、リスクのあるアルゴリズムやクレームにフラグを付けます。キーを指定すると HS256/384/512 および RS256/384/512 の署名を検証し、テスト用フィクスチャのトークンを発行します。純粋な node:crypto を使用し、ネットワークにもファイルにもアクセスしません。
dev-mcp-servers の一部です。stdio トランスポートのみを使用し、サーバーがポートを開くことはありません。
ツール
| ツール | 入力 | 返される内容 |
|---|---|---|
decode_jwt | token、now?、max_ttl_hours? | ヘッダー、ペイロード、ISO タイムスタンプ、および検出結果:alg が none または欠落、署名が空、ヘッダー内の jku/x5u/jwk、期限切れ、まだ有効でない、exp/iat/aud/iss/sub/jti の欠落、しきい値(デフォルト 24 h)を超える有効期間、ミリ秒単位のタイムスタンプ、シークレットのような名前のクレーム。常に verified: false を返します。 |
verify_jwt | token、key、algorithm、audience?、issuer?、now?、clock_tolerance_seconds? | 指定されたアルゴリズムのみを対象に署名を確認します(トークンのヘッダーがそれ以外を示している場合、暗号学的な検証を行わずに失敗するため、アルゴリズム混同を防げます)。続いて exp(必須)、nbf、aud、iss を検証します。valid、signature_valid、claims_valid および理由を返します。 |
sign_test_jwt | payload、key、algorithm、expires_in_seconds?、now? | テスト用にクレームオブジェクトへ署名します。HS* では共有シークレット、RS* では PEM 秘密鍵を使用します。 |
インストール
Claude Code:
claude mcp add jwt-tools -- docker run --rm -i ghcr.io/basitalisandhu/mcp-jwt-tools:0.2.2
すべてのプロジェクトで利用できるようにするには、-s user を追加します。.mcp.json を読み取るクライアント(Claude Code、Claude Desktop、Cursor)では、次のようにします。
{
"mcpServers": {
"jwt-tools": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/basitalisandhu/mcp-jwt-tools:0.2.2"]
}
}
}
バージョンをここに示すとおり固定してください。そうすれば、気付かないうちに更新によってエディターで実行されるものが変わるのを防げます。このパッケージはまだ npmjs.com に公開されていないため、npx は機能しません。GitHub Packages npm についてはリポジトリの READMEを参照してください。チェックアウトしたリポジトリから使う場合は、リポジトリのルートで npm install && npm run build を実行した後、"command": "node", "args": ["<path>/packages/jwt-tools/dist/index.js"] を使用してください。
アクセスする対象
- ネットワーク:なし。
- ローカルファイル:なし。キーはその呼び出しでのみ使用され、保存されません。
- テレメトリー:なし。
注意事項
- HMAC の比較には
crypto.timingSafeEqualを使用します。 - RS* の検証では、PEM 公開鍵、証明書、秘密鍵を受け付けます(公開鍵部分はそこから導出されます)。
- JWE(暗号化された 5 パートのトークン)は拒否されます。ES* および PS* のトークンはデコードできますが、ここでは検証できません。
ビルドとテスト
npm install # at the repository root
npm run build -w @basitalisandhu/mcp-jwt-tools
npm test -w @basitalisandhu/mcp-jwt-tools
テストでは node:test と SDK のインメモリトランスポートを使用し、ネットワークには接続しません。
ライセンス
MIT。LICENSEを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。