0.0.4 • Published 6 months ago
@brionmario-experimental/mcp-node v0.0.4
@brionmario-experimental/mcp-node
Node.js core library for enforcing Model Context Protocol (MCP) authorization using Asgardeo.
Overview
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.
Installation
npm install @brionmario-experimental/mcp-node
# or
yarn add @brionmario-experimental/mcp-node
# or 
pnpm add @brionmario-experimental/mcp-nodeFeatures
- Authorization server metadata generation
 - Protected resource metadata generation
 - Token verification utilities
 - Built-in Asgardeo provider
 - Extensible authentication provider system
 
Usage
import { 
  generateAuthorizationServerMetadata,
  generateProtectedResourceMetadata,
  Asgardeo
} from '@brionmario-experimental/mcp-node';
// Initialize the Asgardeo provider
const provider = Asgardeo();
// Generate authorization server metadata
const serverMetadata = generateAuthorizationServerMetadata({
  baseUrl: provider.baseUrl
});
// Generate protected resource metadata
const resourceMetadata = generateProtectedResourceMetadata({
  authorizationServers: [provider.baseUrl],
  resource: 'https://api.example.com'
});API Reference
Providers
Asgardeo()
Creates an Asgardeo provider instance with pre-configured settings.
const provider = Asgardeo();Metadata Generation
generateAuthorizationServerMetadata(options)
Generates metadata for the authorization server.
const metadata = generateAuthorizationServerMetadata({
  baseUrl: 'https://api.asgardeo.io'
});generateProtectedResourceMetadata(options)
Generates metadata for protected resources.
const metadata = generateProtectedResourceMetadata({
  authorizationServers: ['https://api.asgardeo.io'],
  resource: 'https://api.example.com'
});Development
Prerequisites
- Node.js 16.x or later
 - pnpm 8.x or later
 
Setup
- Clone the repository
 - Install dependencies:
 
pnpm installBuild
pnpm buildLint
pnpm lintLicense
Apache-2.0 - see the LICENSE file for details.