Mcp Console Automation — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Console Automation (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
This server can execute arbitrary commands and open remote SSH sessions. Treat it like a privileged terminal, not a low-risk documentation connector:
MCP_DEBUG_LOG and MCP_LOG_DIR unset unless diagnostics are explicitly required;git clone https://github.com/ooples/mcp-console-automation.git
cd mcp-console-automation
.\install.ps1 -Target codexgit clone https://github.com/ooples/mcp-console-automation.git
cd mcp-console-automation
chmod +x install.sh
./install.sh --target codexgit clone https://github.com/ooples/mcp-console-automation.git
cd mcp-console-automation
npm ci
npm run build
codex mcp add console-automation --env LOG_LEVEL=warn -- node "$PWD/dist/mcp/server.js"Codex stores MCP configuration in ~/.codex/config.toml. The installers use codex mcp add and safely replace an existing console-automation registration. Restart Codex after installation and use /mcp to verify the connection.
For another MCP client, generate a new JSON configuration without overwriting an existing file:
.\install.ps1 -Target custom -CustomPath C:\path\to\new-mcp-config.jsonThe npm package has not been published, so npx console-automation-mcp and @mcp/console-automation are not valid installation paths.
console_save_profile rejects inline passwords, private-key material, and passphrases. Use passwordEnvVar, privateKeyEnvVar or privateKeyPath, and passphraseEnvVar. Profile-list responses never return credential values, and configuration files are created with owner-only permissions where the operating system supports POSIX modes.
Session persistence is disabled by default because session recovery data can include commands, paths, and environment values. To opt in, set MCP_SESSION_PERSISTENCE=true. The default file is ~/.console-automation-mcp/sessions.json; override it with MCP_SESSION_PERSISTENCE_PATH. Persisted command/environment recovery data remains disabled unless enabled through the programmatic SessionManager configuration.
The production installers remove development and optional protocol packages. Local consoles and SSH remain available. Install only the peer packages required for Docker, cloud, Kubernetes, serial, or other optional adapters.
This MCP server provides 40 comprehensive tools organized into 6 categories:
#### 🖥️ Session Management (9 tools)
console_create_session - Create local or SSH console sessionsconsole_send_input - Send text input to sessionsconsole_send_key - Send special keys (Enter, Ctrl+C, etc.)console_get_output - Get filtered/paginated output with advanced searchconsole_get_stream - Stream output from long-running processesconsole_wait_for_output - Wait for specific patternsconsole_stop_session - Stop sessionsconsole_list_sessions - List all active sessionsconsole_cleanup_sessions - Clean up inactive sessions#### ⚡ Command Execution (6 tools)
console_execute_command - Execute commands with output captureconsole_detect_errors - Analyze output for errorsconsole_get_resource_usage - Get system resource statsconsole_clear_output - Clear output buffersconsole_get_session_state - Get session execution stateconsole_get_command_history - View command history#### 📊 Monitoring & Alerts (6 tools)
console_get_system_metrics - Comprehensive system metricsconsole_get_session_metrics - Session-specific metricsconsole_get_alerts - Active monitoring alertsconsole_get_monitoring_dashboard - Real-time dashboard dataconsole_start_monitoring - Start custom monitoringconsole_stop_monitoring - Stop monitoring#### 📁 Profile Management (4 tools)
console_save_profile - Save SSH/app connection profilesconsole_list_profiles - List saved profilesconsole_remove_profile - Remove profilesconsole_use_profile - Quick connect with saved profiles#### 🔄 Background Jobs (9 tools)
console_execute_async - Execute commands asynchronouslyconsole_get_job_status - Check job statusconsole_get_job_output - Get job outputconsole_cancel_job - Cancel running jobsconsole_list_jobs - List all background jobsconsole_get_job_progress - Monitor job progressconsole_get_job_result - Get complete job resultsconsole_get_job_metrics - Job execution statisticsconsole_cleanup_jobs - Clean up completed jobs#### ✅ Test Automation (6 tools)
console_assert_output - Assert output matches criteriaconsole_assert_exit_code - Assert exit codesconsole_assert_no_errors - Verify no errors occurredconsole_save_snapshot - Save session state snapshotsconsole_compare_snapshots - Compare state differencesconsole_assert_state - Assert session state#### Create a Local Session
const session = await console_create_session({
command: "npm",
args: ["run", "dev"],
detectErrors: true
});#### Connect via SSH
const session = await console_create_session({
command: "bash",
consoleType: "ssh",
sshOptions: {
host: "example.com",
username: "user",
privateKeyPath: "~/.ssh/id_rsa"
}
});#### Run Tests with Assertions
const session = await console_create_session({
command: "npm",
args: ["test"]
});
await console_assert_output({
sessionId: session.sessionId,
assertionType: "contains",
expected: "All tests passed"
});#### Background Job Execution
const job = await console_execute_async({
sessionId: session.sessionId,
command: "npm run build",
priority: 8
});
const status = await console_get_job_status({
jobId: job.jobId
});For more examples, see docs/EXAMPLES.md
// Create a session for the dev server
const session = await console_create_session({
command: "npm",
args: ["run", "dev"],
detectErrors: true
});
// Wait for server to start
await console_wait_for_output({
sessionId: session.sessionId,
pattern: "Server running on",
timeout: 10000
});
// Monitor for errors
const errors = await console_detect_errors({
sessionId: session.sessionId
});// Start a Python debugging session
const session = await console_create_session({
command: "python",
args: ["-m", "pdb", "script.py"]
});
// Set a breakpoint
await console_send_input({
sessionId: session.sessionId,
input: "b main\n"
});
// Continue execution
await console_send_input({
sessionId: session.sessionId,
input: "c\n"
});
// Step through code
await console_send_key({
sessionId: session.sessionId,
key: "n"
});// Run tests
const result = await console_execute_command({
command: "pytest",
args: ["tests/"],
timeout: 30000
});
// Check for test failures
const errors = await console_detect_errors({
text: result.output
});
if (errors.hasErrors) {
console.log("Test failures detected:", errors);
}// Start an interactive CLI tool
const session = await console_create_session({
command: "mysql",
args: ["-u", "root", "-p"]
});
// Enter password
await console_wait_for_output({
sessionId: session.sessionId,
pattern: "Enter password:"
});
await console_send_input({
sessionId: session.sessionId,
input: "mypassword\n"
});
// Run SQL commands
await console_send_input({
sessionId: session.sessionId,
input: "SHOW DATABASES;\n"
});The server includes built-in patterns for detecting common error types:
npm install
npm run buildnpm run devnpm testnpm run typechecknpm run lintThe server is built with:
Run static validation, the build, MCP smoke tests, and the test suite:
npm run lint
npm run typecheck
npm run build
npm run test:mcp
npm run test:logger
npm run test:installer
npm run test:package
npm testContributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)MIT License - see LICENSE file for details
For issues, questions, or suggestions, please open an issue on GitHub: https://github.com/ooples/mcp-console-automation/issues
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.