Ещё вариант — Ansible с dynamic inventory, чтоб тоже в PuppetDB за нодами ходил. Делал такое, было удобно.
MCollective, с другой стороны хорошо себя показывает когда, например:
1. Задачи репетативные и легко параметризируются (поставить/обновить пакет, перезапустить сервис, пнуть паппет, ...)
2. Надо делегировать эти задачи кому-то (позволить разрабам запускать puppet в своих окружениях, рестартовать там что-то)
3. Серверов очень много
4. Когда надо получать информацию с серверов в удобочитаемом и агрегированном виде, а не простынёй на 5 экранов.