@@ -20,7 +20,8 @@ def initialize(message, request, error_type: :internal_error, original_error: ni
20
20
21
21
include Instrumentation
22
22
23
- attr_accessor :name , :tools , :prompts , :resources , :server_context , :configuration , :capabilities
23
+ attr_writer :capabilities
24
+ attr_accessor :name , :tools , :prompts , :resources , :server_context , :configuration
24
25
25
26
def initialize (
26
27
name : "model_context_protocol" ,
@@ -30,7 +31,7 @@ def initialize(
30
31
resource_templates : [ ] ,
31
32
server_context : nil ,
32
33
configuration : nil ,
33
- capabilities : { prompts : { } , resources : { } , tools : { } }
34
+ capabilities : nil
34
35
)
35
36
@name = name
36
37
@tools = tools . to_h { |t | [ t . name_value , t ] }
@@ -40,7 +41,6 @@ def initialize(
40
41
@resource_index = index_resources_by_uri ( resources )
41
42
@server_context = server_context
42
43
@configuration = ModelContextProtocol . configuration . merge ( configuration )
43
- @capabilities = capabilities
44
44
45
45
@handlers = {
46
46
Methods ::RESOURCES_LIST => method ( :list_resources ) ,
@@ -60,6 +60,10 @@ def initialize(
60
60
}
61
61
end
62
62
63
+ def capabilities
64
+ @capabilities ||= determine_capabilities
65
+ end
66
+
63
67
def handle ( request )
64
68
JsonRpcHandler . handle ( request ) do |method |
65
69
handle_request ( request , method )
@@ -150,6 +154,10 @@ def handle_request(request, method)
150
154
}
151
155
end
152
156
157
+ def determine_capabilities
158
+ { prompts : { } , resources : { } , tools : { } }
159
+ end
160
+
153
161
def server_info
154
162
@server_info ||= {
155
163
name :,
0 commit comments