Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions pkg/interceptors/block_secrets.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ func BlockSecretsMiddleware() mcp.Middleware {

var toolName string
var arguments any
var inputHadSecrets bool

// Try to extract from request
if callReq, ok := req.(*mcp.CallToolRequest); ok && callReq.Params != nil {
Expand All @@ -32,7 +33,8 @@ func BlockSecretsMiddleware() mcp.Middleware {
log.Logf(" - Scanning tool call arguments for secrets...\n")

argumentsStr := argumentsToString(arguments)
if secretsscan.ContainsSecrets(argumentsStr) {
if argumentsStr != "" && secretsscan.ContainsSecrets(argumentsStr) {
inputHadSecrets = true
return nil, fmt.Errorf("a secret is being passed to tool %s", toolName)
}

Expand All @@ -44,8 +46,9 @@ func BlockSecretsMiddleware() mcp.Middleware {
return result, err
}

// Check response for secrets
if result != nil {
// Check response for secrets only if secrets were present in the input
if result != nil && inputHadSecrets {

log.Logf(" - Scanning tool call response for secrets...\n")

var contents string
Expand Down
Loading