Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Remote with Adobe and Okta Authenticationcheck the status of my authentication token"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Remote with Adobe and Okta Authentication
A wrapper for mcp-remote that handles Adobe IMS or Okta authentication using OAuth implicit flow, providing seamless authentication for protected MCP servers.
Features
🔐 Multi-Provider OAuth: Implements Adobe's and Okta's OAuth implicit flow for secure user authentication.
🔄 Token Management: Automatic token storage, validation, and expiration handling.
🖥️ Cross-Platform: Works on macOS, Windows, and Linux.
🚀 Zero Maintenance: Set it once, never worry about tokens again.
🔧 Configurable: Support for multiple environments, scopes, and authentication methods.
🔒 Secure Storage: Tokens stored securely in user's home directory.
🎯 Production Ready: Robust error handling for both Adobe and Okta.
Installation
Via npx (Recommended)
Global Installation
Configuration
Environment Variables
Variable | Required | Default | Description |
| Optional |
| Authentication provider ( |
| ✅ If | - | Client ID for Adobe IMS |
| Optional |
| OAuth scope for Adobe IMS |
| Optional |
| IMS environment ( |
| ✅ If | - | Client ID for Okta |
| ✅ If | - | Your Okta domain (e.g., |
| Optional |
| OAuth scope for Okta |
| Optional |
| OAuth redirect URI |
| Optional |
| Authentication method ( |
| Optional |
| Enable debug mode for troubleshooting |
| Optional |
| Enable automatic token refresh |
| Optional |
| Auto-refresh threshold in minutes |
MCP Configuration
For Adobe
For Okta
Usage
As MCP Server (Primary Use Case)
The script automatically detects the configured authentication provider and handles user authentication transparently.
For Adobe:
For Okta:
CLI Commands
The package also provides CLI commands for token management:
How It Works
This wrapper implements the OAuth implicit flow for authentication:
OAuth Setup: Configures OAuth parameters for the selected provider (Adobe or Okta).
Browser Authentication: Opens browser for secure user authentication.
Token Capture: Local HTTP server captures OAuth callback with tokens.
Token Storage: Securely stores tokens with expiration tracking.
JWT Exchange: Optional JWT token exchange for servers requiring JWT authentication.
MCP Launch: Launches
mcp-remotewithAuthorization: Bearer <token>header.
Authentication Flow
The package implements a complete OAuth implicit flow:
Environments
The library supports multiple Adobe IMS environments. For Okta, the domain is configured directly via OKTA_DOMAIN.
Production (
prod) - Default Adobe production environmentStage (
stage,stg) - Adobe staging environment for testingDevelopment (
dev,development) - Adobe development environment
Troubleshooting
Common Issues
"Client ID not found"
"Authentication failed"
"OAuth state parameter invalid"
"Token validation failed"
"Auto-refresh failed"
"Client error for command A system error occurred (spawn npx ENOENT)"
Debug Mode
For detailed troubleshooting, enable debug mode:
Debug mode shows:
Configuration validation results
Token expiration times and validity
OAuth flow step-by-step progress
Auto-refresh timer scheduling
Network request details
Error stack traces
Manual Diagnostics
For debugging authentication issues:
Architecture
This package is built with:
OAuth Implicit Flow - For client-side applications
Multi-Provider Support - Adobe IMS and Okta
Auto-refresh - Background token refresh with configurable timing
Debug Mode - Comprehensive logging for troubleshooting
mcp-remote - MCP remote server client
Node.js 18+ - Modern JavaScript runtime
Native HTTP Server - For OAuth callback handling
The implementation provides robust error handling, automatic token management, and follows OAuth security best practices.
Process cleanup: Timers are properly cleaned up on exit
Auto-Refresh
The wrapper automatically refreshes tokens before they expire to ensure uninterrupted service:
Auto-refresh features:
Background refresh: Tokens are refreshed automatically before expiration
Configurable threshold: Set how many minutes before expiration to trigger refresh
Graceful fallback: If auto-refresh fails, manual authentication is triggered
Process cleanup: Timers are properly cleaned up on exit
Contributing
Contributions are welcomed! Please ensure all tests pass and maintain code coverage above 75%.
License
This project is licensed under the MIT License. See LICENSE for more information.