ExMCP.Transport.SecurityGuard (ex_mcp v0.9.2)
View SourceTransport-layer security interceptor that enforces MCP security policies.
This module provides consistent security enforcement across all transports by intercepting outbound requests and applying token passthrough prevention and user consent validation.
Summary
Functions
Gets the security configuration, merging provided config with defaults.
Validates a request against security policies.
Types
Functions
Gets the security configuration, merging provided config with defaults.
@spec validate_request(request(), map()) :: security_result()
Validates a request against security policies.
This function enforces both token passthrough prevention and user consent validation for external resource access.
Parameters
request- Standardized request structureconfig- Security configuration (optional, uses defaults if not provided)
Returns
{:ok, sanitized_request}- Request is allowed with potentially sanitized headers{:error, security_violation}- Request blocked by security policy
Examples
request = %{
url: "https://api.example.com/data",
headers: [{"Authorization", "Bearer token"}],
method: "GET",
transport: :http,
user_id: "user123"
}
case SecurityGuard.validate_request(request, config) do
{:ok, sanitized_request} ->
# Proceed with sanitized request
perform_request(sanitized_request)
{:error, violation} ->
# Handle security violation
{:error, violation}
end