@makersclub/mcp-auth-core
v0.4.2
Published
Core de autenticación para clientes MCP: OAuth2 (PKCE/Client Credentials), API Key, Bearer, Basic, HMAC. Transportes HTTP/SSE/WebSocket.
Maintainers
Readme
@makersclub/mcp-auth-core
Core de autenticación para clientes MCP (Model Context Protocol):
- OAuth2 (Authorization Code + PKCE, Client Credentials)
- API Key, Bearer, Basic, HMAC
- Adaptadores HTTP / SSE / WebSocket
- TypeScript, ESM/CJS, isomórfico (browser/Node>=18)
Instalación
npm install @makersclub/mcp-auth-core
# ó
pnpm add @makersclub/mcp-auth-core
# ó
yarn add @makersclub/mcp-auth-coreUso Básico
import { createAuth } from '@makersclub/mcp-auth-core';
// OAuth2 PKCE (recomendado para SPAs)
const oauth = createAuth('oauth2_pkce', {
client_id: 'your-client-id',
issuer: 'https://login.microsoftonline.com/tenant-id/v2.0',
redirect_uri: 'http://localhost:3000/callback',
scope: 'openid profile email'
});
// API Key
const apiKey = createAuth('api_key', {
key: 'your-api-key',
header: 'X-API-Key'
});
// Bearer Token
const bearer = createAuth('bearer', {
token: 'your-bearer-token'
});
// Basic Auth
// Opción A: Credenciales estáticas
const basic = createAuth('basic', {
username: 'user',
password: 'password'
});
// Opción B: Con URL de validación (para UI que pide credenciales)
const basicWithUrl = createAuth('basic', {
authorizationUrl: 'https://api.example.com/login',
// Opcional: callback para obtener credenciales dinámicamente
getCredentials: async () => {
// Tu lógica para pedir usuario/pass al usuario
return { username: 'user', password: 'pass' };
}
});Adaptadores de Transporte
HTTP (fetch)
import { withAuthFetch } from '@makersclub/mcp-auth-core';
const authFetch = withAuthFetch(oauth);
const response = await authFetch('https://api.example.com/data');Server-Sent Events (SSE)
import { withAuthSSE } from '@makersclub/mcp-auth-core';
const authSSE = withAuthSSE(oauth);
const eventSource = authSSE('https://api.example.com/events');WebSocket
import { withAuthWS } from '@makersclub/mcp-auth-core';
const authWS = withAuthWS(oauth);
const socket = authWS('wss://api.example.com/ws');Demo
Consulta el directorio demo/react para ver un ejemplo completo con React + Vite incluyendo:
- Autenticación OAuth2 PKCE con Microsoft
- Modo popup y redirect configurable
- Manejo de tokens y renovación automática
cd demo/react
npm install
npm run dev