MCPcopy Create free account
hub / github.com/modelcontextprotocol/go-sdk / subscribe

Method subscribe

mcp/server.go:892–909  ·  view source on GitHub ↗
(ctx context.Context, req *SubscribeRequest)

Source from the content-addressed store, hash-verified

890}
891
892func (s *Server) subscribe(ctx context.Context, req *SubscribeRequest) (*emptyResult, error) {
893 if s.opts.SubscribeHandler == nil {
894 return nil, fmt.Errorf("%w: server does not support resource subscriptions", jsonrpc2.ErrMethodNotFound)
895 }
896 if err := s.opts.SubscribeHandler(ctx, req); err != nil {
897 return nil, err
898 }
899
900 s.mu.Lock()
901 defer s.mu.Unlock()
902 if s.resourceSubscriptions[req.Params.URI] == nil {
903 s.resourceSubscriptions[req.Params.URI] = make(map[*ServerSession]bool)
904 }
905 s.resourceSubscriptions[req.Params.URI][req.Session] = true
906 s.opts.Logger.Info("resource subscribed", "uri", req.Params.URI, "session_id", req.Session.ID())
907
908 return &emptyResult{}, nil
909}
910
911func (s *Server) unsubscribe(ctx context.Context, req *UnsubscribeRequest) (*emptyResult, error) {
912 if s.opts.UnsubscribeHandler == nil {

Callers

nothing calls this directly

Calls 1

IDMethod · 0.65

Tested by

no test coverage detected