Module: VectorMCP::Middleware

Defined in:
lib/vector_mcp/middleware.rb,
lib/vector_mcp/middleware/base.rb,
lib/vector_mcp/middleware/hook.rb,
lib/vector_mcp/middleware/context.rb,
lib/vector_mcp/middleware/manager.rb,
lib/vector_mcp/middleware/anonymizer.rb

Overview

Middleware system for pluggable hooks around MCP operations Allows developers to add custom behavior without modifying core code

Defined Under Namespace

Classes: Anonymizer, Base, Context, Hook, InvalidHookTypeError, Manager, MiddlewareError

Constant Summary collapse

HOOK_OPERATION_TYPES =

Maps each hook type to the operation_type it matches. ‘nil` means the hook is transport- or auth-level and matches any operation_type. This is the single source of truth — HOOK_TYPES is derived from it.

{
  "before_tool_call" => :tool_call,
  "after_tool_call" => :tool_call,
  "on_tool_error" => :tool_call,
  "before_resource_read" => :resource_read,
  "after_resource_read" => :resource_read,
  "on_resource_error" => :resource_read,
  "before_prompt_get" => :prompt_get,
  "after_prompt_get" => :prompt_get,
  "on_prompt_error" => :prompt_get,
  "before_sampling_request" => :sampling,
  "after_sampling_response" => :sampling,
  "on_sampling_error" => :sampling,
  "before_request" => nil,
  "after_response" => nil,
  "on_transport_error" => nil,
  "before_auth" => nil,
  "after_auth" => nil,
  "on_auth_error" => nil
}.freeze
HOOK_TYPES =

Hook types available in the system (derived from HOOK_OPERATION_TYPES)

HOOK_OPERATION_TYPES.keys.freeze