Saltar al contenido principal

Clase: MCPAuth

La clase principal para la librería mcp-auth, que proporciona métodos para crear routers y manejadores útiles para la autenticación (Autenticación) y autorización (Autorización) en servidores MCP.

Ver también​

MCP Auth para más información sobre la librería y su uso.

Ejemplo​

Un ejemplo integrando con un proveedor OIDC remoto:

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' }
  ),
});

// Monta el router para manejar el endpoint de metadatos del servidor de autorización OAuth 2.0
app.use(mcpAuth.delegatedRouter());

// Usa el manejador Bearer auth en la ruta MCP
app.get(
  '/mcp',
  mcpAuth.bearerAuth('jwt', { requiredScopes: ['read', 'write'] }),
  (req, res) => {
    console.log('Auth info:', req.auth);
    // Maneja aquí la solicitud MCP
  },
);

// Usa la información de autenticación en el callback MCP
server.tool(
  'add',
  { a: z.number(), b: z.number() },
  async ({ a, b }, { authInfo }) => {
    console.log('Auth Info:', authInfo);
   // ...
  },
);

Constructores​

Constructor​

new MCPAuth(config: MCPAuthConfig): MCPAuth;

Parámetros​

config​

MCPAuthConfig

Devuelve​

MCPAuth

Propiedades​

config​

readonly config: MCPAuthConfig;

Métodos​

bearerAuth()​

Firma de llamada​

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

Crea un manejador Bearer auth (middleware de Express) que verifica el token de acceso (Token de acceso) en el encabezado Authorization de la solicitud.

Parámetros​
verifyAccessToken​

VerifyAccessTokenFunction

Una función que verifica el token de acceso (Token de acceso). Debe aceptar el token de acceso como una cadena y devolver una promesa (o un valor) que resuelva el resultado de la verificación.

Ver también

VerifyAccessTokenFunction para la definición de tipo de la función verifyAccessToken.

config?​

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

Configuración opcional para el manejador Bearer auth.

Ver también

BearerAuthConfig para las opciones de configuración disponibles (excluyendo verifyAccessToken y issuer).

Devuelve​

RequestHandler

Una función middleware de Express que verifica el token de acceso (Token de acceso) y añade el resultado de la verificación al objeto de la solicitud (req.auth).

Ver también​

handleBearerAuth para detalles de implementación y los tipos extendidos del objeto req.auth (AuthInfo).

Firma de llamada​

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

Crea un manejador Bearer auth (middleware de Express) que verifica el token de acceso (Token de acceso) en el encabezado Authorization de la solicitud usando un modo de verificación predefinido.

En el modo 'jwt', el manejador creará una función de verificación JWT usando el JWK Set del URI JWKS del servidor de autorización (Autorización).

Parámetros​
mode​

"jwt"

El modo de verificación para el token de acceso (Token de acceso). Actualmente, solo se admite 'jwt'.

Ver también

VerifyAccessTokenMode para los modos disponibles.

config?​

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

Configuración opcional para el manejador Bearer auth, incluyendo opciones de verificación JWT y opciones remotas de JWK set.

Ver también

  • BearerAuthJwtConfig para las opciones de configuración disponibles para la verificación JWT.
  • BearerAuthConfig para las opciones de configuración disponibles (excluyendo verifyAccessToken y issuer).
Devuelve​

RequestHandler

Una función middleware de Express que verifica el token de acceso (Token de acceso) y añade el resultado de la verificación al objeto de la solicitud (req.auth).

Ver también​

handleBearerAuth para detalles de implementación y los tipos extendidos del objeto req.auth (AuthInfo).

Lanza​

si el URI JWKS no se proporciona en los metadatos del servidor al usar el modo 'jwt'.


delegatedRouter()​

delegatedRouter(): Router;

Crea un router delegado que sirve el endpoint de metadatos del servidor de autorización OAuth 2.0 (/.well-known/oauth-authorization-server) con los metadatos proporcionados a la instancia.

Devuelve​

Router

Un router que sirve el endpoint de metadatos del servidor de autorización OAuth 2.0 con los metadatos proporcionados a la instancia.

Ejemplo​

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

const app = express();
const mcpAuth: MCPAuth; // Se asume que está inicializado
app.use(mcpAuth.delegatedRouter());