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

クラス: 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) ハンドラーのためのオプション設定です。

参照

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

戻り値​

RequestHandler

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

参照​

req.auth(AuthInfo)オブジェクトの実装詳細や拡張型については 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 をご覧ください。
  • 設定オプション(verifyAccessToken と issuer を除く)については BearerAuthConfig をご覧ください。
戻り値​

RequestHandler

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

参照​

req.auth(AuthInfo)オブジェクトの実装詳細や拡張型については 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());