mcpField
J
JWT Tools

JWT Tools

ローカル
basitalisandhu.github.ioセキュリティ11 日前に更新

JWT Tools について

JWT Toolsは、JWTの確認、検証、署名を行うMCPサーバーです。トークンをレビューまたはテストする開発者向けで、未検証のデコードと鍵を使った検証を区別します。

主な機能

  1. 01トークンをデコードし危険なクレームを検出
  2. 02HS*とRS*の署名を検証
  3. 03テスト用トークンに署名
  4. 04クレームと署名の有効性を報告

活用シーン

  1. 01検証せずにトークンのクレームを確認
  2. 02指定した鍵でトークンを検査
  3. 03テスト用の署名済みトークンを作成

MCP 対応

MCPクライアントにJWTのデコード、検証、署名ツールを提供します。stdioトランスポートを使用し、ポートは開きません。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"basitalisandhu-mcp-jwt-tools": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/basitalisandhu/mcp-jwt-tools:0.3.0"
]
}
}
}
起動コマンドdocker run -i --rm ghcr.io/basitalisandhu/mcp-jwt-tools:0.3.0

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

パッケージ
ocighcr.io/basitalisandhu/mcp-jwt-tools:0.3.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

jwt-tools MCP サーバー

検証を行わずに JSON Web Token をデコードし(そのことを出力に明記します)、リスクのあるアルゴリズムやクレームにフラグを付けます。キーを指定すると HS256/384/512 および RS256/384/512 の署名を検証し、テスト用フィクスチャのトークンを発行します。純粋な node:crypto を使用し、ネットワークにもファイルにもアクセスしません。

dev-mcp-servers の一部です。stdio トランスポートのみを使用し、サーバーがポートを開くことはありません。

ツール

ツール入力返される内容
decode_jwttoken、now?、max_ttl_hours?ヘッダー、ペイロード、ISO タイムスタンプ、および検出結果:alg が none または欠落、署名が空、ヘッダー内の jku/x5u/jwk、期限切れ、まだ有効でない、exp/iat/aud/iss/sub/jti の欠落、しきい値(デフォルト 24 h)を超える有効期間、ミリ秒単位のタイムスタンプ、シークレットのような名前のクレーム。常に verified: false を返します。
verify_jwttoken、key、algorithm、audience?、issuer?、now?、clock_tolerance_seconds?指定されたアルゴリズムのみを対象に署名を確認します(トークンのヘッダーがそれ以外を示している場合、暗号学的な検証を行わずに失敗するため、アルゴリズム混同を防げます)。続いて exp(必須)、nbf、aud、iss を検証します。valid、signature_valid、claims_valid および理由を返します。
sign_test_jwtpayload、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を参照してください。

コメント

MCP は初めてですか?

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

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