Network control theory (NCT) is a simple and powerful tool for studying how network topology informs and constrains dynamics. Compared to other structure-function coupling approaches, the strength of NCT lies in its capacity to predict the patterns of external control signals that may alter dynamics in a desired way. We have extensively developed and validated the application of NCT to the human structural connectome. Through these efforts, we have studied (i) how different aspects of connectome topology affect neural dynamics, (ii) whether NCT outputs cohere with empirical data on brain function and stimulation, and (iii) how NCT outputs vary across development and correlate with behavior and mental health symptoms. In this protocol, we introduce a framework for applying NCT to structural connectomes following two main pathways. Our primary pathway focuses on computing the control energy associated with transitioning between specific neural activity states. Our second pathway focuses on computing average controllability, which indexes nodes' general capacity to control dynamics. We also provide recommendations for comparing NCT outputs against null network models. Finally, we support this protocol with a Python-based software package called network control theory for python (nctpy).