Skip to main content
Glama
powerdrillai

Powerdrill MCP Server

Official
by powerdrillai

mcp_powerdrill_create_session

Create a data analysis session to process datasets with AI-powered insights, specifying parameters like language, job mode, and context retention.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesThe session name, which can be up to 128 characters in length
output_languageNoThe language in which the output is generatedAUTO
job_modeNoJob mode for the sessionAUTO
max_contextual_job_historyNoThe maximum number of recent jobs retained as context for the next job
agent_idNoThe ID of the agentDATA_ANALYSIS_AGENT

Implementation Reference

  • src/index.ts:272-343 (registration)
    Registration of the MCP tool 'mcp_powerdrill_create_session' including input schema and handler function that delegates to PowerdrillClient.createSession
    server.tool(
      'mcp_powerdrill_create_session',
      {
        name: z.string().describe('The session name, which can be up to 128 characters in length'),
        output_language: z.enum(['AUTO', 'EN', 'ES', 'AR', 'PT', 'ID', 'JA', 'RU', 'HI', 'FR', 'DE', 'VI', 'TR', 'PL', 'IT', 'KO', 'ZH-CN', 'ZH-TW'])
          .optional()
          .default('AUTO')
          .describe('The language in which the output is generated'),
        job_mode: z.enum(['AUTO', 'DATA_ANALYTICS'])
          .optional()
          .default('AUTO')
          .describe('Job mode for the session'),
        max_contextual_job_history: z.number()
          .min(0)
          .max(10)
          .optional()
          .default(10)
          .describe('The maximum number of recent jobs retained as context for the next job'),
        agent_id: z.enum(['DATA_ANALYSIS_AGENT'])
          .optional()
          .default('DATA_ANALYSIS_AGENT')
          .describe('The ID of the agent')
      },
      async (args, extra) => {
        try {
          // Initialize Powerdrill client
          const client = new (await import('./utils/powerdrillClient.js')).PowerdrillClient();
    
          // Create session parameters
          const sessionParams = {
            name: args.name,
            output_language: args.output_language,
            job_mode: args.job_mode,
            max_contextual_job_history: args.max_contextual_job_history,
            agent_id: args.agent_id
          };
    
          // Create session
          const response = await client.createSession(sessionParams);
    
          // 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({
                  session_id: response.data.id
                }, null, 2)
              }
            ]
          };
        } catch (error: any) {
          console.error(`Error creating session: ${error.message}`);
    
          // Return error response
          return {
            content: [
              {
                type: "text",
                text: `Error creating session: ${error.message}`
              }
            ],
            isError: true
          };
        }
      }
    );
  • The main handler function for the tool, which creates a PowerdrillClient instance and calls its createSession method with validated args
    async (args, extra) => {
      try {
        // Initialize Powerdrill client
        const client = new (await import('./utils/powerdrillClient.js')).PowerdrillClient();
    
        // Create session parameters
        const sessionParams = {
          name: args.name,
          output_language: args.output_language,
          job_mode: args.job_mode,
          max_contextual_job_history: args.max_contextual_job_history,
          agent_id: args.agent_id
        };
    
        // Create session
        const response = await client.createSession(sessionParams);
    
        // 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({
                session_id: response.data.id
              }, null, 2)
            }
          ]
        };
      } catch (error: any) {
        console.error(`Error creating session: ${error.message}`);
    
        // Return error response
        return {
          content: [
            {
              type: "text",
              text: `Error creating session: ${error.message}`
            }
          ],
          isError: true
        };
      }
    }
  • Zod schema defining the input parameters for the mcp_powerdrill_create_session tool
    {
      name: z.string().describe('The session name, which can be up to 128 characters in length'),
      output_language: z.enum(['AUTO', 'EN', 'ES', 'AR', 'PT', 'ID', 'JA', 'RU', 'HI', 'FR', 'DE', 'VI', 'TR', 'PL', 'IT', 'KO', 'ZH-CN', 'ZH-TW'])
        .optional()
        .default('AUTO')
        .describe('The language in which the output is generated'),
      job_mode: z.enum(['AUTO', 'DATA_ANALYTICS'])
        .optional()
        .default('AUTO')
        .describe('Job mode for the session'),
      max_contextual_job_history: z.number()
        .min(0)
        .max(10)
        .optional()
        .default(10)
        .describe('The maximum number of recent jobs retained as context for the next job'),
      agent_id: z.enum(['DATA_ANALYSIS_AGENT'])
        .optional()
        .default('DATA_ANALYSIS_AGENT')
        .describe('The ID of the agent')
    },
  • PowerdrillClient helper method that performs the actual POST request to /sessions endpoint to create a session
    async createSession(params: CreateSessionParams) {
      try {
        // Include user_id in the request body if not provided
        const requestBody = {
          ...params,
          user_id: params.user_id || this.config.userId
        };
    
        const response = await this.client.post('/sessions', requestBody);
        return response.data;
      } catch (error: any) {
        console.error('Error creating session:', error.message);
        throw error;
      }
    }
  • TypeScript interface defining parameters for createSession in PowerdrillClient
    export interface CreateSessionParams {
      name: string;
      user_id?: string;
      output_language?: string;
      job_mode?: string;
      max_contextual_job_history?: number;
      agent_id?: 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/powerdrillai/powerdrill-mcp'

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