Node.js core library for enforcing Model Context Protocol (MCP) authorization using Asgardeo.
This package provides the core functionality for implementing Model Context Protocol (MCP) based authorization in
Node.js applications. It serves as the foundation for higher-level implementations like the Express middleware
(@asgardeo/mcp-express).
This package is part of the Asgardeo MCP Node.js SDKs monorepo. For overall project information, contribution guidelines, and details on other related packages, please refer to the main repository.
npm install @asgardeo/mcp-node
# or
yarn add @asgardeo/mcp-node
# or
pnpm add @asgardeo/mcp-node- Authorization server metadata generation
- Protected resource metadata generation
- Token verification utilities
import {generateAuthorizationServerMetadata, generateProtectedResourceMetadata} from '@asgardeo/mcp-node';
baseUrl: string = 'https://api.asgardeo.io/<your-org-name>';
// Generate authorization server metadata
const serverMetadata = generateAuthorizationServerMetadata({
baseUrl,
});
// Generate protected resource metadata
const resourceMetadata = generateProtectedResourceMetadata({
authorizationServers: [baseUrl],
resource: 'https://api.example.com',
});Generates metadata for the authorization server.
const metadata = generateAuthorizationServerMetadata({
baseUrl: 'https://api.asgardeo.io',
});Generates metadata for protected resources.
const metadata = generateProtectedResourceMetadata({
authorizationServers: ['https://api.asgardeo.io'],
resource: 'https://api.example.com',
});Configuration options used across MCP packages.
interface McpAuthOptions {
/** Base URL of the authorization server */
baseUrl: string;
/** Optional audience value for token validation */
audience?: string;
}Verifies a JWT access token using the authorization server's JWKS endpoint.
import {validateToken} from '@asgardeo/mcp-node';
await validateToken('<token>', 'https://api.asgardeo.io/oauth2/jwks', {
issuer: 'https://api.asgardeo.io/oauth2/token',
audience: 'mcp-client-id',
clockTolerance: 60,
});- Node.js 16.x or later
- pnpm 8.x or later
- Clone the repository
- Install dependencies:
pnpm installpnpm buildpnpm lintApache-2.0 - see the LICENSE file for details.