honeycomb_query_result_create
Generate query results by running specific queries on datasets using a dedicated MCP server. Input dataset slug and query ID to execute and retrieve query outputs.
Instructions
Create a new query result (run a query)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| datasetSlug | Yes | Dataset slug to create query result for | |
| queryId | Yes | Query ID to run |
Implementation Reference
- index.ts:704-723 (handler)Handler case in the CallToolRequest switch statement that handles the honeycomb_query_result_create tool call by parsing arguments and invoking the client.createQueryResult method.case "honeycomb_query_result_create": { const args = request.params .arguments as unknown as QueryResultCreateArgs; if (!args.datasetSlug || !args.queryId) { throw new Error("datasetSlug and queryId are required"); } const response = await client.createQueryResult( args.datasetSlug, args.queryId, { disable_series: args.disable_series, disable_total_by_aggregate: args.disable_total_by_aggregate, disable_other_by_aggregate: args.disable_other_by_aggregate, limit: args.limit } ); return { content: [{ type: "text", text: JSON.stringify(response) }], }; }
- index.ts:535-560 (helper)Core helper method in HoneycombClient class that executes the HTTP POST request to the Honeycomb API endpoint `/query_results/{datasetSlug}` to create and return a query result ID.async createQueryResult(datasetSlug: string, queryId: string, options?: { disable_series?: boolean; disable_total_by_aggregate?: boolean; disable_other_by_aggregate?: boolean; limit?: number; }): Promise<any> { const response = await fetch(`${this.baseUrl}/query_results/${datasetSlug}`, { method: "POST", headers: this.headers, body: JSON.stringify({ query_id: queryId, disable_series: options?.disable_series ?? false, disable_total_by_aggregate: options?.disable_total_by_aggregate ?? true, disable_other_by_aggregate: options?.disable_other_by_aggregate ?? true, limit: options?.limit ?? 10000 }), }); if (!response.ok) { const errorBody = await response.text(); console.error(`Query result creation error: Status=${response.status}, Body=${errorBody}`); throw new Error(`Failed to create query result: ${response.statusText}`); } return await response.json(); }
- index.ts:290-323 (schema)Tool definition object including input schema for validating arguments to the honeycomb_query_result_create tool.const queryResultCreateTool: Tool = { name: "honeycomb_query_result_create", description: "Run a previously created query and return a query result ID that can be used to retrieve the results.", inputSchema: { type: "object", properties: { datasetSlug: { type: "string", description: "The dataset slug or use `__all__` for endpoints that support environment-wide operations.", }, queryId: { type: "string", description: "The unique identifier (ID) of the query to run.", }, disable_series: { type: "boolean", description: "Whether to disable series in the query result", }, disable_total_by_aggregate: { type: "boolean", description: "Whether to disable total by aggregate in the query result", }, disable_other_by_aggregate: { type: "boolean", description: "Whether to disable other by aggregate in the query result", }, limit: { type: "integer", description: "Maximum number of results to return", }, }, required: ["datasetSlug", "queryId"], }, };
- index.ts:783-796 (registration)Registration of all tools including honeycomb_query_result_create (via queryResultCreateTool) in the ListToolsRequest handler.return { tools: [ authTool, datasetsListTool, datasetGetTool, columnsListTool, queryCreateTool, queryGetTool, queryResultCreateTool, queryResultGetTool, datasetDefinitionsListTool, boardsListTool, boardGetTool, ],
- index.ts:66-73 (schema)TypeScript interface defining the expected input arguments for the query result create tool.interface QueryResultCreateArgs { datasetSlug: string; queryId: string; disable_series?: boolean; disable_total_by_aggregate?: boolean; disable_other_by_aggregate?: boolean; limit?: number; }