Skip to main content
Glama
iamvinitk
by iamvinitk

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
launch_appA

Spawn an Electron application via the electron binary with --remote-debugging-port and --inspect flags set so the MCP can drive the renderer and main process. Use launch_via_npm instead for electron-forge projects; this tool is for apps that don't need the forge dev-server (or for packaged test builds).

launch_via_npmA

Spawn an Electron application by running an npm script (typically start in an electron-forge project). Forwards --inspect-electron through forge and --remote-debugging-port / --inspect through to Electron. Use this for an electron-forge workspace (e.g. apps/electron) where forge's dev server needs to come up first.

attach_appA

Register an already-running Electron instance as a debug session. The caller started the app with --remote-debugging-port=<debugPort> and optionally --inspect=<inspectPort>; this tool just probes those ports and stores them so the rest of the MCP can drive the app. Stopping the session with stop_app will NOT kill the underlying process — the caller owns its lifecycle.

stop_appA

Close every CDP client tied to the session and, if the MCP launched the app, kill the underlying process. A no-op for already-stopped sessions, so safe to call unconditionally in cleanup flows.

list_appsA

Return a snapshot of every tracked session (launched + attached), with pid, ports, status, uptime, and tracked window count.

ping_inspectorA

Open the Node inspector on the session's main process and evaluate process.pid. Returns the pid on success; use this when get_app_paths times out to isolate whether the inspector is the problem.

list_windowsA

Enumerate every CDP target exposed by the session's renderer debug port. type: "page" entries correspond to BrowserWindows; pass their id to evaluate, navigate, or screenshot. Service/shared workers are included for completeness.

evaluateA

Run expression in the target renderer's main JS world via CDP Runtime.evaluate and return the result by value. Equivalent to typing the expression in the renderer's DevTools console. Use this for DOM inspection (document.title), state reads (localStorage.getItem('theme')), and any automation beyond what the click/type convenience tools cover.

navigateA

Call Page.navigate on the target renderer. Useful for driving the Electron app into a specific view without scripting a button click (file:// for packaged builds, http://localhost:5173/... for dev). Waits for the frame's loadEventFired before returning.

screenshotA

Grab a PNG (or JPEG) of the target renderer via Page.captureScreenshot. Returns base64. Large payloads — encode sparingly and prefer fullPage: false (the default) for quick-look snapshots.

get_main_logsA

Returns the spawned process's captured log lines (stdout + stderr interleaved in order of receipt). These typically include the app's main-process startup lines and any backend/proxy output it prints when running packaged.

get_console_messagesA

Returns console.* output and unhandled exceptions from the renderer, captured via CDP Runtime. Use level to filter (e.g. error to see regressions without the React dev-mode info spam).

get_network_requestsA

Returns captured CDP Network events (request / response / finished / failed). For a page load, multiple entries will share the same requestId — join them on that field to see the full request lifecycle. Default filter omits static assets so only XHR/fetch-style calls (e.g. API requests) surface; pass resourceType to override.

clear_logsA

Wipe session ring buffers — useful to set a zero point before driving an action. Omit kinds to clear everything.

list_electron_api_methodsA

Return the names of every method exposed on window.electronAPI in the chosen renderer. Useful to discover IPC channels before calling invoke_electron_api, or to verify a preload change actually exposed a new method.

invoke_electron_apiA

Invoke any method exposed by the preload bridge. Returns the method's result (awaited if it's a promise). Use to test IPC handlers directly, e.g. invoke_electron_api({ method: 'dbCheckConnectivity' }) or invoke_electron_api({ method: 'getConfig', args: ['theme'] }).

enable_ipc_loggingA

Inject a proxy over window.electronAPI that logs every method call (including those triggered by user actions) into the session's IPC ring buffer. Idempotent — safe to call multiple times; the installer no-ops if the proxy is already in place. Auto-reinstalls after Page.frameNavigated.

get_ipc_logA

Drain any pending renderer-side IPC events into the session buffer and return the matching entries. Requires enable_ipc_logging to have been called first. Each entry has the method name, JSON-serialised args/result, and duration in ms.

get_app_pathsA

Returns app.getPath(...) for the main paths (userData, temp, logs, downloads, documents, home), plus app.getAppPath(), app.isPackaged, process.resourcesPath, process.execPath, process.versions.electron. Requires the main-process Node inspector to be attached — if not, re-launch with a non-zero inspectPort.

read_user_data_fileA

Safely read a file relative to the session's app.getPath('userData') (e.g. config.json, api-logs/api.log). Path-traversal protected: paths are resolved against userData and rejected if they escape it. Returns the text content (up to the size cap) along with the resolved absolute path.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
sessionsJSON list of every session tracked by the MCP server.

Latest Blog Posts

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/iamvinitk/electron-mcp'

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