Skip to main content

MCP Server providing fully interactive terminal sessions for AI agents - TUI support, keyboard control, screen capture - Cross-platform (Windows, Linux, Mac)

Project description

Vitjas Interactive Terminal MCP Server

A Model Context Protocol (MCP) server providing fully interactive terminal sessions for AI agents.

🎯 Purpose

This server enables AI agents to interact with any command-line application, including:

  • TUI applications: htop, top, btop, ncdu, nmtui, etc.
  • Text editors: nano, vim, emacs
  • Pagers: less, more
  • File managers: midnight commander (mc), ranger
  • Interactive CLIs: python REPL, node REPL, mysql, psql
  • Long-running processes: downloads, builds, tests

✨ Key Features

  • 🖥️ True Interactive Terminals - Not just command execution!
  • ⌨️ Full Keyboard Support - Arrow keys, Ctrl, Alt, Function keys
  • 📜 Scrollback History - 50,000 lines of history
  • 🔄 Session Persistence - Terminals persist between commands
  • 📊 Screen Capture - Read terminal output anytime
  • 🎮 TUI Navigation - Navigate menus, lists, editors
  • 🔍 Buffer Search - Search through terminal history

📦 Installation

From PyPI (Recommended)

pip install vitjas-interactive-terminal

Prerequisites

# Ensure tmux is installed
apt-get install tmux    # Debian/Ubuntu
brew install tmux        # macOS

⚙️ Configuration

For Claude Desktop / Agent Zero

Add to your MCP configuration:

{
  "mcpServers": {
    "InteractiveTerminal": {
      "command": "vitjas-interactive-terminal",
      "args": []
    }
  }
}

No paths needed! After pip install, the command is available system-wide.

🔧 Available Tools

Tool Description
create_terminal Create a new interactive terminal session
send_text Send text/commands to terminal
send_keys Send special keys (arrows, Ctrl, Alt, F-keys)
get_screen Read terminal output with metadata
list_terminals List all active terminal sessions
delete_terminal Close/delete a terminal session
search_buffer Search through terminal history

⌨️ Supported Keys for send_keys

Category Keys
Navigation up, down, left, right, home, end, pageup, pagedown
Control ctrl+a through ctrl+z, ctrl+c (interrupt), ctrl+d (EOF)
Alt alt+a through alt+z
Special enter, escape, tab, backspace, delete, f1-f12

💡 Usage Examples

Run a Simple Command

1. create_terminal(directory="/home/user")
2. send_text("ls -la\n")
3. get_screen()  # See the directory listing

Navigate htop

1. create_terminal()
2. send_text("htop\n")
3. send_keys("down")    # Move selection down
4. send_keys("enter")   # View process details
5. send_keys("q")       # Quit htop

Edit File in nano

1. create_terminal(directory="/tmp")
2. send_text("nano myfile.txt\n")
3. send_text("Hello World!")
4. send_keys("ctrl+o")  # Save
5. send_keys("enter")   # Confirm filename
6. send_keys("ctrl+x")  # Exit

🔧 Technical Details

  • Backend: tmux sessions
  • History: 50,000 lines scrollback
  • Default size: 120 cols × 40 rows
  • Session persistence: Until deleted or server restart

📄 License

MIT License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vitjas_interactive_terminal-1.2.0.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vitjas_interactive_terminal-1.2.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file vitjas_interactive_terminal-1.2.0.tar.gz.

File metadata

File hashes

Hashes for vitjas_interactive_terminal-1.2.0.tar.gz
Algorithm Hash digest
SHA256 7090dd7fbdfd1523eebc4dc5180b4411013b368007527179aadca0e8455684b4
MD5 cc3cbad3ddccf6b3245259eb665d6ee0
BLAKE2b-256 bd8896a30a3b0bc229c05c31fce619ab6f791b1b9c8e0372767eed295ff79ce7

See more details on using hashes here.

File details

Details for the file vitjas_interactive_terminal-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for vitjas_interactive_terminal-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0f0f4d520a8ced228c3d9e9e65d5d3acf722cd1430c67faca3f7595b06504e89
MD5 d50ee38068fa0c3b94e039b93d5d8993
BLAKE2b-256 d479bb37e8106a002f557741f27a810abd0a3cbc6cebceee8d34f9ee6ff306a2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page