@@ -43,41 +43,41 @@ def initialize(method, capability)
4343 end
4444 end
4545
46- extend self
46+ class << self
47+ def ensure_capability! ( method , capabilities )
48+ case method
49+ when PROMPTS_GET , PROMPTS_LIST
50+ unless capabilities [ :prompts ]
51+ raise MissingRequiredCapabilityError . new ( method , :prompts )
52+ end
53+ when RESOURCES_LIST , RESOURCES_TEMPLATES_LIST , RESOURCES_READ , RESOURCES_SUBSCRIBE , RESOURCES_UNSUBSCRIBE
54+ unless capabilities [ :resources ]
55+ raise MissingRequiredCapabilityError . new ( method , :resources )
56+ end
4757
48- def ensure_capability! ( method , capabilities )
49- case method
50- when PROMPTS_GET , PROMPTS_LIST
51- unless capabilities [ :prompts ]
52- raise MissingRequiredCapabilityError . new ( method , :prompts )
58+ if method == RESOURCES_SUBSCRIBE && !capabilities [ :resources ] [ :subscribe ]
59+ raise MissingRequiredCapabilityError . new ( method , :resources_subscribe )
60+ end
61+ when TOOLS_CALL , TOOLS_LIST
62+ unless capabilities [ :tools ]
63+ raise MissingRequiredCapabilityError . new ( method , :tools )
64+ end
65+ when SAMPLING_CREATE_MESSAGE
66+ unless capabilities [ :sampling ]
67+ raise MissingRequiredCapabilityError . new ( method , :sampling )
68+ end
69+ when COMPLETION_COMPLETE
70+ unless capabilities [ :completions ]
71+ raise MissingRequiredCapabilityError . new ( method , :completions )
72+ end
73+ when LOGGING_SET_LEVEL
74+ # Logging is unsupported by the Server
75+ unless capabilities [ :logging ]
76+ raise MissingRequiredCapabilityError . new ( method , :logging )
77+ end
78+ when INITIALIZE , PING
79+ # No specific capability required for initialize or ping
5380 end
54- when RESOURCES_LIST , RESOURCES_TEMPLATES_LIST , RESOURCES_READ , RESOURCES_SUBSCRIBE , RESOURCES_UNSUBSCRIBE
55- unless capabilities [ :resources ]
56- raise MissingRequiredCapabilityError . new ( method , :resources )
57- end
58-
59- if method == RESOURCES_SUBSCRIBE && !capabilities [ :resources ] [ :subscribe ]
60- raise MissingRequiredCapabilityError . new ( method , :resources_subscribe )
61- end
62- when TOOLS_CALL , TOOLS_LIST
63- unless capabilities [ :tools ]
64- raise MissingRequiredCapabilityError . new ( method , :tools )
65- end
66- when SAMPLING_CREATE_MESSAGE
67- unless capabilities [ :sampling ]
68- raise MissingRequiredCapabilityError . new ( method , :sampling )
69- end
70- when COMPLETION_COMPLETE
71- unless capabilities [ :completions ]
72- raise MissingRequiredCapabilityError . new ( method , :completions )
73- end
74- when LOGGING_SET_LEVEL
75- # Logging is unsupported by the Server
76- unless capabilities [ :logging ]
77- raise MissingRequiredCapabilityError . new ( method , :logging )
78- end
79- when INITIALIZE , PING
80- # No specific capability required for initialize or ping
8181 end
8282 end
8383 end
0 commit comments