write_file
Replace entire file contents for significant edits or when incremental editing fails. Overwrites existing files within permitted directories.
Instructions
Completely replace file contents. Best for large changes (>20% of file) or when edit_block fails. Use with caution as it will overwrite existing files. Only works within allowed directories.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| content | Yes |
Implementation Reference
- src/tools/filesystem.ts:70-73 (handler)Core handler function that validates the file path security and writes the provided content to the file using Node.js fs.promises.writeFile.export async function writeFile(filePath: string, content: string): Promise<void> { const validPath = await validatePath(filePath); await fs.writeFile(validPath, content, "utf-8"); }
- src/tools/schemas.ts:40-43 (schema)Zod schema for validating the input arguments to the write_file tool: path (string) and content (string). Used in tool registration and dispatch.export const WriteFileArgsSchema = z.object({ path: z.string(), content: z.string(), });
- src/server.ts:142-148 (registration)Tool metadata registration in the ListTools response, including name, description, and input schema reference.{ name: "write_file", description: "Completely replace file contents. Best for large changes (>20% of file) or when edit_block fails. " + "Use with caution as it will overwrite existing files. Only works within allowed directories.", inputSchema: zodToJsonSchema(WriteFileArgsSchema), },
- src/server.ts:280-286 (handler)Dispatch handler in the CallToolRequest that parses arguments with the schema and delegates to the core writeFile function.case "write_file": { const parsed = WriteFileArgsSchema.parse(args); await writeFile(parsed.path, parsed.content); return { content: [{ type: "text", text: `Successfully wrote to ${parsed.path}` }], }; }