Pular para o conteúdo principal

Classe: MCPAuth

A classe principal da biblioteca mcp-auth, que fornece métodos para criar roteadores e manipuladores úteis para autenticação (Autenticação) e autorização (Autorização) em servidores MCP.

Veja também​

MCP Auth para mais informações sobre a biblioteca e seu uso.

Exemplo​

Um exemplo integrando com um provedor 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 o roteador para lidar com o Metadata do Servidor de Autorização OAuth 2.0
app.use(mcpAuth.delegatedRouter());

// Usa o manipulador Bearer auth na rota MCP
app.get(
  '/mcp',
  mcpAuth.bearerAuth('jwt', { requiredScopes: ['read', 'write'] }),
  (req, res) => {
    console.log('Auth info:', req.auth);
    // Lide com a requisição MCP aqui
  },
);

// Usa as informações de autenticação no callback MCP
server.tool(
  'add',
  { a: z.number(), b: z.number() },
  async ({ a, b }, { authInfo }) => {
    console.log('Auth Info:', authInfo);
   // ...
  },
);

Construtores​

Construtor​

new MCPAuth(config: MCPAuthConfig): MCPAuth;

Parâmetros​

config​

MCPAuthConfig

Retorna​

MCPAuth

Propriedades​

config​

readonly config: MCPAuthConfig;

Métodos​

bearerAuth()​

Assinatura de chamada​

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

Cria um manipulador Bearer auth (middleware Express) que verifica o token de acesso (Access token) no cabeçalho Authorization da requisição.

Parâmetros​
verifyAccessToken​

VerifyAccessTokenFunction

Uma função que verifica o token de acesso (Access token). Deve aceitar o token de acesso como uma string e retornar uma promise (ou um valor) que resolve para o resultado da verificação.

Veja também

VerifyAccessTokenFunction para a definição do tipo da função verifyAccessToken.

config?​

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

Configuração opcional para o manipulador Bearer auth.

Veja também

BearerAuthConfig para as opções de configuração disponíveis (excluindo verifyAccessToken e issuer).

Retorna​

RequestHandler

Uma função middleware Express que verifica o token de acesso (Access token) e adiciona o resultado da verificação ao objeto da requisição (req.auth).

Veja também​

handleBearerAuth para detalhes da implementação e os tipos estendidos do objeto req.auth (AuthInfo).

Assinatura de chamada​

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

Cria um manipulador Bearer auth (middleware Express) que verifica o token de acesso (Access token) no cabeçalho Authorization da requisição usando um modo de verificação predefinido.

No modo 'jwt', o manipulador criará uma função de verificação de JWT usando o JWK Set do URI JWKS do servidor de autorização (Authorization).

Parâmetros​
mode​

"jwt"

O modo de verificação para o token de acesso (Access token). Atualmente, apenas 'jwt' é suportado.

Veja também

VerifyAccessTokenMode para os modos disponíveis.

config?​

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

Configuração opcional para o manipulador Bearer auth, incluindo opções de verificação JWT e opções remotas de JWK set.

Veja também

  • BearerAuthJwtConfig para as opções de configuração disponíveis para verificação JWT.
  • BearerAuthConfig para as opções de configuração disponíveis (excluindo verifyAccessToken e issuer).
Retorna​

RequestHandler

Uma função middleware Express que verifica o token de acesso (Access token) e adiciona o resultado da verificação ao objeto da requisição (req.auth).

Veja também​

handleBearerAuth para detalhes da implementação e os tipos estendidos do objeto req.auth (AuthInfo).

Lança​

se o URI JWKS não for fornecido nos metadados do servidor ao usar o modo 'jwt'.


delegatedRouter()​

delegatedRouter(): Router;

Cria um roteador delegado que serve o endpoint Metadata do Servidor de Autorização OAuth 2.0 (/.well-known/oauth-authorization-server) com os metadados fornecidos para a instância.

Retorna​

Router

Um roteador que serve o endpoint Metadata do Servidor de Autorização OAuth 2.0 com os metadados fornecidos para a instância.

Exemplo​

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

const app = express();
const mcpAuth: MCPAuth; // Suponha que já esteja inicializado
app.use(mcpAuth.delegatedRouter());