@@ -8,7 +8,6 @@ import { requireBearerAuth } from '../../server/auth/middleware/bearerAuth.js';
88import { CallToolResult , GetPromptResult , isInitializeRequest , ReadResourceResult } from '../../types.js' ;
99import { InMemoryEventStore } from '../shared/inMemoryEventStore.js' ;
1010import { setupAuthServer } from './demoInMemoryOAuthProvider.js' ;
11- import { DemoRemoteOAuthProvider } from './demoRemoteOAuthProvider.js' ;
1211import { OAuthMetadata } from 'src/shared/auth.js' ;
1312
1413// Check for OAuth flag
@@ -182,9 +181,40 @@ if (useOAuth) {
182181
183182 const oauthMetadata : OAuthMetadata = setupAuthServer ( authServerUrl ) ;
184183
185- const remoteProvider = new DemoRemoteOAuthProvider (
186- oauthMetadata
187- ) ;
184+ const tokenVerifier = {
185+ verifyAccessToken : async ( token : string ) => {
186+ const endpoint = oauthMetadata . introspection_endpoint ;
187+
188+ if ( ! endpoint ) {
189+ throw new Error ( 'No token verification endpoint available in metadata' ) ;
190+ }
191+
192+ const response = await fetch ( endpoint , {
193+ method : 'POST' ,
194+ headers : {
195+ 'Content-Type' : 'application/x-www-form-urlencoded' ,
196+ } ,
197+ body : new URLSearchParams ( {
198+ token : token
199+ } ) . toString ( )
200+ } ) ;
201+
202+
203+ if ( ! response . ok ) {
204+ throw new Error ( `Invalid or expired token: ${ await response . text ( ) } ` ) ;
205+ }
206+
207+ const data = await response . json ( ) ;
208+
209+ // Convert the response to AuthInfo format
210+ return {
211+ token,
212+ clientId : data . client_id ,
213+ scopes : data . scope ? data . scope . split ( ' ' ) : [ ] ,
214+ expiresAt : data . exp ,
215+ } ;
216+ }
217+ }
188218 // Add metadata routes to the main MCP server
189219 app . use ( mcpAuthMetadataRouter ( {
190220 oauthMetadata,
@@ -194,7 +224,7 @@ if (useOAuth) {
194224 } ) ) ;
195225
196226 authMiddleware = requireBearerAuth ( {
197- provider : remoteProvider ,
227+ verifier : tokenVerifier ,
198228 requiredScopes : [ 'mcp:tools' ] ,
199229 resourceMetadataUrl : getOAuthProtectedResourceMetadataUrl ( mcpServerUrl ) ,
200230 } ) ;
0 commit comments