The notion and the use of contextuality appears to be a bit vague in the literature. I will discuss here the original notion arising from some interpretation of Bell inequality (due to Bell, though I will not analyze here the interplay of the Bell inequality and contextuality in details) and from the no-go result achieved by the Kochen-Specker theorem.
In summary, Quantum Mechanics is non-contextual because it is non-realistic (otherwise it would give rise to a contradiction with the statement of Kochen-Specker theorem as state below).
Contextuality is a necessary feature of all interpretations of the quantum phenomenology which are instead realistic. Usually these interpretations are called hidden variable theories, because they refer to a deeper description than standard QM relying to a more precise notion of state usually unknown (hidden).
Let me enter into some details.
In the standard formulation of QM, observables are not all simultaneously defined when a quantum state is given. That is because there exist incompatible observables and it is easy to show that if $A$ and $B$ are incompatible, then there is a quantum (pure) state which is an eigenvector of $A$ but not of $B$. In this sense the standard formulation of QM is a non-realistic theory: when a state is given not all observables are defined.
One may try to find a deeper description where all observables are defined when the true state of the system is given. The state is defined in terms on a hidden variable $\lambda \in \Lambda$. For some reason these values are not accessible to our observation and, in general, we see them to statisically change as a consequence of our incomplete knowledge of the hidden state $\lambda$: we do not know a precise value of $\lambda$ but only a statistical distribution $\mu$ of it on $\Lambda$ (as it happens in classical statistical mechanics).
In this context there must be a map $v_\lambda : A \mapsto v_\lambda(A)\in \mathbb{R}$ associating every observable $A$ to its (unknown) value $v_\lambda(A)$. What we know is, for instance an averaged, value $$<A>_{\mu} = \int_\Lambda v_\lambda(A) d\mu(\lambda)\:.$$
However, since we are assuming the realism hypothesis (against the standard formulation of QM) the values $v_\lambda(A)$ are necessarily defined even if we do not know them.
A step further is assuming some classical properties on the map $v_\lambda$.
to avoid embarrassing issues, the idea is to concentrate attention only on properties of $v_\lambda$ when referring to pairs of compatible observables.
I stress that compatibility/incompatibility is here assumed to be a phenomenological fact, independent of the chosen interpretation.
Natural hypotheses are that $v_\lambda$ is non-trivial (it is not the zero function) and that
$$v_\lambda(AB) = v_\lambda(A)v_\lambda(B)\:, \quad v_\lambda(A+B) = v_\lambda(A)+v_\lambda(B)\quad \mbox{if $A$ and $B$ are compatible}$$
The Kochen-Specker theorem proves that a map $v_\lambda$ as above cannot exist if the standard description of quantum phenomenology refers to a finite dimensional Hilbert space with dimension $>2$ and observables includes at least the selfadjoint operators on that space.
Contextuality is a way out from that no-go result.
An improved hidden variable formulation should be based on a refined valuation map of the form $$(A, S_A) \mapsto v_\lambda(A|S_A) \in \mathbb{R}$$
where a value $ v_\lambda(A|S_A)$ is associated to every observable $A$ when the hidden state $\lambda \in \Lambda$ is given, but this value depends also on the set of other observables $S_A$, compatible with $A$, which are simultaneously measured together with $A$.
Since compatibility is not transitive, there are different sets $S_A, S'_A$ including $A$ but separately including pairs of incompatible observables. The set $S_A$ is the context of the measurement of $A$.
(From a pure mathematical point of view, it is easy to construct contextual maps $v_\lambda( \cdot|\cdot)$ satisfying the properties above of $v_\lambda$ when the context is in common without violating the KS no-go result.)
So, in view of KS theorem, realistic hidden variable theory are admitted if they are not non-contextual.
The standard formulation of QM is non-contextual, since the values of the an observable $A$ which is defined in a given (quantum) state $\lambda = \psi$ are independent of the other observables we measure together with $A$. However it is non-realistic, since not all observables are simultaneously defined.
Bell theorem has a different (though related) nature: it proves that a realistic and local theory should satisfy a certain inequality for a bipartite system. Since this inequality is violated by quantum systems in suitable entangled states, we are forced to conclude that there is no (hidden variable) theory capable to account for the quantum phenomenology which is simultaneously local and realistic.
It is possible to replace, in the Bell theorem, the locality requirement with the non-contextuality requirment when referring to specific quantum systems.