home / mcp / terminal mcp server

Terminal MCP Server

Cross-platform MCP server for managing visible terminal sessions with multiple sessions and auto-cleanup.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "hor1zonzzz-terminal-mcp": {
      "command": "uv",
      "args": [
        "run",
        "terminal-mcp"
      ]
    }
  }
}

Terminal MCP is a cross‑platform server that lets you create, manage, and interact with visible terminal windows from a centralized MCP client. You can open multiple terminals, send commands, read outputs, and clean up terminals automatically when the server stops, making it ideal for remote management, demonstrations, or shared debugging sessions.

How to use

You interact with Terminal MCP through your MCP client by creating and controlling visible terminal sessions. Use the available endpoints to create a new terminal, send input, fetch output, list active sessions, and close sessions when you’re finished.

How to install

Prerequisites: you need Python and a working Python package manager. You also need a way to run Python packages directly from the command line (the following steps assume you have access to a command named you can use to install and run Python packages). If you prefer, you can install directly from the repository using the provided commands.

uv pip install "git+https://github.com/Hor1zonZzz/terminal-mcp.git"
git clone https://github.com/Hor1zonZzz/terminal-mcp.git
cd terminal-mcp
uv pip install -e .

Claude Desktop Configuration

Add the MCP server configuration to your Claude Desktop config to connect to Terminal MCP.

{
  "mcpServers": {
    "terminal": {
      "command": "uv",
      "args": ["run", "terminal-mcp"]
    }
  }
}

Alternate global installation configuration

If you installed the server globally, you can connect with a single command name.

{
  "mcpServers": {
    "terminal": {
      "command": "terminal-mcp"
    }
  }
}

Available tools

terminal_create_or_get

Create a new visible terminal window or retrieve an existing one by name. Returns the session ID, name, platform, and status.

terminal_send_input

Send input or text to a specific terminal session by its ID.

terminal_get_output

Retrieve terminal output for a specific session, with an optional line limit.

terminal_list

List all currently active terminal sessions.

terminal_close

Close a specified terminal session by its ID.