@@ -27,7 +27,8 @@ class InMemoryOAuthClientProvider implements OAuthClientProvider {
2727 constructor (
2828 private readonly _redirectUrl : string | URL ,
2929 private readonly _clientMetadata : OAuthClientMetadata ,
30- onRedirect ?: ( url : URL ) => void
30+ onRedirect ?: ( url : URL ) => void ,
31+ public readonly clientMetadataUrl ?: string
3132 ) {
3233 this . _onRedirect =
3334 onRedirect ||
@@ -88,7 +89,10 @@ class InteractiveOAuthClient {
8889 output : process . stdout
8990 } ) ;
9091
91- constructor ( private serverUrl : string ) { }
92+ constructor (
93+ private serverUrl : string ,
94+ private clientMetadataUrl ?: string
95+ ) { }
9296
9397 /**
9498 * Prompts user for input via readline
@@ -221,11 +225,16 @@ class InteractiveOAuthClient {
221225 } ;
222226
223227 console . log ( '🔐 Creating OAuth provider...' ) ;
224- const oauthProvider = new InMemoryOAuthClientProvider ( CALLBACK_URL , clientMetadata , ( redirectUrl : URL ) => {
225- console . log ( `📌 OAuth redirect handler called - opening browser` ) ;
226- console . log ( `Opening browser to: ${ redirectUrl . toString ( ) } ` ) ;
227- this . openBrowser ( redirectUrl . toString ( ) ) ;
228- } ) ;
228+ const oauthProvider = new InMemoryOAuthClientProvider (
229+ CALLBACK_URL ,
230+ clientMetadata ,
231+ ( redirectUrl : URL ) => {
232+ console . log ( `📌 OAuth redirect handler called - opening browser` ) ;
233+ console . log ( `Opening browser to: ${ redirectUrl . toString ( ) } ` ) ;
234+ this . openBrowser ( redirectUrl . toString ( ) ) ;
235+ } ,
236+ this . clientMetadataUrl
237+ ) ;
229238 console . log ( '🔐 OAuth provider created' ) ;
230239
231240 console . log ( '👤 Creating MCP client...' ) ;
@@ -388,13 +397,18 @@ class InteractiveOAuthClient {
388397 * Main entry point
389398 */
390399async function main ( ) : Promise < void > {
391- const serverUrl = process . env . MCP_SERVER_URL || DEFAULT_SERVER_URL ;
400+ const args = process . argv . slice ( 2 ) ;
401+ const serverUrl = args [ 0 ] || DEFAULT_SERVER_URL ;
402+ const clientMetadataUrl = args [ 1 ] ;
392403
393404 console . log ( '🚀 Simple MCP OAuth Client' ) ;
394405 console . log ( `Connecting to: ${ serverUrl } ` ) ;
406+ if ( clientMetadataUrl ) {
407+ console . log ( `Client Metadata URL: ${ clientMetadataUrl } ` ) ;
408+ }
395409 console . log ( ) ;
396410
397- const client = new InteractiveOAuthClient ( serverUrl ) ;
411+ const client = new InteractiveOAuthClient ( serverUrl , clientMetadataUrl ) ;
398412
399413 // Handle graceful shutdown
400414 process . on ( 'SIGINT' , ( ) => {
0 commit comments