Skip to content

Commit a3c1e5a

Browse files
enhance: add UI setting for toggling MCP server on/off
1 parent 9179674 commit a3c1e5a

File tree

3 files changed

+31
-2
lines changed

3 files changed

+31
-2
lines changed

src/electron/electron/server.cljs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
:port (get-port)
3232
:tokens (cfgs/get-item :server/tokens)
3333
:autostart (cfgs/get-item :server/autostart)
34-
:mcp-enabled? true}))
34+
:mcp-enabled? (cfgs/get-item :server/mcp-enabled?)}))
3535

3636
(defn- set-status!
3737
([status] (set-status! status nil))
@@ -141,7 +141,7 @@
141141
(logger/debug "[server] MCP routes initialized")
142142
(.post server "/mcp"
143143
#(cli-common-mcp-server/handle-post-request mcp-server {:port (get-port)
144-
:host (get-host)} %1 %2))
144+
:host (get-host)} %1 %2))
145145
(.get server "/mcp" cli-common-mcp-server/handle-get-request)
146146
(.delete server "/mcp" cli-common-mcp-server/handle-get-request)))
147147

src/main/frontend/components/settings.cljs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1194,6 +1194,32 @@
11941194
(rtc-handler/<rtc-invite-email graph-uuid user-email)))))}
11951195
"Invite")]]]))
11961196

1197+
(rum/defc mcp-server-row
1198+
[t]
1199+
(let [[checked set-checked!] (hooks/use-state false)]
1200+
1201+
(hooks/use-effect!
1202+
(fn []
1203+
(let [initial (get-in @state/state [:electron/server :mcp-enabled?])]
1204+
(set-checked! initial)))
1205+
[])
1206+
1207+
(let [on-toggle (fn []
1208+
(let [new-val (not checked)]
1209+
(set-checked! new-val)
1210+
(-> (ipc/ipc :server/set-config {:mcp-enabled? new-val})
1211+
;; Dont start server if it's not running
1212+
(p/then #(when (= "running" (state/sub [:electron/server :status]))
1213+
(p/let [_ (p/delay 1000)]
1214+
(ipc/ipc :server/do :restart))))
1215+
(p/catch #(notification/show! (str %) :error)))))]
1216+
(toggle "mcp-server"
1217+
(t :settings-page/enable-mcp-server)
1218+
checked
1219+
on-toggle
1220+
[:span.text-sm.opacity-50
1221+
(t :settings-page/enable-mcp-server-desc)]))))
1222+
11971223
(rum/defc settings-ai
11981224
[]
11991225
(let [[model-info set-model-info] (hooks/use-state nil)
@@ -1229,6 +1255,7 @@
12291255
:succ (constantly nil)))
12301256
[])
12311257
[:div.panel-wrap
1258+
(mcp-server-row t)
12321259
[:div.flex.flex-col.gap-2.mt-4
12331260
[:div.font-medium.text-muted-foreground.text-sm "Semantic search:"]
12341261

src/resources/dicts/en.edn

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,8 @@
215215
:context-menu/template-exists-warning "Template already exists!"
216216
:settings-page/ai "AI"
217217
:settings-page/tab-ai "AI"
218+
:settings-page/enable-mcp-server "Enable MCP Server"
219+
:settings-page/enable-mcp-server-desc "Run MCP Server within HTTP API server to allow local AI applications to connect to current graph."
218220
:settings-page/git-tip "If you have Logseq Sync enabled, you can view a page's edit history directly. This section is for tech-savvy only."
219221
:settings-page/git-desc-1 "To view page's edit history, click the three horizontal dots in the top-right corner and select \"View page history\"."
220222
:settings-page/git-desc-2 "For professional users, Logseq also supports using "

0 commit comments

Comments
 (0)