11import type { Server } from '@modelcontextprotocol/sdk/server/index.js'
22import {
33 ListResourcesRequestSchema ,
4- ReadResourceRequestSchema ,
4+ ReadResourceRequestSchema
55} from '@modelcontextprotocol/sdk/types.js'
66import { initLogger , type Logger } from '../utils/logger.ts'
77import { CacheService } from '../services/cache-service.ts'
@@ -10,21 +10,9 @@ import type { ReadResourceRequest } from '@modelcontextprotocol/sdk/types.js'
1010const logger : Logger = initLogger ( )
1111const cacheService = new CacheService ( )
1212
13- export async function initializeResources ( server : Server ) : Promise < void > {
13+ export async function initializeResources ( server : Server ) : Promise < void > {
1414 logger . info ( { msg : 'Initializing resources...' } )
1515
16- const resourceNodejsReleasesChartURL =
17- 'https://raw.githubusercontent.com/nodejs/Release/main/schedule.svg?sanitize=true'
18-
19- // Use cache service to fetch the SVG with 7-day expiration
20- const resourceNodejsReleasesChartSVGText = await cacheService . fetchHttpWithCache (
21- resourceNodejsReleasesChartURL ,
22- {
23- responseType : 'text' ,
24- ttlDays : 7
25- }
26- )
27-
2816 const resources = [
2917 {
3018 uri : 'nodejs://releases-schedule-chart.svg' ,
@@ -34,16 +22,28 @@ export async function initializeResources (server: Server): Promise<void> {
3422 handler : async ( request : ReadResourceRequest ) => {
3523 logger . info ( { msg : 'Resource URI Access:' , uri : request . params . uri } )
3624
25+ const resourceNodejsReleasesChartURL =
26+ 'https://raw.githubusercontent.com/nodejs/Release/main/schedule.svg?sanitize=true'
27+
28+ // Fetch SVG data with cache on each request
29+ const resourceNodejsReleasesChartSVGText = await cacheService . fetchHttpWithCache (
30+ resourceNodejsReleasesChartURL ,
31+ {
32+ responseType : 'text' ,
33+ ttlDays : 7
34+ }
35+ )
36+
3737 return {
3838 contents : [
3939 {
4040 uri : request . params . uri ,
41- text : resourceNodejsReleasesChartSVGText ,
42- } ,
43- ] ,
41+ text : resourceNodejsReleasesChartSVGText
42+ }
43+ ]
4444 }
45- } ,
46- } ,
45+ }
46+ }
4747 ]
4848
4949 server . setRequestHandler ( ListResourcesRequestSchema , async ( ) => {
@@ -52,12 +52,12 @@ export async function initializeResources (server: Server): Promise<void> {
5252 uri : resource . uri ,
5353 name : resource . name ,
5454 description : resource . description ,
55- mimeType : resource . mimeType || 'text/plain' ,
55+ mimeType : resource . mimeType || 'text/plain'
5656 }
5757 } )
5858
5959 return {
60- resources : resourcesList ,
60+ resources : resourcesList
6161 }
6262 } )
6363
0 commit comments