Class: MCP::Tool::Response

Inherits:
Object
  • Object
show all
Defined in:
lib/mcp/tool/response.rb

Constant Summary collapse

NOT_GIVEN =
Object.new.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(content = NOT_GIVEN, deprecated_error = NOT_GIVEN, error: false, structured_content: nil, meta: nil) ⇒ Response

Returns a new instance of Response.



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/mcp/tool/response.rb', line 10

def initialize(content = NOT_GIVEN, deprecated_error = NOT_GIVEN, error: false, structured_content: nil, meta: nil)
  if deprecated_error != NOT_GIVEN
    warn("Passing `error` with the 2nd argument of `Response.new` is deprecated. Use keyword argument like `Response.new(content, error: error)` instead.", uplevel: 1)
    error = deprecated_error
  end

  content_given = !content.equal?(NOT_GIVEN)
  @content_provided = content_given && !content.nil?
  @content = content_given ? (content || []) : []
  @error = error
  @structured_content = structured_content
  @meta = meta
end

Instance Attribute Details

#contentObject (readonly)

Returns the value of attribute content.



8
9
10
# File 'lib/mcp/tool/response.rb', line 8

def content
  @content
end

#metaObject (readonly)

Returns the value of attribute meta.



8
9
10
# File 'lib/mcp/tool/response.rb', line 8

def meta
  @meta
end

#structured_contentObject (readonly)

Returns the value of attribute structured_content.



8
9
10
# File 'lib/mcp/tool/response.rb', line 8

def structured_content
  @structured_content
end

Instance Method Details

#content_provided?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/mcp/tool/response.rb', line 24

def content_provided?
  @content_provided
end

#error?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/mcp/tool/response.rb', line 28

def error?
  !!@error
end

#to_hObject



32
33
34
# File 'lib/mcp/tool/response.rb', line 32

def to_h
  { content: content, isError: error?, structuredContent: @structured_content, _meta: meta }.compact
end