create_directory
Create new directories or ensure existing ones using absolute paths for reliable file system organization within Desktop Commander MCP.
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
- Handler function that processes the create_directory tool call: validates input with schema, calls the createDirectory helper, and returns success/error response./** * Handle create_directory command */ 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:106-108 (schema)Zod schema for validating create_directory tool arguments (requires 'path' string).export const CreateDirectoryArgsSchema = z.object({ path: z.string(), });
- src/tools/filesystem.ts:554-557 (helper)Core implementation: validates the path and creates directory recursively using fs.mkdir.export async function createDirectory(dirPath: string): Promise<void> { const validPath = await validatePath(dirPath); await fs.mkdir(validPath, { recursive: true }); }