Function: mcp--connect-sse
mcp--connect-sse is a byte-compiled function defined in mcp.el.
Signature
(mcp--connect-sse &rest ARGS)
Implementations
(mcp--connect-sse (CONN mcp-http-process-connection)) in `mcp.el'.
Establish SSE (Server-Sent Events) connection for HTTP CONN.
Source Code
;; Defined in /nix/store/5m747x13pb1ddrvbq9raj91c4q1h1kl0-emacs-packages-deps/share/emacs/site-lisp/elpa/mcp-20260615.940/mcp.el
(cl-defmethod mcp--connect-sse ((conn mcp-http-process-connection))
"Establish SSE (Server-Sent Events) connection for HTTP CONN."
(let* ((name (jsonrpc-name conn))
(buffer-name (format "*Mcp %s server*" name))
(process-name (format "mcp-%s-server" name))
(host (mcp--host conn))
(port (mcp--port conn))
(path (mcp--path conn))
(proc (progn
(get-buffer-create buffer-name)
(open-network-stream process-name
buffer-name
host
port
:type (if (mcp--tls conn)
'tls
'network)
:coding 'utf-8-unix))))
(let* ((stderr-buffer-name (format "*%s stderr*" name))
(stderr-buffer (jsonrpc--forwarding-buffer stderr-buffer-name "[stderr] " conn))
(hidden-name (concat " " stderr-buffer-name)))
(with-current-buffer stderr-buffer
(ignore-errors (kill-buffer hidden-name))
(rename-buffer hidden-name)
(setq buffer-read-only t))
(process-put proc 'jsonrpc-stderr stderr-buffer))
(setf (jsonrpc--process conn) proc)
(set-process-buffer proc (get-buffer-create (format " *%s output*" name)))
(set-process-filter proc #'mcp--process-filter)
(set-process-sentinel proc #'jsonrpc--process-sentinel)
(with-current-buffer (process-buffer proc)
(buffer-disable-undo)
(set-marker (process-mark proc) (point-min))
(let ((inhibit-read-only t))
(erase-buffer))
(setq buffer-read-only t))
(process-put proc 'jsonrpc-connection conn)
(process-send-string proc
(concat
(format "GET %s HTTP/1.1\r\n"
path)
(format "Host: %s:%s\r\n"
host
port)
"Accept: text/event-stream\r\n"
(when-let* ((token (mcp--resolve-value (mcp--token conn))))
(format "Authorization: Bearer %s\r\n" token))
(unless (mcp--sse conn)
(format "Mcp-Session-Id: %s\r\n" (mcp--session-id conn)))
"Cache-Control: no-cache\r\n"
"Connection: keep-alive\r\n\r\n"))))