drive_create_folder
Create a new folder in Google Drive by specifying its name and parent folder ID using the MCP Google Workspace Server.
Instructions
Create a new folder in Google Drive
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the folder | |
| parent_id | No | ID of parent folder |
Implementation Reference
- src/mcp_google_suite/server.py:295-308 (handler)MCP tool handler that validates arguments and delegates folder creation to DriveService.async def _handle_drive_create_folder( self, context: GoogleWorkspaceContext, arguments: dict ) -> Dict[str, Any]: """Handle drive create folder requests.""" name = arguments.get("name") parent_id = arguments.get("parent_id") if not name: raise ValueError("Folder name is required") logger.debug(f"Creating folder - Name: {name}, Parent: {parent_id or 'root'}") result = await context.drive.create_folder(name=name, parent_id=parent_id) logger.debug(f"Folder created - ID: {result.get('id')}") return result
- src/mcp_google_suite/server.py:73-84 (schema)Input schema definition for the drive_create_folder tool, specifying parameters name (required) and parent_id (optional).types.Tool( name="drive_create_folder", description="Create a new folder in Google Drive", inputSchema={ "type": "object", "properties": { "name": {"type": "string", "description": "Name of the folder"}, "parent_id": {"type": "string", "description": "ID of parent folder"}, }, "required": ["name"], }, ),
- src/mcp_google_suite/server.py:178-182 (registration)Dynamic registration of the tool handler into the registry using naming convention '_handle_drive_create_folder'.handler_name = f"_handle_{tool.name}" if hasattr(self, handler_name): handler = getattr(self, handler_name) self._tool_registry[tool.name] = handler logger.debug(f"Registered handler for {tool.name}")
- Core implementation in DriveService that creates the folder using Google Drive API v3.def create_folder(self, name: str, parent_id: Optional[str] = None) -> Dict[str, Any]: """Create a new folder in Google Drive.""" try: file_metadata = {"name": name, "mimeType": "application/vnd.google-apps.folder"} if parent_id: file_metadata["parents"] = [parent_id] folder = ( self.service.files() .create(body=file_metadata, fields="id, name, webViewLink") .execute() ) return {"success": True, "folder": folder} except HttpError as error: return {"success": False, **self.handle_error(error)}