Back to System Ops
Terminal Session
Provides stateful, TUI-compatible terminal sessions for executing commands and running interactive applications, enabling persistent interaction with command-line interfaces and programs.
Last updated: 1/27/2026
README
# mcpterm
An MCP tool server that provides stateful, TUI-compatible terminal sessions.
This is a proof-of-concept using [mcp-go](https://github.com/dwrtz/mcp-go).
Works quite well with Claude Desktop.
## Usage
Clone the repo and run `make` to generate `bin/mcpterm`.
```
git clone https://github.com/dwrtz/mcpterm.git
cd mcpterm
make
```
Move the `mcpterm` binary to a directory in your PATH.
```
sudo mv bin/mcpterm /usr/local/bin/mcpterm
```
### Add to Claude Desktop
Edit your `claude_desktop_config.json` (on Mac it's in `~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"mcpterm": {
"command": "mcpterm",
"args": []
}
}
}
```
Restart Claude Desktop. Now Claude should see the 2 tools provided by `mcpterm`.
## Tools
`run`: Runs a command in a stateful terminal session. E.g. if you cd into a directory, subsequent commands will run in that directory.
`runScreen`: Runs a command or series of keystrokes and returns the screen output. Intended for TUI apps such as vim or a python REPL.
## Tips:
You may want to tell Claude to use following control sequences with the `runScreen` tool:
```go
"^X": "\x18", // Ctrl+X
"^O": "\x0F", // Ctrl+O
"^J": "\x0A", // Enter
"^C": "\x03", // Ctrl+C
"^D": "\x04", // Ctrl+D
"^Z": "\x1A", // Ctrl+Z
"^[": "\x1B", // Escape
"^H": "\x08", // Backspace
"^M": "\x0D", // Carriage return
"^L": "\x0C", // Form feed
"^G": "\x07", // Bell
"^U": "\x15", // Clear line
"^W": "\x17", // Delete word
"^Y": "\x19", // Paste from kill buffer
"^V": "\x16", // Literal input
"^K": "\x0B", // Kill line
"^E": "\x05", // End of line
"^A": "\x01", // Beginning of line
"^I": "\x09", // Tab
```
While not perfect, it works pretty well. Claude is able to use vim to write a Dockerfile, then run the container in an interactive session, then run commands in the container such as a python REPL.
Installation
Add this MCP to your configuration:
{
"mcpServers": {
"terminal-session": {
// See GitHub repository for configuration
}
}
}See the GitHub repository for full installation instructions.