create_directory
Create new directories or ensure existing ones are available, including nested folder structures in a single operation using absolute paths 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
- The handler function for the 'create_directory' tool. Parses input arguments using CreateDirectoryArgsSchema, calls the createDirectory helper function, and returns a success message or 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, requiring a 'path' string.export const CreateDirectoryArgsSchema = z.object({ path: z.string(), });
- src/server.ts:410-420 (registration)Tool registration in the list_tools handler, defining the tool name, description, and input schema for create_directory.name: "create_directory", description: ` Create a new directory or ensure a directory exists. Can create multiple nested directories in one operation. Only works within allowed directories. ${PATH_GUIDANCE} ${CMD_PREFIX_DESCRIPTION}`, inputSchema: zodToJsonSchema(CreateDirectoryArgsSchema), },
- src/server.ts:1252-1254 (registration)Dispatch registration in the call_tool handler switch statement, mapping 'create_directory' tool calls to the handleCreateDirectory function.case "create_directory": result = await handlers.handleCreateDirectory(args); break;
- src/tools/filesystem.ts:935-938 (helper)Core helper function that validates the directory path and creates the directory using fs.mkdir with recursive option.export async function createDirectory(dirPath: string): Promise<void> { const validPath = await validatePath(dirPath); await fs.mkdir(validPath, { recursive: true }); }