list-events
Retrieve and filter all events by name using the Consul MCP Server, enabling efficient event monitoring and management.
Instructions
List all events
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filter events by name |
Implementation Reference
- src/tools/consulTools.ts:561-582 (registration)Registration of the 'list-events' tool, including inline schema and handler function."list-events", "List all events", { name: z.string().default("").optional().describe("Filter events by name"), }, async ({ name }) => { try { const events = await consul.event.list({ name }); if (!events || events.length === 0) { return { content: [{ type: "text", text: "No events found" }] }; } const eventsText = events.map(event => `ID: ${event.ID}, Name: ${event.Name}, Payload: ${event.Payload || 'None'}` ).join("\n"); return { content: [{ type: "text", text: `Events:\n\n${eventsText}` }] }; } catch (error) { console.error("Error listing events:", error); return { content: [{ type: "text", text: "Error listing events" }] }; } } ); }
- src/tools/consulTools.ts:566-581 (handler)The handler function executes the tool logic: lists events from Consul (optionally filtered by name), formats them, and returns as text content.async ({ name }) => { try { const events = await consul.event.list({ name }); if (!events || events.length === 0) { return { content: [{ type: "text", text: "No events found" }] }; } const eventsText = events.map(event => `ID: ${event.ID}, Name: ${event.Name}, Payload: ${event.Payload || 'None'}` ).join("\n"); return { content: [{ type: "text", text: `Events:\n\n${eventsText}` }] }; } catch (error) { console.error("Error listing events:", error); return { content: [{ type: "text", text: "Error listing events" }] }; } } );
- src/tools/consulTools.ts:563-565 (schema)Input schema using Zod: optional 'name' parameter to filter events.{ name: z.string().default("").optional().describe("Filter events by name"), },
- src/server.ts:44-44 (registration)Top-level call to registerEventTools, which includes the 'list-events' tool registration.registerEventTools(server, consul);
- src/tools/consulTools.ts:538-582 (helper)Helper function that registers event-related tools, including 'list-events'.export function registerEventTools(server: McpServer, consul: Consul) { // Fire an event server.tool( "fire-event", "Fire a new event", { name: z.string().default("").describe("Name of the event"), payload: z.string().default("").optional().describe("Event payload"), }, async ({ name, payload }) => { try { // @ts-ignore - The Consul type definitions are incomplete const event = await consul.event.fire(name, payload || ""); return { content: [{ type: "text", text: `Fired event: ${event.ID}` }] }; } catch (error) { console.error("Error firing event:", error); return { content: [{ type: "text", text: `Error firing event: ${name}` }] }; } } ); // List events server.tool( "list-events", "List all events", { name: z.string().default("").optional().describe("Filter events by name"), }, async ({ name }) => { try { const events = await consul.event.list({ name }); if (!events || events.length === 0) { return { content: [{ type: "text", text: "No events found" }] }; } const eventsText = events.map(event => `ID: ${event.ID}, Name: ${event.Name}, Payload: ${event.Payload || 'None'}` ).join("\n"); return { content: [{ type: "text", text: `Events:\n\n${eventsText}` }] }; } catch (error) { console.error("Error listing events:", error); return { content: [{ type: "text", text: "Error listing events" }] }; } } ); }