MCPat executes rules. A rule consits of a pattern as antecedent, and lisp code as consequent. If an input matches the antecedent, the consequent executes. By default the antecedent matches against lists only, but being meta-circular, the rule compiler is extensible via rules by an application so that one can define rules to match other types of content. For example, the default implementation comes with rules for matching alists to patterns.

The pattern matcher also features tracing and a flexible architecture for pattern selection given an input.