console_create_sessionLABSCO SUMMARY
A privileged terminal for an agent, with the assertion tools that make a session testable.
The interesting half is not that it runs commands but that it watches them: pattern waits, error detection across languages, and exit-code assertions turn a shell session into something an agent can verify rather than guess about. It can also open SSH sessions and execute anything, so the maintainers' own guidance is to keep tool approvals on and run it under a restricted account.
What it is
A server with 40 tools over persistent console sessions: create them locally or over SSH, send input, read filtered output, and run long jobs in the background.
What you get
- console_create_session opens a local shell (cmd, PowerShell, pwsh, bash, zsh, sh) or an SSH session, with up to 50 running at once
- console_send_input and console_send_key drive interactive prompts, including ctrl+c and other key sequences
- console_get_output and console_get_stream return filtered, paginated or streamed output; console_wait_for_output blocks until a pattern appears
- console_detect_errors scans output for errors, exceptions and stack traces across languages
- console_execute_async plus console_get_job_status, console_get_job_progress and console_get_job_result run long commands in the background with a priority queue
- console_assert_output, console_assert_exit_code and console_assert_no_errors turn a session into a test; console_save_snapshot and console_compare_snapshots diff state before and after
- console_save_profile stores SSH, Docker, WSL and cloud connections; console_use_profile connects with one call
- console_get_system_metrics and console_get_session_metrics report CPU, memory, disk and network use per system and per session
Requirements
Node.js 18.0.0 or newer, and a clone — there is no npm package for it, so npx is not an install path. Build with npm ci and npm run build, then register the built server with your client. Saved profiles refuse inline secrets: use passwordEnvVar, privateKeyEnvVar or privateKeyPath, and passphraseEnvVar. Session persistence is off unless you set MCP_SESSION_PERSISTENCE.
Setup effort
Build from source — git clone https://github.com/ooples/mcp-console-automation.git
USE CASES
Watching a deploy from inside the conversation
Start the command in the background, poll progress, and pull the full output and exit code when it finishes.
Working through an interactive CLI prompt
Wait for the prompt text to appear, send the answer, then send Enter as a real key.
Finding out why a build failed
Pull the output with a regex filter, then let the error detector pick out the exception and stack trace.
Turning a manual smoke test into a repeatable one
Run the command, assert the output matches and the exit code is right, and assert no errors were logged.
Reconnecting to a box you use every day
Save the SSH connection once with an environment-variable reference for the credential, then connect by profile name.
Proving a change did what you expected
Snapshot the session state before and after, then compare the two.
40 tools
Listed in project docs. Your client may show a different list.
console_send_inputconsole_send_keyconsole_get_outputconsole_get_streamconsole_wait_for_outputconsole_stop_sessionconsole_list_sessionsconsole_cleanup_sessionsconsole_execute_commandconsole_detect_errorsconsole_get_resource_usageconsole_clear_outputconsole_get_session_stateconsole_get_command_historyconsole_get_system_metricsconsole_get_session_metricsconsole_get_alertsconsole_get_monitoring_dashboardconsole_start_monitoringconsole_stop_monitoringconsole_save_profileconsole_list_profilesconsole_remove_profileconsole_use_profileconsole_execute_asyncconsole_get_job_statusconsole_get_job_outputconsole_cancel_jobconsole_list_jobsconsole_get_job_progressconsole_get_job_resultconsole_get_job_metricsconsole_cleanup_jobsconsole_assert_outputconsole_assert_exit_codeconsole_assert_no_errorsconsole_save_snapshotconsole_compare_snapshotsconsole_assert_stateBEFORE YOU INSTALL
What to know first
Tools you get
40 tools named in the project's documentation.
Requires
- Node.js 18.0.0 or newer
- Windows, macOS or Linux
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/ooples/mcp-console-automation.git
cd mcp-console-automation
npm ci
npm run buildMCP Clients
Codex
codex mcp add console-automation --env LOG_LEVEL=warn -- node "$PWD/dist/mcp/server.js"Run it from the clone directory, then restart Codex and use /mcp to verify the connection.
Or let the project's installer register it: ./install.sh --target codex (macOS/Linux) or .\install.ps1 -Target codex (Windows), run in the clone.
Any MCP client
{
"mcpServers": {
"console-automation": {
"command": "node",
"args": [
"<YOUR_PATH_TO_MCP_CONSOLE_AUTOMATION>/dist/mcp/server.js"
],
"env": {
"LOG_LEVEL": "warn"
}
}
}
}<YOUR_PATH_TO_MCP_CONSOLE_AUTOMATION> is the full path of your clone. This is the entry the project's installer writes for other clients; ./install.sh --target custom --custom-path <new-file.json> (or .\install.ps1 -Target custom -CustomPath <new-file.json>) generates it with your paths filled in.