Production-Ready Model Context Protocol (MCP) server that enables AI assistants to fully interact with console applications, monitor output, detect errors, and automate terminal workflows - similar to how Playwright works for web browsers. This server is fully production-ready with: - ✅ No native compilation required (removed node-pty dependency) - ✅ Full cross-platform support (Windows, macOS, Li
Add this skill
npx mdskills install ooples/mcp-console-automationComprehensive terminal automation with 40 tools, SSH support, and monitoring capabilities
Production-Ready Model Context Protocol (MCP) server that enables AI assistants to fully interact with console applications, monitor output, detect errors, and automate terminal workflows - similar to how Playwright works for web browsers.
This server is fully production-ready with:
git clone https://github.com/ooples/console-automation-mcp.git
cd console-automation-mcp
.\install.ps1 -Target claude # or google, openai, custom, all
git clone https://github.com/ooples/console-automation-mcp.git
cd console-automation-mcp
chmod +x install.sh
./install.sh --target claude # or google, openai, custom, all
git clone https://github.com/ooples/console-automation-mcp.git
cd console-automation-mcp
npm install --production
npm run build
Add to your Claude Desktop configuration file:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"console-automation": {
"command": "npx",
"args": ["@mcp/console-automation"],
"env": {
"LOG_LEVEL": "info"
}
}
}
}
# Start the server with new name
console-automation-mcp --log-level info
# Or with backward compatible name
mcp-console --log-level info
# Or with npx
npx console-automation-mcp --log-level info
This MCP server provides 40 comprehensive tools organized into 6 categories:
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 sessionsconsole_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 historyconsole_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 monitoringconsole_save_profile - Save SSH/app connection profilesconsole_list_profiles - List saved profilesconsole_remove_profile - Remove profilesconsole_use_profile - Quick connect with saved profilesconsole_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 jobsconsole_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 stateconst session = await console_create_session({
command: "npm",
args: ["run", "dev"],
detectErrors: true
});
const session = await console_create_session({
command: "bash",
consoleType: "ssh",
sshOptions: {
host: "example.com",
username: "user",
privateKeyPath: "~/.ssh/id_rsa"
}
});
const session = await console_create_session({
command: "npm",
args: ["test"]
});
await console_assert_output({
sessionId: session.sessionId,
assertionType: "contains",
expected: "All tests passed"
});
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 build
npm run dev
npm test
npm run typecheck
npm run lint
The server is built with:
Run the included test suite to verify functionality:
node test-functionality.js
Contributions 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/console-automation-mcp/issues
Install via CLI
npx mdskills install ooples/mcp-console-automationConsole Automation MCP Server is a free, open-source AI agent skill. Production-Ready Model Context Protocol (MCP) server that enables AI assistants to fully interact with console applications, monitor output, detect errors, and automate terminal workflows - similar to how Playwright works for web browsers. This server is fully production-ready with: - ✅ No native compilation required (removed node-pty dependency) - ✅ Full cross-platform support (Windows, macOS, Li
Install Console Automation MCP Server with a single command:
npx mdskills install ooples/mcp-console-automationThis downloads the skill files into your project and your AI agent picks them up automatically.
Console Automation MCP Server works with Claude Code, Claude Desktop, Cursor, Vscode Copilot, Windsurf, Continue Dev, Gemini Cli, Amp, Roo Code, Goose. Skills use the open SKILL.md format which is compatible with any AI coding agent that reads markdown instructions.