model-context-protocol-rb 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,13 +9,14 @@ module ModelContextProtocol
9
9
  include ModelContextProtocol::Server::ContentHelpers
10
10
  include ModelContextProtocol::Server::Progressable
11
11
 
12
- attr_reader :arguments, :context, :logger
12
+ attr_reader :arguments, :context, :client_logger, :server_logger
13
13
 
14
- def initialize(arguments, logger, context = {})
14
+ def initialize(arguments, client_logger, server_logger, context = {})
15
15
  validate!(arguments)
16
16
  @arguments = arguments
17
17
  @context = context
18
- @logger = logger
18
+ @client_logger = client_logger
19
+ @server_logger = server_logger
19
20
  end
20
21
 
21
22
  def call
@@ -103,8 +104,8 @@ module ModelContextProtocol
103
104
  subclass.instance_variable_set(:@output_schema, @output_schema)
104
105
  end
105
106
 
106
- def call(arguments, logger, context = {})
107
- new(arguments, logger, context).call
107
+ def call(arguments, client_logger, server_logger, context = {})
108
+ new(arguments, client_logger, server_logger, context).call
108
109
  rescue JSON::Schema::ValidationError => validation_error
109
110
  raise ModelContextProtocol::Server::ParameterValidationError, validation_error.message
110
111
  rescue OutputSchemaValidationError, ModelContextProtocol::Server::ResponseArgumentsError => tool_error
@@ -1,5 +1,3 @@
1
- require "logger"
2
-
3
1
  module ModelContextProtocol
4
2
  class Server
5
3
  # Raised when invalid response arguments are provided.
@@ -98,11 +96,11 @@ module ModelContextProtocol
98
96
  router.map("logging/setLevel") do |message|
99
97
  level = message["params"]["level"]
100
98
 
101
- unless Configuration::VALID_LOG_LEVELS.include?(level)
102
- raise ParameterValidationError, "Invalid log level: #{level}. Valid levels are: #{Configuration::VALID_LOG_LEVELS.join(", ")}"
99
+ unless ClientLogger::VALID_LOG_LEVELS.include?(level)
100
+ raise ParameterValidationError, "Invalid log level: #{level}. Valid levels are: #{ClientLogger::VALID_LOG_LEVELS.join(", ")}"
103
101
  end
104
102
 
105
- configuration.logger.set_mcp_level(level)
103
+ configuration.client_logger.set_mcp_level(level)
106
104
  LoggingSetLevelResponse[]
107
105
  end
108
106
 
@@ -160,7 +158,7 @@ module ModelContextProtocol
160
158
  raise ModelContextProtocol::Server::ParameterValidationError, "resource not found for #{uri}"
161
159
  end
162
160
 
163
- resource.call
161
+ resource.call(configuration.client_logger, configuration.server_logger, configuration.context)
164
162
  end
165
163
 
166
164
  router.map("resources/templates/list") do |message|
@@ -217,7 +215,7 @@ module ModelContextProtocol
217
215
  configuration
218
216
  .registry
219
217
  .find_prompt(message["params"]["name"])
220
- .call(symbolized_arguments, configuration.logger, configuration.context)
218
+ .call(symbolized_arguments, configuration.client_logger, configuration.server_logger, configuration.context)
221
219
  end
222
220
 
223
221
  router.map("tools/list") do |message|
@@ -250,31 +248,31 @@ module ModelContextProtocol
250
248
  configuration
251
249
  .registry
252
250
  .find_tool(message["params"]["name"])
253
- .call(symbolized_arguments, configuration.logger, configuration.context)
251
+ .call(symbolized_arguments, configuration.client_logger, configuration.server_logger, configuration.context)
254
252
  end
255
253
  end
256
254
 
257
255
  def build_capabilities
258
256
  {}.tap do |capabilities|
259
257
  capabilities[:completions] = {}
260
- capabilities[:logging] = {} if configuration.logging_enabled?
258
+ capabilities[:logging] = {}
261
259
 
262
260
  registry = configuration.registry
263
261
 
