webdav_create_remote_directory
Create a new directory on a remote WebDAV server by specifying the desired path for organized file storage and management.
Instructions
Create a new directory on a remote WebDAV server
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Implementation Reference
- src/handlers/tool-handlers.ts:261-287 (handler)Tool handler registration, schema, and execution logic for webdav_create_remote_directory. Calls webdavService.createDirectory and handles success/error responses.server.tool( "webdav_create_remote_directory", "Create a new directory on a remote WebDAV server", { path: z.string().min(1, "Path must not be empty"), }, async ({ path }) => { try { await webdavService.createDirectory(path); return { content: [{ type: "text", text: `Directory created successfully at ${path}`, }], }; } catch (error) { return { content: [{ type: "text", text: `Error creating directory: ${(error as Error).message}`, }], isError: true, }; } }, );
- Core implementation of directory creation in WebDAVService using WebDAVClient.createDirectory, with full path normalization, result checking, and error handling.async createDirectory(path: string): Promise<void> { const fullPath = this.getFullPath(path); logger.debug(`Creating directory: ${fullPath}`); try { // createDirectory in v5.x returns a boolean indicating success const result = await this.client.createDirectory(fullPath); // Check result based on type if (typeof result === "boolean" && !result) { throw new Error( "Failed to create directory: server returned failure status", ); } else if ( this.isResponseData(result) && result.status !== undefined && result.status !== 201 && result.status !== 204 ) { throw new Error( `Failed to create directory: server returned status ${result.status}`, ); } logger.debug(`Successfully created directory: ${fullPath}`); } catch (error) { logger.error(`Error creating directory ${fullPath}:`, error); throw new Error( `Failed to create directory: ${(error as Error).message}`, ); } }
- Prompt schema and template registration for webdav_create_remote_directory, defining input validation and user message generation.// Prompt for creating a directory server.prompt( "webdav_create_remote_directory", { path: z.string().min(1, "Path must not be empty"), }, (args) => ({ messages: [ { role: "user", content: { type: "text", text: `Create a new directory on the remote WebDAV server at path "${args.path}". Please execute this remote WebDAV operation and confirm when the directory has been created.`, }, }, ], }), );