Console AutomationBLOCK
MCP server for AI-driven console application automation and monitoring
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Model Context Protocol (MCP) server for controlled interaction with local console applications and remote SSH sessions, including output monitoring, error detection, and long-running workflows.
[](https://github.com/ooples/mcp-console-automation) [](LICENSE) [](https://nodejs.org)
Security status
This server can execute arbitrary commands and open remote SSH sessions. Treat it like a privileged terminal, not a low-risk documentation connector:
- keep MCP tool approvals enabled for command/session mutations;
- prefer SSH keys or environment-variable credential references over inline secrets;
- use a restricted deployment account and a separate production approval step;
- leave
MCP_DEBUG_LOGandMCP_LOG_DIRunset unless diagnostics are explicitly required; - leave session persistence disabled unless recovery metadata is explicitly required;
- install cloud, container, and serial integrations only when needed.
Features
🚀 Core Capabilities
- Full Terminal Control: Create and manage up to 50 concurrent console sessions
- Multi-Protocol Support: Local shells (cmd, PowerShell, pwsh, bash, zsh, sh) and remote SSH connections
- Interactive Input: Send text input and special key sequences (Enter, Tab, Ctrl+C, etc.)
- Real-time Output Monitoring: Capture, filter, and analyze console output with advanced search
- Streaming Support: Efficient streaming for long-running processes with pattern matching
- Automatic Error Detection: Built-in patterns to detect errors, exceptions, and stack traces across languages
- Cross-platform: Works on Windows, macOS, and Linux without native dependencies
🔐 SSH & Remote Connections
- Full SSH Support: Password and key-based authentication with passphrase support
a3b00c36df3eOBSERVED · 2026-10-08Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add console-automation-mcp --env AUDIT_ENCRYPTION_KEY=${AUDIT_ENCRYPTION_KEY} --env AZURE_CLIENT_SECRET=${AZURE_CLIENT_SECRET} --env AZURE_KEY_VAULT_URL=${AZURE_KEY_VAULT_URL} --env AZURE_SECRET_NAME=${AZURE_SECRET_NAME} -- npx -y [email protected]{
"mcpServers": {
"console-automation-mcp": {
"command": "npx",
"args": [
"-y",
"[email protected]"
],
"env": {
"AUDIT_ENCRYPTION_KEY": "${AUDIT_ENCRYPTION_KEY}",
"AZURE_CLIENT_SECRET": "${AZURE_CLIENT_SECRET}",
"AZURE_KEY_VAULT_URL": "${AZURE_KEY_VAULT_URL}",
"AZURE_SECRET_NAME": "${AZURE_SECRET_NAME}"
}
}
}
}Exposed tools (54)
38 read · 12 write · 4 destructive. Blast radius: 4 tools can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
check_ssh_connectivity | read | Verify SSH service availability and network connectivity |
cleanup_resources | read | Clean up unused resources |
console_assert_exit_code | read | Assert that session exit code matches expected value |
console_assert_no_errors | read | Assert that session output contains no error messages |
console_assert_output | read | Assert that session output matches expected criteria |
console_assert_state | read | Assert that session state matches expected values |
console_cancel_job | read | Cancel a running background job |
console_cleanup_jobs | read | Clean up completed background jobs |
console_cleanup_sessions | read | Clean up inactive or stuck sessions |
console_clear_output | destructive | Clear the output buffer for a session |
console_compare_snapshots | read | Compare two session snapshots and show differences |
console_create_session | write | Create a new console session for running a command |
console_detect_errors | read | Analyze console output for errors and exceptions |
console_execute_async | write | Execute a command in background (async mode) |
console_execute_command | write | Execute a command in an existing session or create a new one-off session |
console_get_alerts | read | Get current monitoring alerts including performance, error, security, and anomaly alerts |
console_get_command_history | read | Get the command execution history for a session |
console_get_job_metrics | read | Get metrics and statistics about background job execution |
console_get_job_output | read | Get output from a background job |
console_get_job_progress | read | Get progress information for a background job |
console_get_job_result | read | Get the complete result of a background job |
console_get_job_status | read | Get the status of a background job |
console_get_monitoring_dashboard | read | Get real-time monitoring dashboard data with metrics, alerts, and system status |
console_get_output | read | Get output from a console session with server-side filtering, pagination, and search capabilities |
console_get_resource_usage | read | Get resource usage statistics for all sessions |
console_get_session_metrics | read | Get detailed metrics for a specific console session |
console_get_session_state | read | Get the execution state of a console session |
console_get_stream | read | Get streaming output from a long-running console session |
console_get_system_metrics | read | Get comprehensive system monitoring metrics including CPU, memory, disk, and network usage |
console_list_jobs | read | List background jobs for a session or all sessions |
console_list_profiles | read | List all saved connection and application profiles |
console_list_sessions | read | List all active console sessions |
console_remove_profile | destructive | Remove a saved profile |
console_save_profile | write | Save a connection or application profile for reuse |
console_save_snapshot | write | Save a snapshot of current session state |
console_send_input | write | Send text input to a console session |
console_send_key | write | Send special key sequences to a console session |
console_start_monitoring | write | Start monitoring for a specific session with custom monitoring options |
console_stop_monitoring | write | Stop monitoring for a specific session |
console_stop_session | write | Stop a console session |
console_use_profile | write | Create a session using a saved profile |
console_wait_for_output | read | Wait for specific output pattern in console |
flush_dns | destructive | Clear DNS cache |
minimal_mode | read | Switch to minimal resource mode |
network_degradation | read | Switch to degraded network mode |
ping_host | read | Test network connectivity to target host |
prompt_reauth | read | Prompt for re-authentication |
recreate_ssh_connection | write | Create new SSH connection with fresh authentication |
reduce_memory_usage | read | Reduce memory consumption |
refresh_credentials | read | Attempt credential refresh |
reset_network_stack | destructive | Reset network connection |
retry_ssh_connection | read | Retry SSH connection with same credentials |
ssh_degraded_mode | read | Switch to SSH degraded mode with increased timeouts |
us-central1-a | read | us-central1-a |
Trust audit
BLOCKgrade F · trust 44/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | FAIL |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (10 observation(s))
- Network
- declared (8 observation(s))
- Shell
- declared (9 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
yaml.load(content);
inventory = { ...inventory, ...(yaml.load(content) as any) };const config = yaml.load(this.connectionOptions.kubeconfig) as any;
return yaml.load(content);
const func = new Function('value', rule.value as string);const func = new Function('item', 'index', `return ${mappingFunction}`);const func = new Function('item', 'index', `return ${filterFunction}`);const func = new Function(
exec(command, (error, stdout) => {rejectUnauthorized: false, // Allow self-signed certificates
rejectUnauthorized: false,
this.logger.debug(`Azure token refreshed for session: ${sessionId}`);this.logger.debug(`[SSH-ATTEMPT] Has password: ${!!options.password}`);this.logger.warn(`Failed to clean up temp password file: ${error}`);this.logger.info(`Token refreshed for session: ${sessionId}`);this.logger.debug(`Failed to remove password file: ${error}`);password: 'super-secure-password'
apiKey: 'projects/my-project/secrets/api-key/versions/latest'
password: 'password-must-not-appear',
password: 'persisted-password-must-not-appear',
private_key: '-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n',
targetVmPrivateKey: `-----BEGIN OPENSSH PRIVATE KEY-----
console_clear_output, console_remove_profile, flush_dns, reset_network_stack
.commitlintrc.json
.release-please-manifest.json
Gates applied: no_behavioural_pass.
a3b00c36df3efull audit observations/trust-audit/mcp-server/ooples__console-automation.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | a3b00c36df3e | BLOCK | F | 44 | first audit |
Questions
What is the Console Automation MCP server?
MCP server for AI-driven console application automation and monitoring
What tools does Console Automation expose?
54 in total: 38 read-only, 12 that write, and 4 that can delete or overwrite (console_clear_output, console_remove_profile, flush_dns, reset_network_stack). Every one is listed on this page with its risk.
Is Console Automation safe to connect to an agent?
No — not without reading the findings first. The audit graded it F (44/100) and found 11 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 4 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does Console Automation need?
It reads AUDIT_ENCRYPTION_KEY, AZURE_CLIENT_SECRET, AZURE_KEY_VAULT_URL, AZURE_SECRET_NAME, PGPASSWORD, SSH_AUTH_SOCK, SSH_PASSWORD, SSH_TEST_KEY and SSH_TEST_PASS from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does Console Automation run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as console-automation-mcp at 1.1.5.
How current is this page?
The grade is for one exact copy of the source (a3b00c36df3e), read on 2026-10-08. The repository is watched and re-audited when it changes.