Skip to main content
Glama

Electron Terminal MCP Server

preload.js2.45 kB
// Preload script for the terminal window const { contextBridge, ipcRenderer } = require('electron'); // Expose API to the renderer process contextBridge.exposeInMainWorld('api', { // Terminal management createTerminal: () => { return ipcRenderer.invoke('terminal:create'); }, sendTerminalInput: (sessionId, data) => { if (!sessionId) return; ipcRenderer.send('pty-input', { sessionId, data }); }, resizeTerminal: (sessionId, cols, rows) => { if (!sessionId) return; ipcRenderer.send('terminal-resize', { sessionId, cols, rows }); }, closeTerminal: (sessionId) => { if (!sessionId) return; ipcRenderer.send('terminal:close', { sessionId }); }, sendCurrentOutput: (sessionId, output) => { if (!sessionId) return; ipcRenderer.send('terminal-send-current-output', { sessionId, output }); }, // Window management createWindow: () => { ipcRenderer.send('window:new'); }, closeWindow: () => { ipcRenderer.send('window:close'); }, minimizeWindow: () => { ipcRenderer.send('window:minimize'); }, maximizeWindow: () => { ipcRenderer.send('window:maximize'); }, toggleFullscreen: () => { ipcRenderer.send('window:toggle-fullscreen'); }, // Developer tools toggleDevTools: () => { ipcRenderer.send('dev:toggle-tools'); }, reloadWindow: () => { ipcRenderer.send('dev:reload'); }, forceReload: () => { ipcRenderer.send('dev:force-reload'); }, // App control quit: () => { ipcRenderer.send('app:quit'); }, // Settings getSettings: () => { return ipcRenderer.invoke('settings:get'); }, setSettings: (settings) => { ipcRenderer.send('settings:set', settings); }, // Events from main process onTerminalData: (callback) => { ipcRenderer.on('pty-output', (event, data) => callback(data)); }, onTerminalExit: (callback) => { ipcRenderer.on('terminal-exit', (event, data) => callback(data)); }, onSessionId: (callback) => { ipcRenderer.on('session-id', (event, sessionId) => callback(sessionId)); }, onTerminalCloseResponse: (callback) => { ipcRenderer.on('terminal:close-response', (event, data) => callback(data)); }, // Custom menu handling onAltKeyPressed: (callback) => { ipcRenderer.on('alt-key-pressed', () => callback()); }, // Window ready event onWindowReady: (callback) => { ipcRenderer.on('window-ready', () => callback()); } });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nexon33/console-terminal-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server