Skip to content

Commit c16a61b

Browse files
committed
Fix mcp buffer
1 parent 8426723 commit c16a61b

File tree

1 file changed

+37
-36
lines changed

1 file changed

+37
-36
lines changed

eca-mcp.el

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -42,43 +42,44 @@
4242

4343
(defun eca-mcp--refresh-server-details ()
4444
"Refresh the MCP server details."
45-
(with-current-buffer (eca-mcp--get-details-buffer)
46-
(erase-buffer)
47-
(insert (propertize "MCP servers" 'font-lock-face 'helpful-heading))
48-
(insert "\n\n")
49-
(seq-doseq (server (-sort (lambda (a b)
50-
(string-lessp (plist-get a :name)
51-
(plist-get b :name)))
52-
(eca-vals (eca--session-mcp-servers eca--session))))
53-
(-let (((&plist :name name :command command :args args
54-
:status status :tools tools) server))
55-
(insert (propertize name 'font-lock-face 'bold))
56-
(insert " - ")
57-
(insert (propertize status
58-
'font-lock-face (pcase status
59-
("running" 'success)
60-
("starting" 'warning)
61-
("failed" 'error)
62-
("stopped" 'default)
63-
("disabled" 'shadow))))
64-
(insert "\n")
65-
(if (seq-empty-p tools)
66-
(insert (propertize "No tools available" 'font-lock-face font-lock-doc-face))
67-
(progn
68-
(insert (propertize "Tools: " 'font-lock-face font-lock-doc-face))
69-
(seq-doseq (tool tools)
70-
(insert (propertize (plist-get tool :name) 'font-lock-face 'eca-mcp-details-tool-face) " "))))
71-
(insert "\n")
72-
(insert (propertize "Command: " 'font-lock-face font-lock-doc-face))
73-
(insert (concat command " " (string-join args " ")))
74-
(when (string= "failed" status)
45+
(when (buffer-live-p (get-buffer eca-mcp-details-buffer-name))
46+
(with-current-buffer (eca-mcp--get-details-buffer)
47+
(erase-buffer)
48+
(insert (propertize "MCP servers" 'font-lock-face 'helpful-heading))
49+
(insert "\n\n")
50+
(seq-doseq (server (-sort (lambda (a b)
51+
(string-lessp (plist-get a :name)
52+
(plist-get b :name)))
53+
(eca-vals (eca--session-mcp-servers eca--session))))
54+
(-let (((&plist :name name :command command :args args
55+
:status status :tools tools) server))
56+
(insert (propertize name 'font-lock-face 'bold))
57+
(insert " - ")
58+
(insert (propertize status
59+
'font-lock-face (pcase status
60+
("running" 'success)
61+
("starting" 'warning)
62+
("failed" 'error)
63+
("stopped" 'default)
64+
("disabled" 'shadow))))
65+
(insert "\n")
66+
(if (seq-empty-p tools)
67+
(insert (propertize "No tools available" 'font-lock-face font-lock-doc-face))
68+
(progn
69+
(insert (propertize "Tools: " 'font-lock-face font-lock-doc-face))
70+
(seq-doseq (tool tools)
71+
(insert (propertize (plist-get tool :name) 'font-lock-face 'eca-mcp-details-tool-face) " "))))
7572
(insert "\n")
76-
(insert (propertize (format "Failed to start, check %s for details"
77-
(buttonize
78-
"eca stderr buffer"
79-
(lambda(_) (eca-process-show-stderr))))
80-
'font-lock-face 'error))))
81-
(insert "\n\n"))))
73+
(insert (propertize "Command: " 'font-lock-face font-lock-doc-face))
74+
(insert (concat command " " (string-join args " ")))
75+
(when (string= "failed" status)
76+
(insert "\n")
77+
(insert (propertize (format "Failed to start, check %s for details"
78+
(buttonize
79+
"eca stderr buffer"
80+
(lambda(_) (eca-process-show-stderr))))
81+
'font-lock-face 'error))))
82+
(insert "\n\n")))))
8283

8384
;; Public
8485

0 commit comments

Comments
 (0)