get-hmr-events
Retrieve recent Hot Module Replacement events from the Vite dev server to track live code updates and modifications in real time.
Instructions
Retrieves recent HMR events
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of events to return |
Implementation Reference
- src/tools/hmr-tools.ts:22-50 (handler)The async handler function for 'get-hmr-events' tool. It takes an optional 'limit' parameter, slices the lastHMREvents array accordingly, and returns the events as JSON text, or an error message if something fails.
async ({ limit }) => { try { const eventsToReturn = limit ? lastHMREvents.slice(0, limit) : lastHMREvents; return { content: [ { type: 'text', text: eventsToReturn.length > 0 ? `Recent HMR events:\n${JSON.stringify(eventsToReturn, null, 2)}` : 'No HMR events detected yet.' } ] }; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); Logger.error(`Failed to get HMR events: ${errorMessage}`); return { content: [ { type: 'text', text: `Failed to get HMR events: ${errorMessage}` } ], isError: true }; } } ); - src/tools/hmr-tools.ts:19-21 (schema)Input schema for the 'get-hmr-events' tool: an optional 'limit' number parameter that controls how many events to return.
{ limit: z.number().optional().describe('Maximum number of events to return') }, - src/tools/hmr-tools.ts:11-51 (registration)The registerHMRTools function that calls server.tool() to register 'get-hmr-events' with its schema and handler on the MCP server.
export function registerHMRTools( server: McpServer, lastHMREvents: HMREvent[] ) { // Recent HMR events retrieval tool server.tool( 'get-hmr-events', 'Retrieves recent HMR events', { limit: z.number().optional().describe('Maximum number of events to return') }, async ({ limit }) => { try { const eventsToReturn = limit ? lastHMREvents.slice(0, limit) : lastHMREvents; return { content: [ { type: 'text', text: eventsToReturn.length > 0 ? `Recent HMR events:\n${JSON.stringify(eventsToReturn, null, 2)}` : 'No HMR events detected yet.' } ] }; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); Logger.error(`Failed to get HMR events: ${errorMessage}`); return { content: [ { type: 'text', text: `Failed to get HMR events: ${errorMessage}` } ], isError: true }; } } ); } - src/index.ts:85-85 (registration)Invocation of registerHMRTools(server, lastHMREvents) from the main setup function, where lastHMREvents is the state array defined at line 26.
registerHMRTools(server, lastHMREvents); - src/types/hmr.ts:39-39 (helper)The HMREvent type definition used by the tool's handler to type the event array.
export type HMREvent = HMRUpdate | HMRError | HMRBrowserError | { type: string; [key: string]: unknown };