Skip to main content
Glama
powerdrillai

Powerdrill MCP Server

Official
by powerdrillai

mcp_powerdrill_get_dataset_overview

Retrieve summary information and structure details for a specific Powerdrill dataset to understand its contents and prepare for analysis.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
datasetIdYesThe ID of the dataset to get overview information for

Implementation Reference

  • src/index.ts:133-184 (registration)
    Registration of the mcp_powerdrill_get_dataset_overview tool, including inline schema and handler function.
    server.tool(
      'mcp_powerdrill_get_dataset_overview',
      {
        datasetId: z.string().describe('The ID of the dataset to get overview information for')
      },
      async (args, extra) => {
        try {
          const { datasetId } = args;
    
          // Initialize Powerdrill client
          const client = new (await import('./utils/powerdrillClient.js')).PowerdrillClient();
    
          // Fetch dataset overview
          const response = await client.getDatasetOverview(datasetId);
    
          // Check if response is valid
          if (response.code !== 0 || !response.data) {
            throw new Error(`Invalid API response: ${JSON.stringify(response)}`);
          }
    
          // Format the response as MCP content
          return {
            content: [
              {
                type: "text",
                text: JSON.stringify({
                  id: response.data.id,
                  name: response.data.name,
                  description: response.data.description,
                  summary: response.data.summary,
                  exploration_questions: response.data.exploration_questions,
                  keywords: response.data.keywords
                })
              }
            ]
          };
        } catch (error: any) {
          console.error(`Error getting dataset overview: ${error.message}`);
    
          // Return error response
          return {
            content: [
              {
                type: "text",
                text: `Error getting dataset overview: ${error.message}`
              }
            ],
            isError: true
          };
        }
      }
    );
  • Input schema for the tool using Zod validation.
    {
      datasetId: z.string().describe('The ID of the dataset to get overview information for')
    },
  • The handler function that processes the tool call: extracts datasetId, initializes PowerdrillClient, fetches overview, formats response.
    async (args, extra) => {
      try {
        const { datasetId } = args;
    
        // Initialize Powerdrill client
        const client = new (await import('./utils/powerdrillClient.js')).PowerdrillClient();
    
        // Fetch dataset overview
        const response = await client.getDatasetOverview(datasetId);
    
        // Check if response is valid
        if (response.code !== 0 || !response.data) {
          throw new Error(`Invalid API response: ${JSON.stringify(response)}`);
        }
    
        // Format the response as MCP content
        return {
          content: [
            {
              type: "text",
              text: JSON.stringify({
                id: response.data.id,
                name: response.data.name,
                description: response.data.description,
                summary: response.data.summary,
                exploration_questions: response.data.exploration_questions,
                keywords: response.data.keywords
              })
            }
          ]
        };
      } catch (error: any) {
        console.error(`Error getting dataset overview: ${error.message}`);
    
        // Return error response
        return {
          content: [
            {
              type: "text",
              text: `Error getting dataset overview: ${error.message}`
            }
          ],
          isError: true
        };
      }
    }
  • Helper method in PowerdrillClient class that makes the API call to retrieve dataset overview.
    async getDatasetOverview(datasetId: string) {
      try {
        const response = await this.client.get(`/datasets/${datasetId}/overview?user_id=${this.config.userId}`);
        return response.data;
      } catch (error: any) {
        console.error(`Error retrieving dataset overview for ${datasetId}:`, error.message);
        throw error;
      }
    }

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/powerdrillai/powerdrill-mcp'

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