Mashups are prevalent Service-Oriented Architecture (SOA) based applications consisting of multiple Web Application Programming Interfaces (APIs) and content. Tags have been extensively used to organize and index mashup services. However, people favor manual tags creation in the past. This approach demands user intervention, which is extremely time-consuming and probes to errors. In this paper we propose a novel Mashup-API-Tag model for automatic mashup tag recommendation. The model simultaneously incorporates the composition relationships between mashups and APIs as well as the annotation relationships between APIs and tags to discover the latent topics. Then the semantic similarity between Web APIs and mashups can be acquired. Subsequently, tags of chosen APIs are recommended to a mashup where the mashup and the APIs are most similar. In addition, we develop a tag filtering algorithm to select the most relevant tags for recommendation. The experimental results on a real world dataset prove that our approach outperforms other methods, including frequency-based methods and the methods that only consider the composition relationships and the annotation relationships separately.