Class: MCPClient::Root Deprecated
- Inherits:
-
Object
- Object
- MCPClient::Root
- Defined in:
- lib/mcp_client/root.rb
Overview
Roots is deprecated since MCP 2026-07-28 (SEP-2577); earliest removal is the first revision released on or after 2027-07-28. The class keeps working for as long as the feature does, and building one raises no notice — using the list does. Pass directories or files through tool parameters, resource URIs or server configuration instead.
Represents an MCP Root - a URI that defines a boundary where servers can operate Roots are declared by clients to inform servers about relevant resources and their locations
Instance Attribute Summary collapse
-
#meta ⇒ Object
readonly
Returns the value of attribute meta.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#uri ⇒ Object
readonly
Returns the value of attribute uri.
Class Method Summary collapse
-
.from_json(json) ⇒ Root
Create a Root from a JSON hash.
Instance Method Summary collapse
-
#==(other) ⇒ Object
(also: #eql?)
Check equality.
- #hash ⇒ Object
-
#initialize(uri:, name: nil, meta: nil) ⇒ Root
constructor
Create a new Root.
- #inspect ⇒ Object
-
#to_h ⇒ Hash
Convert to JSON-serializable hash.
-
#to_json ⇒ String
Convert to JSON string.
-
#to_s ⇒ Object
String representation.
Constructor Details
#initialize(uri:, name: nil, meta: nil) ⇒ Root
Create a new Root
24 25 26 27 28 29 30 31 32 |
# File 'lib/mcp_client/root.rb', line 24 def initialize(uri:, name: nil, meta: nil) validate_uri!(uri) # Root._meta is an object of arbitrary keys per the schema raise ArgumentError, "Root _meta must be a Hash, got #{.class}" if && !.is_a?(Hash) @uri = uri @name = name @meta = end |
Instance Attribute Details
#meta ⇒ Object (readonly)
Returns the value of attribute meta.
15 16 17 |
# File 'lib/mcp_client/root.rb', line 15 def @meta end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
15 16 17 |
# File 'lib/mcp_client/root.rb', line 15 def name @name end |
#uri ⇒ Object (readonly)
Returns the value of attribute uri.
15 16 17 |
# File 'lib/mcp_client/root.rb', line 15 def uri @uri end |
Class Method Details
.from_json(json) ⇒ Root
Create a Root from a JSON hash
38 39 40 41 42 43 44 |
# File 'lib/mcp_client/root.rb', line 38 def self.from_json(json) new( uri: json['uri'] || json[:uri], name: json['name'] || json[:name], meta: json['_meta'] || json[:_meta] ) end |
Instance Method Details
#==(other) ⇒ Object Also known as: eql?
Check equality
62 63 64 65 66 |
# File 'lib/mcp_client/root.rb', line 62 def ==(other) return false unless other.is_a?(Root) uri == other.uri && name == other.name && == other. end |
#hash ⇒ Object
70 71 72 |
# File 'lib/mcp_client/root.rb', line 70 def hash [uri, name, ].hash end |
#inspect ⇒ Object
79 80 81 |
# File 'lib/mcp_client/root.rb', line 79 def inspect "#<MCPClient::Root uri=#{uri.inspect} name=#{name.inspect}>" end |
#to_h ⇒ Hash
Convert to JSON-serializable hash
48 49 50 51 52 53 |
# File 'lib/mcp_client/root.rb', line 48 def to_h result = { 'uri' => @uri } result['name'] = @name if @name result['_meta'] = @meta if @meta result end |
#to_json ⇒ String
Convert to JSON string
57 58 59 |
# File 'lib/mcp_client/root.rb', line 57 def to_json(*) to_h.to_json(*) end |
#to_s ⇒ Object
String representation
75 76 77 |
# File 'lib/mcp_client/root.rb', line 75 def to_s name ? "#{name} (#{uri})" : uri end |