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
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "get-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 };