Skip to main content
Glama

list_triggers

Retrieve all configured alerts and their metadata for a specific dataset in Honeycomb to monitor system performance and identify issues.

Instructions

Lists available triggers (alerts) for a specific dataset. This tool returns a list of all triggers available in the specified dataset, including their names, descriptions, thresholds, and other metadata. NOTE: all is NOT supported as a dataset name -- it is not possible to list all triggers in an environment.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
environmentYesThe Honeycomb environment
datasetYesThe dataset to fetch triggers from

Implementation Reference

  • Handler for the list_triggers tool: validates environment and dataset parameters, fetches triggers via api.getTriggers, maps to SimplifiedTrigger format, calculates active and triggered counts, returns JSON content and metadata.
    handler: async ({ environment, dataset }: z.infer<typeof DatasetArgumentsSchema>) => { // Validate input parameters if (!environment) { return handleToolError(new Error("environment parameter is required"), "list_triggers"); } if (!dataset) { return handleToolError(new Error("dataset parameter is required"), "list_triggers"); } try { // Fetch triggers from the API const triggers = await api.getTriggers(environment, dataset); // Simplify the response to reduce context window usage const simplifiedTriggers: SimplifiedTrigger[] = triggers.map(trigger => ({ id: trigger.id, name: trigger.name, description: trigger.description || '', threshold: { op: trigger.threshold.op, value: trigger.threshold.value, }, triggered: trigger.triggered, disabled: trigger.disabled, frequency: trigger.frequency, alert_type: trigger.alert_type, })); const activeCount = simplifiedTriggers.filter(trigger => !trigger.disabled).length; const triggeredCount = simplifiedTriggers.filter(trigger => trigger.triggered).length; return { content: [ { type: "text", text: JSON.stringify(simplifiedTriggers, null, 2), }, ], metadata: { count: simplifiedTriggers.length, activeCount, triggeredCount, dataset, environment } }; } catch (error) { return handleToolError(error, "list_triggers"); } }
  • Zod schema defining input parameters: environment (string) and dataset (string) for the list_triggers tool.
    schema: { environment: z.string().describe("The Honeycomb environment"), dataset: z.string().describe("The dataset to fetch triggers from"), },
  • Creation of the list_triggers tool instance using createListTriggersTool and addition to the tools array.
    createListTriggersTool(api),
  • Loop that registers each tool, including list_triggers, to the MCP server by calling server.tool with name, description, schema, and wrapper handler.
    for (const tool of tools) { // Register the tool with the server using type assertion to bypass TypeScript's strict type checking (server as any).tool( tool.name, tool.description, tool.schema, async (args: Record<string, any>, extra: any) => { try { // Validate and ensure required fields are present before passing to handler if (tool.name.includes("analyze_columns") && (!args.environment || !args.dataset || !args.columns)) { throw new Error("Missing required fields: environment, dataset, and columns are required"); } else if (tool.name.includes("run_query") && (!args.environment || !args.dataset)) { throw new Error("Missing required fields: environment and dataset are required"); } // Use type assertion to satisfy TypeScript's type checking const result = await tool.handler(args as any); // If the result already has the expected format, return it directly if (result && typeof result === 'object' && 'content' in result) { return result as any; } // Otherwise, format the result as expected by the SDK return { content: [ { type: "text", text: typeof result === 'string' ? result : JSON.stringify(result, null, 2), }, ], } as any; } catch (error) { // Format errors to match the SDK's expected format return { content: [ { type: "text", text: error instanceof Error ? error.message : String(error), }, ], isError: true, } as any; } } ); }
  • Interface defining the simplified trigger data structure returned by the tool.
    interface SimplifiedTrigger { id: string; name: string; description: string; threshold: { op: string; value: number; }; triggered: boolean; disabled: boolean; frequency: number; alert_type?: string; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/honeycombio/honeycomb-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server