Skip to main content
Glama

start_codegen_session

Initiates a code generation session to record Playwright automation actions, saving tests to a specified directory with optional test name prefixes and comments.

Instructions

Start a new code generation session to record Playwright actions

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
optionsYesCode generation options

Implementation Reference

  • Defines and implements the 'start_codegen_session' tool including its handler function that initializes a new code generation session by merging options, creating output directories, and starting an ActionRecorder session.
    export const startCodegenSession: Tool = { name: 'start_codegen_session', description: 'Start a new code generation session to record MCP tool actions', parameters: { type: 'object', properties: { options: { type: 'object', description: 'Code generation options', properties: { outputPath: { type: 'string' }, testNamePrefix: { type: 'string' }, includeComments: { type: 'boolean' } } } } }, handler: async ({ options = {} }: { options?: CodegenOptions }) => { try { // Merge provided options with defaults const mergedOptions = { ...DEFAULT_OPTIONS, ...options }; // Ensure output path is absolute and normalized const workspaceRoot = getWorkspaceRoot(); const outputPath = path.isAbsolute(mergedOptions.outputPath) ? mergedOptions.outputPath : path.join(workspaceRoot, mergedOptions.outputPath); mergedOptions.outputPath = outputPath; // Ensure output directory exists try { await fs.mkdir(outputPath, { recursive: true }); } catch (mkdirError: any) { throw new Error(`Failed to create output directory: ${mkdirError.message}`); } const sessionId = ActionRecorder.getInstance().startSession(); // Store options with the session const recorder = ActionRecorder.getInstance(); const session = recorder.getSession(sessionId); if (session) { session.options = mergedOptions; } return { sessionId, options: mergedOptions, message: `Started codegen session. Tests will be generated in: ${outputPath}` }; } catch (error: any) { throw new Error(`Failed to start codegen session: ${error.message}`); } } };
  • MCP input schema definition for the 'start_codegen_session' tool, specifying detailed properties and requirements for the options parameter.
    { name: "start_codegen_session", description: "Start a new code generation session to record Playwright actions", inputSchema: { type: "object", properties: { options: { type: "object", description: "Code generation options", properties: { outputPath: { type: "string", description: "Directory path where generated tests will be saved (use absolute path)" }, testNamePrefix: { type: "string", description: "Prefix to use for generated test names (default: 'GeneratedTest')" }, includeComments: { type: "boolean", description: "Whether to include descriptive comments in generated tests" } }, required: ["outputPath"] } }, required: ["options"] } },
  • Registration and dispatching logic in the main tool handler switch statement that routes 'start_codegen_session' calls to its handler function.
    switch (name) { case 'start_codegen_session': return await handleCodegenResult(startCodegenSession.handler(args)); case 'end_codegen_session': return await handleCodegenResult(endCodegenSession.handler(args)); case 'get_codegen_session': return await handleCodegenResult(getCodegenSession.handler(args)); case 'clear_codegen_session': return await handleCodegenResult(clearCodegenSession.handler(args));
  • Internal parameters schema defined within the Tool object for 'start_codegen_session'.
    parameters: { type: 'object', properties: { options: { type: 'object', description: 'Code generation options', properties: { outputPath: { type: 'string' }, testNamePrefix: { type: 'string' }, includeComments: { type: 'boolean' } } } } },
  • Import statement registering the codegen tools including 'start_codegen_session' for use in the tool handler.
    import { startCodegenSession, endCodegenSession, getCodegenSession, clearCodegenSession } from './tools/codegen/index.js';

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/executeautomation/mcp-playwright'

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