Function: eca-mcp--render-add-form
eca-mcp--render-add-form is a natively compiled function defined in
eca-mcp.el.
Signature
(eca-mcp--render-add-form SESSION KEYMAP)
Documentation
Render the inline add-server form into the current buffer.
Source Code
;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-mcp.el
(defun eca-mcp--render-add-form (session keymap)
"Render the inline add-server form into the current buffer."
(let* ((st eca-mcp--add-form-state)
(transport (plist-get st :transport))
(scope (plist-get st :scope)))
(insert (propertize "Add MCP server" 'font-lock-face 'bold) "\n")
(insert "Name: ")
(insert (eca-buttonize
keymap
(propertize (if (string-empty-p (plist-get st :name))
"<click to set>"
(plist-get st :name))
'font-lock-face 'eca-mcp-details-command-value-face)
(lambda () (eca-mcp--add-form-edit-field :name "Server name: " session))))
(insert "\n")
(insert "Transport: ")
(insert (eca-buttonize
keymap
(propertize (concat (if (string= transport "stdio") "[x]" "[ ]") " stdio")
'font-lock-face (if (string= transport "stdio")
'eca-mcp-details-button-face
'eca-mcp-details-button-disable-face))
(lambda () (eca-mcp--add-form-set :transport "stdio" session))))
(insert " ")
(insert (eca-buttonize
keymap
(propertize (concat (if (string= transport "remote") "[x]" "[ ]") " remote")
'font-lock-face (if (string= transport "remote")
'eca-mcp-details-button-face
'eca-mcp-details-button-disable-face))
(lambda () (eca-mcp--add-form-set :transport "remote" session))))
(insert "\n")
(cond
((string= transport "stdio")
(insert "Command: ")
(insert (eca-buttonize
keymap
(propertize (if (string-empty-p (plist-get st :command))
"<click to set>"
(plist-get st :command))
'font-lock-face 'eca-mcp-details-command-value-face)
(lambda () (eca-mcp--add-form-edit-field :command "Command: " session))))
(insert "\n")
(insert "Args: ")
(insert (eca-buttonize
keymap
(propertize (if (string-empty-p (plist-get st :args))
"<click to set>"
(plist-get st :args))
'font-lock-face 'eca-mcp-details-command-value-face)
(lambda () (eca-mcp--add-form-edit-field :args "Args (space-separated): " session))))
(insert "\n")
(insert "Env: ")
(let ((env (plist-get st :env)))
(if env
(insert (propertize (mapconcat #'identity env ", ")
'font-lock-face 'eca-mcp-details-command-value-face))
(insert (propertize "(none)" 'font-lock-face 'shadow))))
(insert " ")
(insert (eca-buttonize
keymap
(propertize "[edit]" 'font-lock-face 'eca-mcp-details-button-face)
(lambda () (eca-mcp--add-form-edit-list-field
:env "Env KEY=VALUE (empty to finish): " session))))
(insert "\n"))
(t
(insert "URL: ")
(insert (eca-buttonize
keymap
(propertize (if (string-empty-p (plist-get st :url))
"<click to set>"
(plist-get st :url))
'font-lock-face 'eca-mcp-details-command-value-face)
(lambda () (eca-mcp--add-form-edit-field :url "URL: " session))))
(insert "\n")
(insert "Headers: ")
(let ((hs (plist-get st :headers)))
(if hs
(insert (propertize (mapconcat #'identity hs ", ")
'font-lock-face 'eca-mcp-details-command-value-face))
(insert (propertize "(none)" 'font-lock-face 'shadow))))
(insert " ")
(insert (eca-buttonize
keymap
(propertize "[edit]" 'font-lock-face 'eca-mcp-details-button-face)
(lambda () (eca-mcp--add-form-edit-list-field
:headers "Header KEY: VALUE (empty to finish): " session))))
(insert "\n")))
(insert "Scope: ")
(insert (eca-buttonize
keymap
(propertize (concat (if (string= scope "global") "[x]" "[ ]") " global")
'font-lock-face (if (string= scope "global")
'eca-mcp-details-button-face
'eca-mcp-details-button-disable-face))
(lambda () (eca-mcp--add-form-set :scope "global" session))))
(insert " ")
(insert (eca-buttonize
keymap
(propertize (concat (if (string= scope "workspace") "[x]" "[ ]") " workspace")
'font-lock-face (if (string= scope "workspace")
'eca-mcp-details-button-face
'eca-mcp-details-button-disable-face))
(lambda () (eca-mcp--add-form-set :scope "workspace" session))))
(insert "\n")
(insert (eca-buttonize
keymap
(propertize "[Submit]" 'font-lock-face 'eca-mcp-details-button-face)
(lambda () (eca-mcp--submit-add-server session))))
(insert " ")
(insert (eca-buttonize
keymap
(propertize "[Cancel]" 'font-lock-face 'eca-mcp-details-button-stop-face)
(lambda () (eca-mcp--cancel-add-form session))))
(insert "\n\n")))