メインコンテンツにスキップ

クラス: MCPAuth

mcp-auth ライブラリのメインクラスであり、MCP サーバーにおける認証 (Authentication) と認可 (Authorization) のためのルーターや便利なハンドラーを作成するメソッドを提供します。

参照

ライブラリやその使い方の詳細は MCP Auth をご覧ください。

リモート OIDC プロバイダーとの統合例:

import express from 'express';
import { MCPAuth, fetchServerConfig } from 'mcp-auth';

const app = express();
const mcpAuth = new MCPAuth({
  server: await fetchServerConfig(
    'https://auth.logto.io/oidc',
    { type: 'oidc' }
  ),
});

// OAuth 2.0 認可サーバーメタデータを処理するルーターをマウント
app.use(mcpAuth.delegatedRouter());

// MCP ルートで Bearer 認証 (Authentication) ハンドラーを使用
app.get(
  '/mcp',
  mcpAuth.bearerAuth('jwt', { requiredScopes: ['read', 'write'] }),
  (req, res) => {
    console.log('Auth info:', req.auth);
    // ここで MCP リクエストを処理
  },
);

// MCP コールバックで認証 (Authentication) 情報を利用
server.tool(
  'add',
  { a: z.number(), b: z.number() },
  async ({ a, b }, { authInfo }) => {
    console.log('Auth Info:', authInfo);
   // ...
  },
);

コンストラクター

コンストラクター

new MCPAuth(config: MCPAuthConfig): MCPAuth;

パラメーター

config

MCPAuthConfig

戻り値

MCPAuth

プロパティ

config

readonly config: MCPAuthConfig;

メソッド

bearerAuth()

呼び出しシグネチャ

bearerAuth(verifyAccessToken: VerifyAccessTokenFunction, config?: Omit<BearerAuthConfig, "verifyAccessToken" | "issuer">): RequestHandler;

リクエストの Authorization ヘッダー内のアクセス トークン (Access token) を検証する Bearer 認証 (Authentication) ハンドラー(Express ミドルウェア)を作成します。

パラメーター
verifyAccessToken

VerifyAccessTokenFunction

アクセス トークン (Access token) を検証する関数です。文字列としてアクセス トークン (Access token) を受け取り、検証結果に解決する promise(または値)を返す必要があります。

参照

verifyAccessToken 関数の型定義については VerifyAccessTokenFunction をご覧ください。

config?

Omit<BearerAuthConfig, "verifyAccessToken" | "issuer">

Bearer 認証 (Authentication) ハンドラーのためのオプション設定です。

参照

利用可能な設定オプション(verifyAccessTokenissuer を除く)については BearerAuthConfig をご覧ください。

戻り値

RequestHandler

アクセス トークン (Access token) を検証し、検証結果をリクエストオブジェクト(req.auth)に追加する Express ミドルウェア関数です。

参照

req.authAuthInfo)オブジェクトの実装詳細や拡張型については handleBearerAuth をご覧ください。

呼び出しシグネチャ

bearerAuth(mode: "jwt", config?: Omit<BearerAuthConfig, "verifyAccessToken" | "issuer"> & BearerAuthJwtConfig): RequestHandler;

リクエストの Authorization ヘッダー内のアクセス トークン (Access token) を、事前定義された検証モードで検証する Bearer 認証 (Authentication) ハンドラー(Express ミドルウェア)を作成します。

'jwt' モードでは、認可サーバーの JWKS URI から JWK セットを使用して JWT 検証関数を作成します。

パラメーター
mode

"jwt"

アクセス トークン (Access token) の検証モードです。現在は 'jwt' のみサポートされています。

参照

利用可能なモードについては VerifyAccessTokenMode をご覧ください。

config?

Omit<BearerAuthConfig, "verifyAccessToken" | "issuer"> & BearerAuthJwtConfig

JWT 検証オプションやリモート JWK セットオプションを含む、Bearer 認証 (Authentication) ハンドラーのためのオプション設定です。

参照

  • JWT 検証のための設定オプションについては BearerAuthJwtConfig をご覧ください。
  • 設定オプション(verifyAccessTokenissuer を除く)については BearerAuthConfig をご覧ください。
戻り値

RequestHandler

アクセス トークン (Access token) を検証し、検証結果をリクエストオブジェクト(req.auth)に追加する Express ミドルウェア関数です。

参照

req.authAuthInfo)オブジェクトの実装詳細や拡張型については handleBearerAuth をご覧ください。

例外

'jwt' モード使用時にサーバーメタデータに JWKS URI が提供されていない場合、例外がスローされます。


delegatedRouter()

delegatedRouter(): Router;

OAuth 2.0 認可サーバーメタデータエンドポイント(/.well-known/oauth-authorization-server)を、インスタンスに提供されたメタデータで提供する委譲ルーターを作成します。

戻り値

Router

インスタンスに提供されたメタデータで OAuth 2.0 認可サーバーメタデータエンドポイントを提供するルーターです。

import express from 'express';
import { MCPAuth } from 'mcp-auth';

const app = express();
const mcpAuth: MCPAuth; // 初期化済みと仮定
app.use(mcpAuth.delegatedRouter());