create_directory
Create or validate directories with absolute paths, including nested structures, ensuring reliable folder management within permitted locations.
Instructions
Create a new directory or ensure a directory exists.
Can create multiple nested directories in one operation.
Only works within allowed directories.
IMPORTANT: Always use absolute paths for reliability. Paths are automatically normalized regardless of slash direction. Relative paths may fail as they depend on the current working directory. Tilde paths (~/...) might not work in all contexts. Unless the user explicitly asks for relative paths, use absolute paths.
This command can be referenced as "DC: ..." or "use Desktop Commander to ..." in your instructions.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Implementation Reference
- MCP handler for the 'create_directory' tool. Parses input arguments using the schema, calls the core createDirectory function, and returns success/error response.export async function handleCreateDirectory(args: unknown): Promise<ServerResult> { try { const parsed = CreateDirectoryArgsSchema.parse(args); await createDirectory(parsed.path); return { content: [{ type: "text", text: `Successfully created directory ${parsed.path}` }], }; } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); return createErrorResponse(errorMessage); } }
- src/tools/schemas.ts:101-103 (schema)Zod schema for validating input arguments to the create_directory tool (requires 'path' string).export const CreateDirectoryArgsSchema = z.object({ path: z.string(), });
- src/tools/filesystem.ts:935-938 (helper)Core implementation of directory creation. Validates the path using shared path validation utility and creates the directory recursively using fs.mkdir.export async function createDirectory(dirPath: string): Promise<void> { const validPath = await validatePath(dirPath); await fs.mkdir(validPath, { recursive: true }); }