Skip to main content
Glama
kajirita2002

honeycomb-mcp-server

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
NameRequiredDescriptionDefault
datasetSlugYesDataset slug to create query result for
queryIdYesQuery ID to run

Implementation Reference

  • 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) }],
      };
    }
  • 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();
    }
  • 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,
      ],
  • 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;
    }

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/kajirita2002/honeycomb-mcp-server'

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