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
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | The ID of the agent | DATA_ANALYSIS_AGENT |
| 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 | |
| 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 |
Implementation Reference
- src/index.ts:295-342 (handler)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 }; } }
- src/index.ts:274-294 (schema)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; } }
- src/utils/powerdrillClient.ts:32-39 (schema)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; }