Documentation
¶
Index ¶
- Constants
- func AppendReport(ctx *DataContext, report *common.EventAnnotation)
- func BlockWithTextResult(ctx *DataContext, options BlockResultOptions)
- func EncodeContext(ctx *DataContext) ([]byte, error)
- func MarkModified(ctx *DataContext)
- func ReplaceRequestArgumentStrings(ctx *DataContext, replace func(TextNode) TextReplacement) (bool, error)
- func ReplaceResultText(ctx *DataContext, replace func(TextNode) TextReplacement) bool
- func ReplaceStructuredContentStrings(ctx *DataContext, replace func(TextNode) TextReplacement) bool
- func RequestArgumentTextBytes(ctx *DataContext) int
- func ResultTextBytes(ctx *DataContext) int
- func TotalScannedTextBytes(ctx *DataContext) int
- func WalkRequestArgumentValues(ctx *DataContext, visit func(ArgumentNode)) error
- func WalkRequestArguments(ctx *DataContext, visit func(TextNode)) error
- func WalkResultText(ctx *DataContext, visit func(TextNode))
- func WalkStructuredContent(ctx *DataContext, visit func(TextNode))
- type AnnotationPart
- type ArgumentNode
- type BlockResultOptions
- type DataContext
- type PathBoundaryOptions
- type PayloadPart
- type RedactionOptions
- type RedactionResult
- type RedactionRule
- type RoutingPart
- type TextNode
- type TextReplacement
- type ToolGuardArgumentRule
- type ToolGuardOptions
- type ToolGuardResult
- type ToolGuardRule
Constants ¶
const ( // RedactionModeRedact replaces matching text and records an annotation. RedactionModeRedact = "redact" // RedactionModeAnnotate records findings without mutating payloads. RedactionModeAnnotate = "annotate" // RedactionScopeRequest scans request arguments. RedactionScopeRequest = "request" // RedactionScopeResponse scans response text and structured content. RedactionScopeResponse = "response" // RedactionScopeBoth scans request and response payloads. RedactionScopeBoth = "both" )
const ( // ToolGuardModeBlock blocks matching tool calls. ToolGuardModeBlock = "block" // ToolGuardModeAnnotate records matching tool calls without blocking. ToolGuardModeAnnotate = "annotate" )
Variables ¶
This section is empty.
Functions ¶
func AppendReport ¶
func AppendReport(ctx *DataContext, report *common.EventAnnotation)
AppendReport appends an annotation report, initializing the annotation part.
func BlockWithTextResult ¶
func BlockWithTextResult(ctx *DataContext, options BlockResultOptions)
BlockWithTextResult injects an MCP error result and marks the event failed and modified.
func EncodeContext ¶
func EncodeContext(ctx *DataContext) ([]byte, error)
EncodeContext encodes a built-in processor DataContext.
func MarkModified ¶
func MarkModified(ctx *DataContext)
MarkModified marks the processor event as modified.
func ReplaceRequestArgumentStrings ¶
func ReplaceRequestArgumentStrings(ctx *DataContext, replace func(TextNode) TextReplacement) (bool, error)
ReplaceRequestArgumentStrings replaces or removes string values in request arguments.
func ReplaceResultText ¶
func ReplaceResultText(ctx *DataContext, replace func(TextNode) TextReplacement) bool
ReplaceResultText replaces or removes text content blocks in payload.result.content.
func ReplaceStructuredContentStrings ¶
func ReplaceStructuredContentStrings(ctx *DataContext, replace func(TextNode) TextReplacement) bool
ReplaceStructuredContentStrings replaces or removes string values in structured content.
func RequestArgumentTextBytes ¶
func RequestArgumentTextBytes(ctx *DataContext) int
RequestArgumentTextBytes counts bytes from all request argument strings.
func ResultTextBytes ¶
func ResultTextBytes(ctx *DataContext) int
ResultTextBytes counts bytes from result text content and structured content strings.
func TotalScannedTextBytes ¶
func TotalScannedTextBytes(ctx *DataContext) int
TotalScannedTextBytes follows the current built-in convention: result text when a result exists, otherwise request argument text.
func WalkRequestArgumentValues ¶
func WalkRequestArgumentValues(ctx *DataContext, visit func(ArgumentNode)) error
WalkRequestArgumentValues visits all JSON values in payload.request.Params.arguments. Paths are relative to payload.request.Params.arguments.
func WalkRequestArguments ¶
func WalkRequestArguments(ctx *DataContext, visit func(TextNode)) error
WalkRequestArguments visits all string values in payload.request.Params.arguments.
func WalkResultText ¶
func WalkResultText(ctx *DataContext, visit func(TextNode))
WalkResultText visits text content blocks in payload.result.content.
func WalkStructuredContent ¶
func WalkStructuredContent(ctx *DataContext, visit func(TextNode))
WalkStructuredContent visits all string values in payload.result.structuredContent.
Types ¶
type AnnotationPart ¶
type AnnotationPart struct {
Reports []common.EventAnnotation `json:"reports,omitempty"`
}
AnnotationPart contains processor-supplied event reports.
type ArgumentNode ¶
ArgumentNode identifies one request argument JSON value.
type BlockResultOptions ¶
type BlockResultOptions struct {
Processor string
Message string
Status int
StructuredContent map[string]any
}
BlockResultOptions controls the MCP error result injected by a built-in processor.
type DataContext ¶
type DataContext struct {
Version string `json:"version"`
Event *common.MetaContext `json:"event,omitempty"`
Payload *PayloadPart `json:"payload,omitempty"`
Routing *RoutingPart `json:"routing,omitempty"`
Auth *common.AuthContext `json:"auth,omitempty"`
Annotations *AnnotationPart `json:"annotations,omitempty"`
}
DataContext mirrors the processor JSON contract for built-in processors. It intentionally lives outside internal/processor to avoid a dispatch import cycle.
func DecodeContext ¶
func DecodeContext(input []byte) (*DataContext, error)
DecodeContext decodes one serialized built-in processor DataContext.
type PathBoundaryOptions ¶
type PathBoundaryOptions struct {
AllowedRoots []string
RelativeBaseRoot string
ArgumentPaths []string
DeniedPaths []string
}
PathBoundaryOptions controls lexical filesystem path guard behavior.
type PayloadPart ¶
type PayloadPart struct {
Request *mcp.CallToolRequest `json:"request,omitempty"`
OriginalRequest *mcp.CallToolRequest `json:"original_request,omitempty"`
Result *mcp.CallToolResult `json:"result,omitempty"`
OriginalResult *mcp.CallToolResult `json:"original_result,omitempty"`
}
PayloadPart holds tool-call request/result payloads.
type RedactionOptions ¶
type RedactionOptions struct {
Processor string
Mode string
Scope string
Category string
Severity string
Message string
Rules []RedactionRule
}
RedactionOptions controls common regex redaction behavior.
type RedactionResult ¶
type RedactionResult struct {
Matched bool
Modified bool
MatchCount int
Findings []common.EventAnnotationFinding
RuleNames []string
Paths []string
Annotations []common.EventAnnotation
}
RedactionResult summarizes one redaction pass.
func ApplyPatternRedactions ¶
func ApplyPatternRedactions(ctx *DataContext, options *RedactionOptions) (*RedactionResult, error)
ApplyPatternRedactions applies regex redaction rules and appends one annotation report when at least one match is found.
type RedactionRule ¶
RedactionRule describes one compiled literal-replacement regex rule.
func CompileRedactionRules ¶
func CompileRedactionRules(rules []RedactionRule) ([]RedactionRule, error)
CompileRedactionRules compiles rule patterns for use by ApplyPatternRedactions.
type RoutingPart ¶
type RoutingPart struct {
ServerName string `json:"server_name"`
ToolName string `json:"tool_name"`
OriginalServerName string `json:"original_server_name"`
OriginalToolname string `json:"original_tool_name"`
}
RoutingPart holds routing data for a proxied call.
type TextReplacement ¶
TextReplacement is returned by string mutation callbacks.
func DropText ¶
func DropText() TextReplacement
DropText returns a replacement that removes a string value where removal is supported.
func KeepText ¶
func KeepText(text string) TextReplacement
KeepText returns a replacement that keeps a string value.
type ToolGuardArgumentRule ¶
ToolGuardArgumentRule matches request argument paths, scalar values, or both.
type ToolGuardOptions ¶
type ToolGuardOptions struct {
Processor string
Mode string
Rules []ToolGuardRule
}
ToolGuardOptions controls generic tool-call guard behavior.
type ToolGuardResult ¶
type ToolGuardResult struct {
Matched bool
Blocked bool
RuleName string
ToolName string
Findings []common.EventAnnotationFinding
Annotations []common.EventAnnotation
}
ToolGuardResult summarizes one guard pass.
func ApplyToolGuard ¶
func ApplyToolGuard(ctx *DataContext, options ToolGuardOptions) (*ToolGuardResult, error)
ApplyToolGuard evaluates deny rules against request-phase tool calls.
type ToolGuardRule ¶
type ToolGuardRule struct {
Name string
Category string
Severity string
Message string
ToolPatterns []string
ArgumentRules []ToolGuardArgumentRule
PathBoundary *PathBoundaryOptions
}
ToolGuardRule describes one deny rule for tool calls.
func CompileToolGuardRules ¶
func CompileToolGuardRules(rules []ToolGuardRule) ([]ToolGuardRule, error)
CompileToolGuardRules compiles regexes in guard rules.