About mcpterm
mcpterm is a proof-of-concept MCP server for stateful terminal sessions, aimed at clients such as Claude Desktop. It supports both command execution and screen-oriented interaction with TUI programs.
Key features
- 01Stateful command execution
- 02TUI command and keystroke interaction
- 03Returns terminal screen output
Use cases
- 01Run successive commands in a retained directory
- 02Interact with vim or a Python REPL
MCP support
Exposes two terminal tools to MCP clients: `run` for stateful commands and `runScreen` for commands or keystrokes with screen output.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEmcpterm
An MCP tool server that provides stateful, TUI-compatible terminal sessions.
This is a proof-of-concept using 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):
{
"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:
"^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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.