Scope
A Scope represents a specific type of access to a protected Resource. Each Scope defines the boundaries of what a Client can do with the Resource. Each Scope name must be unique within a Resource.
For example, a banking Resource named accounts may define Scopes such as accounts.read and accounts.transfer. These Scopes define the operations a Client may request during authorization.
Permission
A Permission represents a unique combination of a Resource and one of its Scopes. Each Permission defines the specific actions and data access rights that can be granted to a Client. Permissions are the fundamental building blocks for authorization, determining what operations and data a Client can perform on behalf of a user.
For example, for a Native Application Client named Banking Mobile App a Permission may grant access to the accounts.transfer Scope of the accounts Resource. Permissions are granted to Clients and later evaluated against the User's Roles.
Context
Contexts provide additional information for the MCP authorization requests beyond the basic Scope model. Each Context is represented as a key-value pair. Contexts enable the implementation of complex authorization scenarios by adding dimensionality to the Permission evaluation process.
While Scopes define what actions a Client may perform, Contexts define which subset of data or environment those actions apply to. Contexts can be used to represent dimensions such as organization, region, environment, or tenant.
For example, a banking application may include Contexts such as region=eu or account_type=business. Contexts allow authorization decisions to consider dimensions beyond the requested Scope.
Context Visibility
Similar to Permission, a Context Visibility represents a unique combination of an MCP Server Resource and one of its Contexts. Context Visibility determines the complete set of Contexts a Client can access on behalf of a user.
For example, a Client may be allowed to access Contexts for region=eu while being restricted from accessing region=us. This mechanism helps prevent Clients from accessing contextual information outside their intended authorization boundaries.
Role
Roles are authorization labels used during permission evaluation. In Mekarge A3, a Client does not receive Scopes or Contexts solely because they have been granted them. During authorization, Mekarge A3 Authorization Server evaluates the Roles associated with the User's current User Group and compares them with the Roles attached to the Client's granted Permissions and Context Visibility.

Only Permissions that share at least one Role with the User's current User Group become effective.
For example, the premium_customer Role may allow access to investment-related Permissions, while the standard_customer Role may only allow basic account operations.
The same logic applies to Context Visibility for MCP Host application Clients. During authorization, Mekarge A3 first evaluates the Permissions and Context Visibility granted to the Client. The Authorization Server then filters these entries using the Roles associated with the User’s current User Group. For Native Application Clients, additional filtering may be applied through Attestation Profiles and their Appraisals.