# Console Terminal Mcp Server

> An MCP server that can manage terminal sessions

- **Type:** MCP server
- **Install:** `agentstack add mcp-nexon33-console-terminal-mcp-server`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [nexon33](https://agentstack.voostack.com/s/nexon33)
- **Installs:** 0
- **Category:** [Integrations](https://agentstack.voostack.com/c/integrations)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [nexon33](https://github.com/nexon33)
- **Source:** https://github.com/nexon33/console-terminal-mcp-server

## Install

```sh
agentstack add mcp-nexon33-console-terminal-mcp-server
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Electron Terminal MCP Server

In an ideal world vendors would provide their own MCP integration for the terminal, but in the meantime this project provides a Model Context Protocol (MCP) server that allows clients to interact with a system terminal running within an Electron application. It enables executing commands, managing terminal sessions, and retrieving output programmatically.

  

The system consists of two main parts:

*   **MCP Server (`index.js`):** A Node.js script that listens for MCP requests via standard input/output (stdio). It uses the `@modelcontextprotocol/sdk` and acts as a bridge to the Electron backend. It automatically starts the Electron backend if it's not already running. It requires [`mcp-package.json`](mcp-package.json:1) to specify `"type": "module"`.
*   **Electron Backend (`main.js`):** The main process for the Electron application. It runs an Express HTTP server (defaulting to port 3000) that the MCP server (`index.js`) communicates with for health checks and API calls. This backend manages the actual terminal processes using `node-pty` within hidden `BrowserWindow` instances loading [`terminal.html`](terminal.html:0).

## 2. Screenshots

Here's how the terminal interaction looks within a client like Claude Desktop:

**Claude Desktop Window with Terminal Output:**

**Individual Electron Terminal Window:**

## 3. Installation

1.  **Prerequisites:** Ensure you have Node.js and npm installed.
2.  **Clone:** Clone the repository if you haven't already.
    ```bash
    git clone 
    cd command-terminal-electron # Or your repository directory name
    ```
3.  **Install Dependencies:** Install Node modules for both the MCP server and the Electron app.
    ```bash
    npm install
    ```
4.  **Rebuild Native Modules:** Rebuild native modules (like `node-pty`) for Electron.
    ```bash
    node rebuild.js
    ```
    *(See [`rebuild.js`](rebuild.js:1) for details)*

## 3. Usage

1.  **Start the MCP Server:**
    Run the `index.js` script using Node.js. This will listen for MCP commands on stdio and automatically attempt to start the Electron backend process (`main.js`) if it's not already running and listening on the expected HTTP port.
    ```bash
    node index.js
    ```
    *Note: The Electron process runs hidden in the background and automatically gets (re)started whenever its needed and will always be reused if possible.*

2.  **Interacting via MCP:**
    Clients connect to the `node index.js` process via stdio and use the `use_mcp_tool` command. The server name is defined in [`index.js`](index.js:182) as "Electron Terminal".

    **Available Tools:**

    *   **`terminal_start`**: Creates a new terminal session and executes an initial command.
        *   **Input:** `{ "command": "string" }`
        *   **Output:** `{ "content": [...], "sessionId": "string" }`
        ```xml
        
          Electron Terminal
          terminal_start
          
          {
            "command": "ls -l"
          }
          
        
        ```

    *   **`terminal_execute`**: Executes a command in an existing session.
        *   **Input:** `{ "command": "string", "sessionId": "string" }`
        *   **Output:** `{ "content": [...] }` (Session ID is included in the text content)
        ```xml
        
          Electron Terminal
          terminal_execute
          
          {
            "sessionId": "session_id_from_start",
            "command": "pwd"
          }
          
        
        ```

    *   **`terminal_get_output`**: Retrieves the accumulated output for a session.
        *   **Input:** `{ "sessionId": "string" }`
        *   **Output:** `{ "content": [...] }`
        ```xml
        
          Electron Terminal
          terminal_get_output
          
          {
            "sessionId": "session_id_from_start"
          }
          
        
        ```

    *   **`terminal_stop`**: Terminates a specific terminal session process.
        *   **Input:** `{ "sessionId": "string" }`
        *   **Output:** `{ "content": [...] }`
        ```xml
        
          Electron Terminal
          terminal_stop
          
          {
            "sessionId": "session_id_from_start"
          }
          
        
        ```

    *   **`terminal_get_sessions`**: Lists all currently active sessions managed by the Electron backend.
        *   **Input:** `{}`
        *   **Output:** `{ "content": [...] }` (Content contains a JSON string of active sessions)
        ```xml
        
          Electron Terminal
          terminal_get_sessions
          
          {}
          
        
        ```

## 5. Synergy with Filesystem MCP Server

This Electron Terminal MCP server works very effectively in conjunction with the [Filesystem MCP Server](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem). You can use the Filesystem server to browse directories, read/write files, and then use this terminal server to execute commands within those directories or related to those files, providing a comprehensive remote development and interaction experience that works seamlessly together with for example the internet search function built into claude desktop.

## 6. Requirements

*   Node.js (v20 or later recommended, I use node 22)
*   npm
*   Operating System compatible with Electron (Windows, macOS, Linux)

## 7. Configuration

### Claude Desktop MCP Server Configuration

#### Location

The `claude_desktop_config.json` file should be placed in your user's AppData directory:

- **Windows:**
  `C:\Users\\AppData\Roaming\Claude\claude_desktop_config.json`

This file is used by Claude Desktop to discover and configure external MCP servers.

#### Purpose and Structure

The configuration file defines MCP servers that Claude Desktop can launch and connect to. Each server entry specifies how to start the server process.

- **`mcpServers`**:
  An object where each key is a server name and the value is its launch configuration.

- **Server Configuration Example (`command-terminal`)**:
  - **`command`**: The executable to run (e.g., `node` for Node.js servers).
  - **`args`**: An array of arguments passed to the command (e.g., the path to your MCP server script).

#### Example

```json
{
  "mcpServers": {
    "command-terminal": {
      "command": "node",
      "args": [
        "C:\\Path\\to\\index.js"
      ]
    }
  }
}
```

#### Field Explanations

- **`mcpServers`**:
  Top-level object mapping server names to their configurations.

- **`command-terminal`**:
  Example server name. You can define multiple servers in this object.

- **`command`**:
  The executable used to launch the MCP server.

- **`args`**:
  Arguments passed to the command, such as the path to your server script.

## 8. License

This project is licensed under the MIT License. See the LICENSE file for details.

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [nexon33](https://github.com/nexon33)
- **Source:** [nexon33/console-terminal-mcp-server](https://github.com/nexon33/console-terminal-mcp-server)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-nexon33-console-terminal-mcp-server
- Seller: https://agentstack.voostack.com/s/nexon33
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
