MOF Einschränkungen (Constraints) und Konsistenzregeln gehen über die strukturelle Definition heraus und definieren bestimmte Aspekte bzgl. der Struktur. Dabei ist darauf zu achten, dass keine Verhaltensaspekte (wann sollte was berechnet werden) mit modelliert werden.
Eine solche Constraint enthält hierzu:
einen Namen zur eindeutigen Identifikation,
eine Sprache zur Spezifikation der Constraint,
einen Ausdruck der die Constraint beschreibt auf Basis der Sprache,
eine Auswertungsregel, die festlegt wann die Constraint auszuwerten ist und
eine Menge von Elementen, die von der Constraint betroffen sind.
Die MOF Spezifikation legt dementsprechend keine Sprache explizit für die Definition von Constraints fest. So können beispielsweise auch natürliche Sprachen zum Einsatz kommen. Im Rahmen der MOF selbst wird allerdings die OCL für die Constraints genutzt.
Der Zeitpunkt der Auswertung der Constraints ist dabei in vielen Fällen entscheidend für deren Semantik. So kann die Constraint "X=5" beispielsweise bei jeder Aktualisierung von X bedenkenlos geprüft werden, wohingegen dies bei Constraints mit mehreren Abhängigkeiten nicht ohne weiteres immer der Fall ist. Ergänzt man die vorherige Constraint dementsprechend um "Y=X+1", so kann die Reihenfolge der Auswertung entscheidend sein.
Da diese Constraints wichtige Konsistenzregeln definieren sind sie beispielsweise bei der Implementierung von MOF Repositories wichtig, da diese ggf. diese Einschränkungen prüfen müssen.