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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The session name, which can be up to 128 characters in length | |
| output_language | No | The language in which the output is generated | AUTO |
| job_mode | No | Job mode for the session | AUTO |
| max_contextual_job_history | No | The maximum number of recent jobs retained as context for the next job | |
| agent_id | No | The ID of the agent | DATA_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.createSessionserver.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 }; } } );
- src/index.ts:295-342 (handler)The main handler function for the tool, which creates a PowerdrillClient instance and calls its createSession method with validated argsasync (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 }; } }
- src/index.ts:274-294 (schema)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 sessionasync 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; } }
- src/utils/powerdrillClient.ts:32-39 (schema)TypeScript interface defining parameters for createSession in PowerdrillClientexport interface CreateSessionParams { name: string; user_id?: string; output_language?: string; job_mode?: string; max_contextual_job_history?: number; agent_id?: string; }