Skip to content

Commit 7e625c5

Browse files
ericdalloeca-agent
andcommitted
Add disabled field to MCP server notifications
Include a `disabled` boolean in tool-server-updated notifications so clients can distinguish between stopped and config-disabled servers. This enables proper button rendering (e.g. showing "enable" instead of "disable" when a config-disabled server is manually started). Also fix disable-server! to pass the updated config to ->server rather than the stale pre-write value. Closes #403 🤖 Generated with [eca](https://eca.dev) Co-Authored-By: eca-agent <git@eca.dev>
1 parent c284393 commit 7e625c5

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
- Refresh auth token before each LLM API call, preventing stale tokens during long-running tool calls.
66
- Add background shell command support via `background` parameter on `shell_command` tool and new `bg_job` tool for managing long-running processes. #77
7+
- Add `disabled` field to MCP server notifications, allowing clients to distinguish between stopped and config-disabled servers. #403
78

89
## 0.124.5
910

docs/protocol.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2172,6 +2172,11 @@ interface MCPServerUpdatedParams {
21722172
*/
21732173
status: 'running' | 'starting' | 'stopped' | 'failed' | 'disabled' | 'requires-auth';
21742174

2175+
/**
2176+
* Whether the server is disabled.
2177+
*/
2178+
disabled: boolean;
2179+
21752180
/**
21762181
* Whether the server has an OAuth access token.
21772182
*/

src/eca/features/tools/mcp.clj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@
192192
:resources (get-in db [:mcp-clients mcp-name :resources])
193193
:instructions (get-in db [:mcp-clients mcp-name :instructions])
194194
:has-auth (boolean (get-in db [:mcp-auth mcp-name :access-token]))
195+
:disabled (boolean (:disabled server-config))
195196
:status status})
196197

197198
(defn ^:private ->content [content-client]
@@ -626,7 +627,7 @@
626627
(memoize/memo-clear! config/all)
627628
(when (get-in db [:mcp-clients server-name :client])
628629
(stop-server! server-name db* config {:on-server-updated on-server-updated}))
629-
(on-server-updated (->server server-name server-config :disabled @db*))))
630+
(on-server-updated (->server server-name (assoc server-config :disabled true) :disabled @db*))))
630631

631632
(defn enable-server!
632633
"Enable an MCP server: remove disabled from config, start the server, notify."

0 commit comments

Comments
 (0)