- Home
- MCP servers
- Interactive Terminal
Interactive Terminal
- typescript
3
GitHub Stars
typescript
Language
5 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"wangyihang-interactive-terminal-mcp": {
"command": "uvx",
"args": [
"interactive-terminal-mcp"
]
}
}
}This MCP server provides stateful, interactive terminal access, enabling you to spawn persistent processes, maintain session context, and interact with shells through standard input and output. It is ideal for remote management and debugging workflows that require continuity across commands.
How to use
You interact with the Interactive Terminal MCP through an MCP client. Start a local session, spawn a child process, and send commands to that running session. You can drive interactive tools like shells or debuggers, and the server will preserve environment, working directory, and process state across inputs. Use the following practical patterns to accomplish common tasks:
How to install
Prerequisites: ensure your environment can run the MCP client and you have the ability to execute the provided MCP command. You will use a runtime command to start the server via the MCP client. The recommended runtime from the example is to run the MCP client with the interactive-terminal-mcp configuration.
# Start the Interactive Terminal MCP using the MCP client
uvx interactive-terminal-mcp
Configuration and usage notes
You can integrate this server with Claude Code by registering the MCP using the provided transport and command. The standard runtime shown is to invoke the MCP as: uvx interactive-terminal-mcp.
If you need to reference the full interaction history for a session, you can retrieve it via the session history resource: cli://{session_id}/history.
Session and tool usage overview
The following core actions are available to manage interactive sessions:
-
Start a new interactive process with
spawn_processby providing a command to run, for examplebashorpython3 -i. The server returns asession_idthat you will use for subsequent commands. -
Send input to a session with
send_command, optionally waiting for a specific output pattern to indicate readiness. You provide thesession_id, the input command, and an optionalwait_forregex plus an optional timeout. -
Read pending output from a session with
read_bufferwithout sending new input, using thesession_id. -
Terminate a session with
kill_sessionusing thesession_id.
Troubleshooting and best practices
Security: this tool provides full terminal access with the same permissions as the MCP server. Use only in trusted environments or sandboxed containers.
Best practice is to isolate interactive sessions per task and explicitly terminate sessions when your work is complete to avoid leaking resources.
Resources and history access
Full session histories are accessible via a dedicated history endpoint for auditing and replay purposes.
Available tools
spawn_process
Starts a new interactive process by providing the command to run (e.g., ["bash"] or ["python3", "-i"]). Returns a session_id string.
send_command
Sends input to an active session and waits for output. Requires session_id, cmd, and optional wait_for regex and timeout.
read_buffer
Reads pending output from the session buffer without sending new commands. Requires session_id.
kill_session
Terminates a specific session using its session_id.