Skip to main content

Overview

Guardrail providers detect security threats, policy violations, and content issues in requests and responses. The gateway supports input guardrails (validate requests) and output guardrails (validate responses).

GuardrailProvider Interface

All guardrail providers must implement the GuardrailProvider abstract base class from src/secure_mcp_gateway/plugins/guardrails/base.py.

Required Methods

Optional Methods

Protocol Interfaces

Guardrails use protocol interfaces for different capabilities:

InputGuardrail Protocol

OutputGuardrail Protocol

PIIHandler Protocol

Data Models

GuardrailRequest

GuardrailResponse

GuardrailViolation

ViolationType Enum

GuardrailAction Enum

Example: OpenAI Moderation Provider

From src/secure_mcp_gateway/plugins/guardrails/example_providers.py:96:

Example: Custom Keyword Provider

From src/secure_mcp_gateway/plugins/guardrails/example_providers.py:250:

Example: Composite Provider

Combine multiple guardrail providers with AND/OR logic (from src/secure_mcp_gateway/plugins/guardrails/example_providers.py:350):

Configuration

Register your guardrail provider in the config file:

Using the GuardrailFactory

Testing Your Provider

Best Practices

  • Cache results for identical content
  • Use async operations for API calls
  • Set reasonable timeouts
  • Consider rate limiting
Always return a safe GuardrailResponse on errors:
Use consistent severity scoring:
  • 0.0 - 0.3: Low severity (informational)
  • 0.3 - 0.7: Medium severity (warning)
  • 0.7 - 1.0: High severity (block)

Plugin Overview

Learn about the plugin system architecture

Guardrails Guide

Configure and use guardrails