Cloud computing has attracted great interest from both industrial and academic communities. However, only a few efforts have been devoted to building tools for supporting Cloud service discovery. Therefore, we present a four-stage, agent-based Cloud service discovery protocol. Additionally, two Cloud ontologies (CO-1 and CO-2) are designed to semantically define the relationship among Cloud services. Whereas CO-1 contains only Cloud concepts, CO-2 contains a set of Cloud concepts, individuals of those concepts, and the relationship among those individuals. The similarity among Cloud services is determined by concept, object property, and data type property similarity reasoning. In addition, two kinds of recommendation approaches (R1 and R2) based on attribute value prediction are presented. R1 is based on the maximum and R2 on the average similarity between the provided and the requested requirements. Empirical results show that our system achieved the best performance in finding the appropriate Cloud services with CO-2 and R2.