feat(mcp): export initialized result in client session (#320)
Export ServerCapabilities and related subtypes and update protocol, server, and tests to use exported types. Add InitializeResult method on ClientSession for accessing the initialize result from sessions. Fixes: https://github.com/modelcontextprotocol/go-sdk/issues/166 Co-authored-by: Shashank Pachava <spachava753@gmail.com>
This commit is contained in:
parent
767dacb820
commit
75f9999590
1 changed files with 64 additions and 57 deletions
|
|
@ -242,27 +242,27 @@ func (s *Server) RemoveResourceTemplates(uriTemplates ...string) {
|
|||
func() bool { return s.resourceTemplates.remove(uriTemplates...) })
|
||||
}
|
||||
|
||||
func (s *Server) capabilities() *serverCapabilities {
|
||||
func (s *Server) capabilities() *ServerCapabilities {
|
||||
s.mu.Lock()
|
||||
defer s.mu.Unlock()
|
||||
|
||||
caps := &serverCapabilities{
|
||||
Logging: &loggingCapabilities{},
|
||||
caps := &ServerCapabilities{
|
||||
Logging: &LoggingCapabilities{},
|
||||
}
|
||||
if s.opts.HasTools || s.tools.len() > 0 {
|
||||
caps.Tools = &toolCapabilities{ListChanged: true}
|
||||
caps.Tools = &ToolCapabilities{ListChanged: true}
|
||||
}
|
||||
if s.opts.HasPrompts || s.prompts.len() > 0 {
|
||||
caps.Prompts = &promptCapabilities{ListChanged: true}
|
||||
caps.Prompts = &PromptCapabilities{ListChanged: true}
|
||||
}
|
||||
if s.opts.HasResources || s.resources.len() > 0 || s.resourceTemplates.len() > 0 {
|
||||
caps.Resources = &resourceCapabilities{ListChanged: true}
|
||||
caps.Resources = &ResourceCapabilities{ListChanged: true}
|
||||
if s.opts.SubscribeHandler != nil {
|
||||
caps.Resources.Subscribe = true
|
||||
}
|
||||
}
|
||||
if s.opts.CompletionHandler != nil {
|
||||
caps.Completions = &completionCapabilities{}
|
||||
caps.Completions = &CompletionCapabilities{}
|
||||
}
|
||||
return caps
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue