Module: FastMcp::ServerFiltering

Included in:
Server
Defined in:
lib/mcp/server_filtering.rb

Overview

Module for handling server filtering functionality

Instance Method Summary collapse

Instance Method Details

#contains_filters?Boolean

Check if filters are configured

Returns:

  • (Boolean)


17
18
19
# File 'lib/mcp/server_filtering.rb', line 17

def contains_filters?
  @tool_filters.any? || @resource_filters.any?
end

#create_filtered_copy(request) ⇒ Object

Create a filtered copy for a specific request



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/mcp/server_filtering.rb', line 22

def create_filtered_copy(request)
  filtered_server = self.class.new(
    name: @name,
    version: @version,
    logger: @logger,
    capabilities: @capabilities
  )

  # Copy transport settings
  filtered_server.transport_klass = @transport_klass

  # Apply filters and register items
  register_filtered_tools(filtered_server, request)
  register_filtered_resources(filtered_server, request)

  filtered_server
end

#filter_resources(&block) ⇒ Object

Add filter for resources



12
13
14
# File 'lib/mcp/server_filtering.rb', line 12

def filter_resources(&block)
  @resource_filters << block if block_given?
end

#filter_tools(&block) ⇒ Object

Add filter for tools



7
8
9
# File 'lib/mcp/server_filtering.rb', line 7

def filter_tools(&block)
  @tool_filters << block if block_given?
end