@@ -20,7 +20,8 @@ def initialize(message, request, error_type: :internal_error, original_error: ni
2020
2121 include Instrumentation
2222
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
2425
2526 def initialize (
2627 name : "model_context_protocol" ,
@@ -30,7 +31,7 @@ def initialize(
3031 resource_templates : [ ] ,
3132 server_context : nil ,
3233 configuration : nil ,
33- capabilities : { prompts : { } , resources : { } , tools : { } }
34+ capabilities : nil
3435 )
3536 @name = name
3637 @tools = tools . to_h { |t | [ t . name_value , t ] }
@@ -40,7 +41,6 @@ def initialize(
4041 @resource_index = index_resources_by_uri ( resources )
4142 @server_context = server_context
4243 @configuration = ModelContextProtocol . configuration . merge ( configuration )
43- @capabilities = capabilities
4444
4545 @handlers = {
4646 Methods ::RESOURCES_LIST => method ( :list_resources ) ,
@@ -60,6 +60,10 @@ def initialize(
6060 }
6161 end
6262
63+ def capabilities
64+ @capabilities ||= determine_capabilities
65+ end
66+
6367 def handle ( request )
6468 JsonRpcHandler . handle ( request ) do |method |
6569 handle_request ( request , method )
@@ -150,6 +154,10 @@ def handle_request(request, method)
150154 }
151155 end
152156
157+ def determine_capabilities
158+ { prompts : { } , resources : { } , tools : { } }
159+ end
160+
153161 def server_info
154162 @server_info ||= {
155163 name :,
0 commit comments