264
- if registry.prompts_options.any? && !registry.instance_variable_get(:@prompts).empty?
262
+ if !registry.instance_variable_get(:@prompts).empty?
265
263
  capabilities[:prompts] = {
266
264
  listChanged: registry.prompts_options[:list_changed]
267
265
  }.except(:completions).compact
268
266
  end
269
267
 
270
- if registry.resources_options.any? && !registry.instance_variable_get(:@resources).empty?
268
+ if !registry.instance_variable_get(:@resources).empty?
271
269
  capabilities[:resources] = {
272
270
  subscribe: registry.resources_options[:subscribe],
273
271
  listChanged: registry.resources_options[:list_changed]
274
272
  }.compact
275
273
  end
276
274
 
277
- if registry.tools_options.any? && !registry.instance_variable_get(:@tools).empty?
275
+ if !registry.instance_variable_get(:@tools).empty?
278
276
  capabilities[:tools] = {
279
277
  listChanged: registry.tools_options[:list_changed]
280
278
  }.compact
@@ -284,7 +282,11 @@ module ModelContextProtocol
284
282
 
285
283
  class << self
286
284
  def configure_redis(&block)
287
- RedisConfig.configure(&block)
285
+ ModelContextProtocol::Server::RedisConfig.configure(&block)
286
+ end
287
+
288
+ def configure_server_logging(&block)
289
+ ModelContextProtocol::Server::GlobalConfig::ServerLogging.configure(&block)
288
290
  end
289
291
  end
290
292
  end
@@ -1,3 +1,3 @@
1
1
  module ModelContextProtocol
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: model-context-protocol-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dick Davis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-09-23 00:00:00.000000000 Z
11
+ date: 2026-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json-schema
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.4'
61
+ version: '3.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.4'
68
+ version: '3.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: concurrent-ruby
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -82,7 +82,7 @@ dependencies:
82
82
  version: '1.3'
83
83
  description:
84
84
  email:
85
- - dick@hey.com
85
+ - webmaster@dick.codes
86
86
  executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files: []
@@ -99,11 +99,12 @@ files:
99
99
  - lib/model_context_protocol.rb
100
100
  - lib/model_context_protocol/server.rb
101
101
  - lib/model_context_protocol/server/cancellable.rb
102
+ - lib/model_context_protocol/server/client_logger.rb
102
103
  - lib/model_context_protocol/server/completion.rb
103
104
  - lib/model_context_protocol/server/configuration.rb
104
105
  - lib/model_context_protocol/server/content.rb
105
106
  - lib/model_context_protocol/server/content_helpers.rb
106
- - lib/model_context_protocol/server/mcp_logger.rb
107
+ - lib/model_context_protocol/server/global_config/server_logging.rb
107
108
  - lib/model_context_protocol/server/pagination.rb
108
109
  - lib/model_context_protocol/server/progressable.rb
109
110
  - lib/model_context_protocol/server/prompt.rb
@@ -114,6 +115,7 @@ files:
114
115
  - lib/model_context_protocol/server/resource.rb
115
116
  - lib/model_context_protocol/server/resource_template.rb
116
117
  - lib/model_context_protocol/server/router.rb
118
+ - lib/model_context_protocol/server/server_logger.rb
117
119
  - lib/model_context_protocol/server/stdio_transport.rb
118
120
  - lib/model_context_protocol/server/stdio_transport/request_store.rb
119
121
  - lib/model_context_protocol/server/streamable_http_transport.rb
@@ -121,6 +123,7 @@ files:
121
123
  - lib/model_context_protocol/server/streamable_http_transport/message_poller.rb
122
124
  - lib/model_context_protocol/server/streamable_http_transport/notification_queue.rb
123
125
  - lib/model_context_protocol/server/streamable_http_transport/request_store.rb
126
+ - lib/model_context_protocol/server/streamable_http_transport/server_request_store.rb
124
127
  - lib/model_context_protocol/server/streamable_http_transport/session_message_queue.rb
125
128
  - lib/model_context_protocol/server/streamable_http_transport/session_store.rb
126
129
  - lib/model_context_protocol/server/streamable_http_transport/stream_registry.rb