Function: eca-mcp-toggle-server
eca-mcp-toggle-server is an interactive and natively compiled function
defined in eca-mcp.el.
Signature
(eca-mcp-toggle-server)
Documentation
Select an MCP server and toggle its runtime state.
Running servers are stopped, stopped servers are started, and servers requiring authentication are connected. Persistent enablement is unchanged.
Key Bindings
eca-chat-mode-map C-c S-RET
Source Code
;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-mcp.el
;;;###autoload
(defun eca-mcp-toggle-server ()
"Select an MCP server and toggle its runtime state.
Running servers are stopped, stopped servers are started, and servers
requiring authentication are connected. Persistent enablement is unchanged."
(interactive)
(let ((session (eca-session)))
(eca-assert-session-running session)
(let ((servers (sort (copy-sequence (eca-mcp-servers session))
(lambda (a b)
(string-lessp (plist-get a :name)
(plist-get b :name))))))
(unless servers
(user-error "No MCP servers are configured"))
(let* ((candidates (eca-mcp--server-candidates servers))
(choice (completing-read "Toggle MCP server: "
candidates nil t))
(name (cdr (assoc choice candidates)))
(server (eca-get (eca--session-tool-servers session) name)))
(unless server
(user-error "MCP server %s is no longer available" name))
(let ((action (eca-mcp--server-runtime-action server)))
(cond
(action
(eca-mcp--notify-server-action session server action))
((string= (plist-get server :status) "stopping")
(user-error "MCP server %s is stopping; try again shortly"
name))
(t
(user-error "MCP server %s has unsupported status: %s"
name
(or (plist-get server :status) "unknown")))))))))