npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@enconvo/mcp

v0.1.0

Published

OAuth authentication utilities for MCP (Model Context Protocol) clients

Readme

@enconvo/mcp-oauth

OAuth authentication utilities for MCP (Model Context Protocol) clients, providing secure authentication flows for connecting to OAuth-protected MCP servers.

Features

  • Complete OAuth 2.0 Flow: Implements authorization code flow with PKCE for enhanced security
  • Secure Token Management: Encrypted storage and automatic refresh of OAuth tokens
  • Dynamic Port Allocation: Automatically finds available ports for OAuth callback servers
  • Browser Integration: Seamlessly opens authorization URLs in the user's default browser
  • MCP Integration: Purpose-built for Model Context Protocol servers with OAuth support
  • Error Recovery: Graceful handling of authentication failures and connection issues

Installation

npm install @enconvo/mcp-oauth @modelcontextprotocol/sdk
pnpm add @enconvo/mcp-oauth @modelcontextprotocol/sdk

Usage

Basic OAuth Flow

import { OAuthFlowManager } from '@enconvo/mcp-oauth';

const flowManager = new OAuthFlowManager(
  'https://api.example.com/mcp', // MCP server URL
  'my-mcp-client'                // Client name
);

try {
  const tools = await flowManager.executeOAuthFlow();
  console.log('Available tools:', tools);
} catch (error) {
  console.error('Authentication failed:', error);
}

Custom OAuth Client Provider

import { SimpleOAuthClientProvider } from '@enconvo/mcp-oauth';
import { OAuthClientMetadata } from '@modelcontextprotocol/sdk/shared/auth.js';

const clientMetadata: OAuthClientMetadata = {
  client_name: 'my-app',
  redirect_uris: ['http://localhost:8080/callback'],
  grant_types: ['authorization_code', 'refresh_token'],
  response_types: ['code'],
  token_endpoint_auth_method: 'client_secret_post',
  scope: 'mcp:tools'
};

const provider = new SimpleOAuthClientProvider(
  'http://localhost:8080/callback',
  clientMetadata
);

Port Management

import { findAvailablePort, isPortAvailable } from '@enconvo/mcp-oauth';

// Check if a specific port is available
const available = await isPortAvailable(8080);

// Find the next available port starting from 8080
const port = await findAvailablePort(8080);
console.log(`Using port: ${port}`);

Requirements

  • Node.js >= 18.0.0
  • @modelcontextprotocol/sdk >= 1.17.3
  • @enconvo/api (peer dependency, optional for non-Enconvo environments)

API Reference

OAuthFlowManager

Main class for managing OAuth authentication flows with MCP servers.

Constructor

new OAuthFlowManager(serverUrl: string, clientName: string)

Methods

  • executeOAuthFlow(): Promise<any> - Execute complete OAuth flow and return MCP tools list

SimpleOAuthClientProvider

OAuth client provider implementation with secure token storage.

Constructor

new SimpleOAuthClientProvider(redirectUrl: string | URL, clientMetadata: OAuthClientMetadata)

Methods

  • clientInformation(): Promise<OAuthClientInformation | undefined>
  • saveClientInformation(clientInformation: OAuthClientInformationFull): Promise<void>
  • tokens(): Promise<OAuthTokens | undefined>
  • saveTokens(tokens: OAuthTokens): Promise<void>

Port Utilities

  • isPortAvailable(port: number): Promise<boolean> - Check if a port is available
  • findAvailablePort(startPort: number, maxAttempts?: number): Promise<number> - Find next available port

Security Features

  1. PKCE Support: Uses Proof Key for Code Exchange for enhanced security
  2. Encrypted Storage: All OAuth tokens and credentials are encrypted
  3. Localhost Only: Callback servers use localhost-only URLs
  4. Automatic Cleanup: Temporary servers are automatically closed after use
  5. Timeout Protection: 5-minute timeout for OAuth authorization flows

License

MIT © Enconvo

Contributing

Contributions are welcome! Please read our contributing guidelines and submit pull requests to our repository.

Support