Terminal MCP Server

io.github.aybelatchanePublished by GitHub account aybelatchanev1.0.3Updated Oct 24, 2026

MCP server for AI agents to interact with terminal applications. Think Playwright for terminals.

The publisher's own server: Terminal Tax

VerifiedSTDIODesktop onlyBrowser AutomationDeveloper Tools

Overview

AI-generated overview

A local MCP server that lets an AI assistant drive terminal applications: start sessions, snapshot terminal state, type, press keys, click UI elements and read.

What you can do
Manage terminal sessions: create, list, close and resize sessions running terminal programs such as htop or shell commands. Inspect terminal state: capture snapshots with detected UI elements or read raw output. Send input: type text, press keys such as arrows, F-keys and Ctrl combinations, and click detected UI elements. Wait for conditions: block until expected text, an element or an idle state appears.
When to use it
Useful when an assistant needs to operate interactive terminal programs that have no API, such as TUI tools, menus or full-screen consoles, and to script keystroke-level interaction with them. It is a desktop-only tool, so it fits local development machines rather than hosted environments.
Requirements
Runs as a local process, typically via npx mcp-server-terminal, or as a pre-built binary; building from source needs a Rust toolchain. Visual mode spawns a visible terminal window and on Linux/WSL requires X11 with the DISPLAY environment variable set; headless mode is available with a flag. Windows native is headless only; WSL is recommended for full functionality. Optional RUST_LOG sets log level.
Before you install
The assistant can type arbitrary text and press keys in real terminal sessions, so commands may run with the user's privileges and change or delete data; review what it executes. Visual mode opens windows on the desktop. Logs go to stderr and can be made verbose with RUST_LOG.

Installation

In SourceWeft

  1. Open Terminal MCP Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Terminal MCP Server

[npm version] [npm downloads] [License: MIT]

MCP server enabling AI agents to interact with terminal applications through structured Terminal State Tree representation. Works with any AI assistant that supports the Model Context Protocol.

Installation

Via npm (Recommended)

bash
npx mcp-server-terminal

Via GitHub Releases

Download pre-built binaries from Releases.

Build from Source

bash
git clone https://github.com/aybelatchane/mcp-server-terminal.gitcd mcp-server-terminalcargo build --release# Binary: ./target/release/terminal-mcp

Configuration

Claude

Claude Code (CLI)
bash
claude mcp add terminal -- npx mcp-server-terminal
Claude Desktop

Add to ~/.claude.json (macOS/Linux) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{  "mcpServers": {    "terminal": {      "command": "npx",      "args": ["mcp-server-terminal"]    }  }}

OpenAI Codex

Codex CLI
bash
codex mcp add terminal -- npx mcp-server-terminal
Codex Configuration File

Add to ~/.codex/config.toml:

toml
[mcp_servers.terminal]command = "npx"args = ["mcp-server-terminal"]

Google Gemini

Gemini CLI
bash
gemini mcp add terminal npx mcp-server-terminal

VS Code / GitHub Copilot

VS Code 1.101+ supports MCP. Add to your VS Code settings (settings.json):

json
{  "mcp.servers": {    "terminal": {      "command": "npx",      "args": ["mcp-server-terminal"]    }  }}

Cursor

Add to ~/.cursor/mcp.json or .cursor/mcp.json in your project:

json
{  "mcpServers": {    "terminal": {      "command": "npx",      "args": ["mcp-server-terminal"]    }  }}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "terminal": {      "command": "npx",      "args": ["mcp-server-terminal"]    }  }}

Zed

Add to your Zed settings (Preferences → Settings):

json
{  "context_servers": {    "terminal": {      "command": {        "path": "npx",        "args": ["mcp-server-terminal"]      }    }  }}

Cline (VS Code Extension)

Click MCP Servers icon → Configure → Advanced MCP Settings, then add:

json
{  "mcpServers": {    "terminal": {      "command": "npx",      "args": ["mcp-server-terminal"]    }  }}

AWS Bedrock

Add to your Bedrock agent MCP configuration:

json
{  "mcpServers": {    "terminal": {      "command": "npx",      "args": ["mcp-server-terminal"]    }  }}

Other MCP Clients

For any MCP-compatible client, configure the server with:

  • Command: npx
  • Args: ["mcp-server-terminal"]

Or if using the binary directly:

  • Command: terminal-mcp

Usage

Ask your AI agent:

  • "Create a terminal session running htop"
  • "Take a snapshot of the terminal"
  • "Press the down arrow key"
  • "Type 'ls -la' and press Enter"

MCP Tools

ToolDescription
terminal_session_createStart a terminal session
terminal_session_listList active sessions
terminal_session_closeClose a session
terminal_session_resizeResize terminal dimensions
terminal_snapshotCapture terminal state with UI elements
terminal_typeType text into terminal
terminal_press_keyPress keys (arrows, F-keys, Ctrl+X)
terminal_clickClick on detected UI element
terminal_wait_forWait for text, element, or idle state
terminal_read_outputRead raw terminal output

Visual Mode

By default, sessions spawn a visible terminal window (xterm). For headless operation:

bash
npx mcp-server-terminal --headless

Or in your MCP config:

json
{  "mcpServers": {    "terminal": {      "command": "npx",      "args": ["mcp-server-terminal", "--headless"]    }  }}

X11 Setup (Linux/WSL)

Visual mode requires X11. Add the DISPLAY environment variable to your MCP config:

json
{  "mcpServers": {    "terminal": {      "command": "npx",      "args": ["mcp-server-terminal"],      "env": {        "DISPLAY": ":0"      }    }  }}

Logging

Set the RUST_LOG environment variable:

json
{  "mcpServers": {    "terminal": {      "command": "npx",      "args": ["mcp-server-terminal"],      "env": {        "RUST_LOG": "info"      }    }  }}

Log levels: error, warn, info, debug, trace

Logs go to stderr (stdout is reserved for MCP protocol).

Platform Support

PlatformArchitectureStatusVisual Mode
Linuxx64, arm64✅ Full supportxterm + tmux
macOSx64, arm64✅ Full supportTerminal.app / iTerm2
Windows (WSL)x64, arm64✅ Full supportxterm + tmux (via X11)
Windows (native)x64⚠️ Headless onlyNot supported

Windows users: Use WSL for full functionality including visual mode.

License

MIT

Source: README.md at commit c532381

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.0.3LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Terminal integrations