initialize_code_file
Create a new Python file with initial content to start coding projects that may exceed token limits, enabling structured code execution in Conda environments.
Instructions
Create a new Python file with initial content. Use this as the first step for longer code that may exceed token limits. Follow with append_to_code_file for additional code.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Initial content to write to the file | |
| filename | No | Optional: Name of the file (default: generated UUID) |
Implementation Reference
- src/index.ts:204-243 (handler)The core handler function that creates a new Python code file in the storage directory with the provided content, generating a unique .py filename if not specified, and returns JSON response with file path.async function initializeCodeFile(content: string, filename?: string) { try { // Generate a filename if not provided let actualFilename; if (filename && typeof filename === 'string') { // Extract base name without extension const baseName = filename.replace(/\.py$/, ''); // Add a random suffix to ensure uniqueness actualFilename = `${baseName}_${randomBytes(4).toString('hex')}.py`; } else { // Default filename if none provided actualFilename = `code_${randomBytes(4).toString('hex')}.py`; } const filePath = join(CODE_STORAGE_DIR, actualFilename); // Write initial content to file await writeFile(filePath, content, 'utf-8'); return { type: 'text', text: JSON.stringify({ status: 'success', message: 'File initialized successfully', file_path: filePath, filename: actualFilename }), isError: false }; } catch (error) { return { type: 'text', text: JSON.stringify({ status: 'error', error: error instanceof Error ? error.message : String(error) }), isError: true }; } }
- src/index.ts:552-569 (registration)Tool registration in the ListToolsRequestSchema handler, specifying name, description, and input schema for validation.{ name: "initialize_code_file", description: "Create a new Python file with initial content. Use this as the first step for longer code that may exceed token limits. Follow with append_to_code_file for additional code.", inputSchema: { type: "object", properties: { content: { type: "string", description: "Initial content to write to the file" }, filename: { type: "string", description: "Optional: Name of the file (default: generated UUID)" } }, required: ["content"] } },
- src/index.ts:695-698 (schema)TypeScript interface defining the expected arguments for the initialize_code_file tool.interface InitializeCodeFileArgs { content?: string; filename?: string; }
- src/index.ts:789-804 (handler)Dispatch handler case in the CallToolRequestSchema that validates arguments and invokes the initializeCodeFile function, wrapping the result in MCP content format.case "initialize_code_file": { const args = request.params.arguments as InitializeCodeFileArgs; if (!args?.content) { throw new Error("Content is required"); } const result = await initializeCodeFile(args.content, args.filename); return { content: [{ type: "text", text: result.text, isError: result.isError }] }; }