Skip to content

Commit 81fa3a9

Browse files
Move default capabilities into a private method
1 parent 784b8b8 commit 81fa3a9

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

lib/model_context_protocol/server.rb

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)