Skip to main content
Glama
masx200
by masx200

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
NameRequiredDescriptionDefault
pathYes

Implementation Reference

  • 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.`,
              },
            },
          ],
        }),
      );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/masx200/mcp-webdav-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server