mcpField
🔐
🔐 SSE MCP Server with JWT Authentication

🔐 SSE MCP Server with JWT Authentication

ローカル
github.com/anisirji開発ツール479 週間前に更新

🔐 SSE MCP Server with JWT Authentication について

Node.js と Express による MCP サーバーで、SSE 経由でツールを公開し、JWT Bearer 認証を要求します。認証付きのツール利用が必要なプロジェクト向けに、動的登録、リクエストログ、セッション管理を備えています。

主な機能

  1. 01SSE と JWT Bearer 認証
  2. 02ツールの動的登録
  3. 03Zod による入力検証
  4. 04リクエスト処理イベントの記録
  5. 05メッセージエンドポイントのセッション管理
  6. 06エコー、時刻、乱数ツールの提供

活用シーン

  1. 01認証付き SSE エンドポイントでツールを公開
  2. 02Bearer トークンで MCP クライアントを接続
  3. 03MCP Inspector でツールをテスト

MCP 対応

SSE 経由で MCP クライアントにツールを提供し、接続とメッセージエンドポイントを JWT Bearer トークンで保護します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"remote-setup-with-jwt-auth": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
起動コマンドnpx -y @modelcontextprotocol/inspector

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

パッケージ
npm@modelcontextprotocol/inspector

ツール

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

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

詳細

MseeP.ai Security Assessment Badge

🔐 JWT 認証を使用した SSE MCP サーバー

これは、JWT ベースの認証を使用する Model Context Protocol(MCP) の SSE サーバーです。
セキュアなベアラートークンのフローで保護された SSE トランスポートを介して、複数の AI ツールを公開できます。

使用技術:

  • 🚀 Node.js + Express
  • 🧩 @modelcontextprotocol/sdk
  • 🔒 認証用の JSON Web Tokens(JWT)
  • ⚙️ 入力検証用の Zod

✅ @modelcontextprotocol/inspector で完全にテスト済みです。

📂 プロジェクト構成

server/
├── index.ts          # Main Express + MCP server
├── .env              # Environment variables
├── package.json      # Project metadata & scripts
├── tsconfig.json     # TypeScript config
└── README.md         # You are here!

✨ 特長

  • ✅ ベアラー JWT トークンを使用したセキュアな SSE 接続
  • ✅ ツールの動的登録(echo、time、random number など)
  • ✅ MCP Inspector でテスト済み
  • ✅ すべてのリクエストのライフサイクルイベントをログに記録
  • ✅ /message エンドポイントのセッション管理
  • 🚀 本番環境での利用に向けて拡張可能

⚙️ セットアップ

1. リポジトリをクローンする
git clone https://github.com/anisirji/mcp-server-remote-setup-with-jwt-auth.git
cd mcp-server-remote-setup-with-jwt-auth
2. 依存関係をインストールする
npm install
3. .env ファイルを作成する
echo "JWT_SECRET=your-secret-key" > .env
4. サーバーを起動する
npm run dev

✅ サーバーは次の場所で起動します:

http://localhost:3001/sse

🧪 MCP Inspector でサーバーをテストする

ステップ 1 — MCP Inspector をインストールする

📖 公式ドキュメント:MCP Inspector

npx @modelcontextprotocol/inspector
ステップ 2 — トークンを生成する

cURL を使って JWT トークンを取得します:

curl "http://localhost:3001/auth/token?username=aniket&scope=mcp:access"

✅ 応答例:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
ステップ 3 — MCP Inspector に接続する
  1. Inspector UI を開きます
  2. トランスポートの種類を設定します:SSE
  3. URL:
    http://localhost:3001/sse
    
  4. Authorization ヘッダーを追加します:
    Authorization: Bearer <your-token>
    
  5. Connect をクリックします

🎉 成功です!サーバーに接続されました。

ステップ 4 — ツールをテストする

Inspector の Tools タブを開き、List Tools をクリックします。

次の項目が表示されます:

  • ✅ test
  • ✅ echo
  • ✅ get-time
  • ✅ random-number

テストしてお試しください!

📖 API リファレンス

🔑 トークンの生成
GET /auth/token?username=<username>&scope=mcp:access
🔌 SSE エンドポイント(トークンが必要)
GET /sse
Authorization: Bearer <token>
📩 アクティブなセッションにメッセージを送信
POST /message?sessionId=<sessionId>
Authorization: Bearer <token>

🧩 ツールのリファレンス

ツール名説明
test接続をテストします(セキュリティチェック)
echo指定されたメッセージをそのまま返します
get-time現在のサーバー時刻を返します
random-numberランダムな数値を返します(最小値/最大値)

🗓️ 今後の変更

  • トークン失効リスト(ブラックリスト)
  • ロールベースのツールアクセス(スコープチェック)
  • セッションのハートビート/キープアライブ
  • レート制限とログ記録
  • デプロイ用の Docker 化

📚 便利なリソース

👨‍💻 メンテナー

Aniket

📄 ライセンス

このプロジェクトはオープンソースで、無料で利用できます。

🚀 構築し、安全を守り、力を与えましょう。

コメント

MCP は初めてですか?

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

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