55 * to the renderer (settings UI).
66 */
77
8+ import { dirname } from 'path' ;
89import { app } from 'electron' ;
910import { z } from 'zod' ;
1011import { createNoteId , createNoteOperation , updateNoteOperation } from '@dripnex/core' ;
@@ -13,6 +14,8 @@ import {
1314 getOrCreateApiToken ,
1415 type LocalServerHandlers ,
1516} from '../services/localServer.js' ;
17+ import { resolveMcpLaunch } from '../services/mcpLaunch.js' ;
18+ import { writeMcpWritesConfig } from '../services/mcpWrites.js' ;
1619import { defineIpcHandler } from '../ipc/registry.js' ;
1720import type { SQLiteNoteRepository , DataPaths } from './types.js' ;
1821
@@ -184,6 +187,47 @@ export function registerLocalServerHandlers(deps: LocalServerHandlerDeps): void
184187 }
185188 } ,
186189 } ) ;
190+
191+ defineIpcHandler ( {
192+ channel : 'localServer:connectionInfo' ,
193+ args : z . tuple ( [ ] ) ,
194+ handler : async ( ) => {
195+ try {
196+ if ( ! apiToken ) {
197+ apiToken = await getOrCreateApiToken ( dataPaths . root ) ;
198+ }
199+ const launch = resolveMcpLaunch ( ) ;
200+ const port = server . getPort ( ) ;
201+ return {
202+ ok : true ,
203+ running : server . isRunning ( ) ,
204+ port,
205+ url : `http://127.0.0.1:${ port } ` ,
206+ token : apiToken ,
207+ dbPath : dataPaths . database ,
208+ mcpCommand : launch ?. command ?? null ,
209+ mcpArgs : launch ?. args ?? null ,
210+ } ;
211+ } catch ( err ) {
212+ return { ok : false , error : err instanceof Error ? err . message : String ( err ) } ;
213+ }
214+ } ,
215+ } ) ;
216+
217+ defineIpcHandler ( {
218+ channel : 'localServer:setWrites' ,
219+ args : z . tuple ( [ z . boolean ( ) ] ) ,
220+ handler : async writes => {
221+ try {
222+ const override = process . env . DRIPNEX_DB_PATH ;
223+ const dir = override ? dirname ( override ) : dataPaths . root ;
224+ await writeMcpWritesConfig ( dir , writes ) ;
225+ return { ok : true } ;
226+ } catch ( err ) {
227+ return { ok : false , error : err instanceof Error ? err . message : String ( err ) } ;
228+ }
229+ } ,
230+ } ) ;
187231}
188232
189233/**
0 commit comments