Communication is the key feature of Multi-agent Systems. The interactions among components of a system may take many distinct forms of increasing complexity such as in auctions, negotiations and argumentations. In this paper we propose a notation to specify and reason about an expressive class of protocols. Our notation is logic-based, employing a restricted form of first-order constructs added with sets. We formally associate the syntax of our constructs with a precise semantics. The semantics enables us to automatically build explicit models which can be used to restrict the possible executions of a given Multi-Agent System. Our notation has been incorporated to a variant of electronic institutions – an encompassing and flexible approach to specify open agent organisations – and we have implemented a proof-of-concept platform to enact arbitrary protocols using our notation.