Skip to main content
Glama
nexon33

Electron Terminal MCP Server

terminal_execute

Execute terminal commands programmatically within an Electron application to automate system operations and retrieve command outputs through managed terminal sessions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
commandYes
sessionIdYes

Implementation Reference

  • index.js:291-328 (registration)
    Registers the 'terminal_execute' MCP tool with input schema for command and sessionId, and handler that proxies execution to an Electron-based API server.
    server.tool(
      "terminal_execute",
      {
        command: z.string(),
        sessionId: z.string()
      },
      async ({ command, sessionId }) => {
        try {
          // Check if server is running, start if not
          if (!(await isServerRunning())) {
            await startElectronProcess();
          }
    
          let response;
          //if (sessionId) {
          // Execute in existing session
          response = await axios.post(`${apiBaseUrl}/execute/${sessionId}`, { command });
          //} else {
          // Create new session
          //  response = await axios.post(`${apiBaseUrl}/execute`, { command });
          //}
    
          const result = response.data;
          // Clean up terminal output using strip-ansi
          const cleanOutput = stripAnsi(result.output);
          return {
            content: [{
              type: "text",
              text: `Session ID: ${result.sessionId}\n\n ${cleanOutput}`,
              exitCode: result.exitCode
            }],
    
          };
        } catch (error) {
          return formatErrorResponse(error, sessionId);
        }
      }
    );
  • Handler function for terminal_execute tool. Ensures Electron server is running, sends command to /execute/{sessionId} endpoint, strips ANSI from output, and returns formatted response.
    async ({ command, sessionId }) => {
      try {
        // Check if server is running, start if not
        if (!(await isServerRunning())) {
          await startElectronProcess();
        }
    
        let response;
        //if (sessionId) {
        // Execute in existing session
        response = await axios.post(`${apiBaseUrl}/execute/${sessionId}`, { command });
        //} else {
        // Create new session
        //  response = await axios.post(`${apiBaseUrl}/execute`, { command });
        //}
    
        const result = response.data;
        // Clean up terminal output using strip-ansi
        const cleanOutput = stripAnsi(result.output);
        return {
          content: [{
            type: "text",
            text: `Session ID: ${result.sessionId}\n\n ${cleanOutput}`,
            exitCode: result.exitCode
          }],
    
        };
      } catch (error) {
        return formatErrorResponse(error, sessionId);
      }
    }
  • Zod schema defining inputs: command (string) and sessionId (string).
    {
      command: z.string(),
      sessionId: z.string()
    },

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

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/nexon33/console-terminal-mcp-server'

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