Prerequisites
- Control Plane
- YAML
- Golf Control Plane account with Admin role
- Server RBAC configured (Set Up Server RBAC)
- Groups synced from your identity provider
How it works
Capability RBAC extends server RBAC to control access to individual:- Tools - Functions the AI can call
- Prompts - Prompt templates
- Resources - Data sources
4-layer policy merge
Capability RBAC uses a 4-layer policy merge to determine access:
Each layer can only make access more restrictive, never less. The final access decision is the intersection of all layers.
Tool annotations
MCP servers provide annotations that describe each tool’s behavior. Golf Gateway uses these to apply the appropriate access policy automatically:Example: How annotations affect access
Example: How annotations affect access
With these organization defaults:When a user invokes a tool:
list_files(readOnlyHint: true) → Allowed for all usersdelete_file(destructiveHint: true) → Requires admin groupsend_message(no annotations) → Requires developers or admins
Enable capability RBAC
- Control Plane
- YAML
- Go to MCP Servers > select a server
- Navigate to the Policies tab > Permissions section
- Click Enabled to turn on capability RBAC
- Go to the Capabilities tab to view discovered tools, prompts, and resources
- Use Review Changes to review and approve pending capabilities
Configure annotation-based defaults
Set default access groups for each annotation category. These defaults apply to all capabilities that match the annotation.- Control Plane
- YAML
Organization-level defaults:
- Go to Settings > Policies
- Find the Capability RBAC section
- Configure default groups for each category:
- Read-only tools - Tools with
readOnlyHint: true - Destructive tools - Tools with
destructiveHint: true - Unspecified tools - Tools without annotations
- Read-only tools - Tools with
- Click Save
- Go to Gateways > select a gateway > Policies
- Find the Capability RBAC section
- Override organization defaults as needed (can only be more restrictive)
- Click Save
Configure per-capability overrides
For specific tools that need different access than their annotation category, configure per-capability overrides:- Control Plane
- YAML
- Go to MCP Servers > select a server > Capabilities tab
- Find the capability you want to restrict
- Click the capability row to expand details
- Click Edit Permissions
- Enable Custom Access to override annotation defaults
- Select allowed groups for this specific capability
- Click Save
Pending approval workflow
When capability versioning is enabled, new or modified capabilities require admin approval before becoming active:- Control Plane
- YAML
- Gateway discovers new tool/prompt/resource during connection
- Capability appears in the Capabilities tab with New or Changed badge
- Click Review Changes to see all pending capabilities
- Review the capability schema and intended behavior
- Click Approve All or approve individual changes
- Users can now access the approved capabilities
Complete example
Here’s a complete configuration showing all capability RBAC features:Verify capability RBAC
- Connect your MCP client (Claude Desktop, Cursor, etc.) to the gateway as an authorized user
- Ask the AI to list available tools - verify restricted tools are filtered from the response
- Try to use a restricted tool (e.g.,
delete_repo) - verify you receive an access denied error - Check audit log in Admin Portal > Audit Logs for the blocked request
Troubleshooting
- Tool not appearing: Check if capability versioning is enabled and the tool is pending approval
- Access denied with correct groups: Verify all layers (org, gateway, capability override) - access is the intersection of all
- Wildcard not matching: Patterns use prefix matching with
*, ensure your pattern is correct
Related guides
- Set Up Server RBAC - Server-level access control
- Golf Gateway Overview - Policy engine architecture