Skip to main content
Glama
powerdrillai

Powerdrill MCP Server

Official
by powerdrillai

mcp_powerdrill_create_session

Initiate a data analysis session on the Powerdrill MCP Server by specifying session parameters, agent ID, job mode, and output language for AI-driven insights.

Input Schema

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

Implementation Reference

  • MCP tool handler that initializes PowerdrillClient, prepares session parameters, calls client.createSession, validates response, and formats MCP content or error.
    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 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') },
  • src/index.ts:272-343 (registration)
    Registration of the mcp_powerdrill_create_session tool using McpServer.tool() with name, schema, and handler.
    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 }; } } );
  • PowerdrillClient.createSession method that makes POST request to /sessions endpoint to create the 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; }

Other Tools

Related Tools

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