mcp-console-automation 是一个基于 Model Context Protocol(MCP)的服务器,用于让 AI 以受控方式驱动本地控制台应用与远程 SSH 会话,并对其进行监控。它定位为“终端应用领域的 Playwright”,强调自动化、测试、监控与后台作业能力。
用途与能力
- 完整终端控制:可创建并管理最多 50 个并发控制台会话,支持本地 shell(cmd、PowerShell、pwsh、bash、zsh、sh)及远程 SSH 连接。
- 交互式输入:支持发送文本输入和特殊按键序列(Enter、Tab、Ctrl+C 等)。
- 实时输出监控:可捕获、过滤和分析控制台输出,支持高级搜索与流式输出,适合长时间运行的进程和模式匹配。
- 自动错误检测:内置跨语言错误模式,能识别错误、异常和堆栈跟踪等。
- 跨平台:在 Windows、macOS 和 Linux 上运行,无需原生依赖。
SSH 与远程连接
- 完整 SSH 支持:密码与基于密钥的认证,支持 passphrase。
- SSH 选项:自定义端口、连接超时、keep-alive 设置。
- 连接档案:保存可复用的 SSH 元数据及环境变量凭据引用。
- 云平台支持:通过保存的档案连接 Azure、AWS、GCP、Kubernetes。
- 容器支持:集成 Docker 与 WSL,适配容器化工作流。
测试自动化框架
- 自动化测试用例:内置断言工具用于控制台输出验证。
- 输出断言:校验输出包含内容、匹配正则或等于期望值。
- 退出码校验:断言命令退出码以判断成功/失败。
- 无错误校验:自动检查命令输出中是否出现错误。
- 状态快照:保存并比较操作前后的会话状态。
- 测试工作流:可链式组合断言,覆盖完整测试场景。
后台作业执行
- 异步命令执行:在后台运行长时间命令并完整捕获输出。
- 优先级队列:按 1-10 级设置作业优先级以优化资源利用。
- 作业监控:跟踪后台作业的状态、进度与完成情况。
- 作业控制:可取消、暂停或恢复后台操作。
- 结果获取:获取已完成作业的完整输出与退出码。
- 资源管理:自动清理已完成作业,保留策略可配置。
企业级监控与告警
- 系统级指标:跟踪 CPU、内存、磁盘与网络使用情况。
- 会话指标:按会话监控性能与资源消耗。
- 实时仪表盘:提供可定制视图的实时监控数据。
- 告警系统:支持性能、错误、安全与异常告警,并带严重级别。
- 自定义监控:按会话配置监控间隔、指标与阈值。
- 诊断:内置错误分析与会话健康校验。
档案管理
- 连接档案:保存 SSH、Docker、WSL 与云平台连接。
- 应用档案:存储常用命令配置(Node.js、Python、.NET、Java、Go、Rust)。
- 快速连接:使用已保存档案即时连接,支持覆盖参数。
- 环境变量:按档案存储环境配置。
- 工作目录管理:为每个档案设置默认目录。
高级输出处理
- 正则过滤:支持区分大小写的正则搜索输出。
- 多模式搜索:以 AND/OR 逻辑组合多个模式。
- 分页:获取指定行范围、头部或尾部输出。
- 基于时间的过滤:按时间戳过滤(绝对时间或相对时间如 '5m'、'1h'、'2d')。
- 输出流:对长时间运行的进程进行实时输出捕获。
- 缓冲区管理:清除输出缓冲区以降低内存占用。
安装与使用 项目说明中提到可通过安装脚本进行安装。Codex 将 MCP 配置存储在 ~/.codex/config.toml,安装器使用 codex mcp add 并安全替换已有的 console-automation 注册;安装后需重启 Codex,并使用 /mcp 验证连接。对其他 MCP 客户端,可生成新的 JSON 配置而不覆盖现有文件。npm 包尚未发布,因此 npx console-automation-mcp 与 @mcp/console-automation 不是有效的安装路径。
安全注意事项 该服务器可执行任意命令并打开远程 SSH 会话,应视为特权终端而非低风险文档连接器:保持 MCP 工具审批用于命令/会话变更;优先使用 SSH 密钥或环境变量凭据引用而非内联密钥;使用受限部署账号并配合独立的生产审批步骤;除非明确需要诊断,保持 MCP_DEBUG_LOG 与 MCP_LOG_DIR 未设置;除非明确需要恢复元数据,保持会话持久化禁用;仅在需要时安装云、容器与串行集成。console_save_profile 拒绝内联密码、私钥材料与 passphrase,应改用 passwordEnvVar、privateKeyEnvVar 或 privateKeyPath 以及 passphraseEnvVar。档案列表响应不会返回凭据值,配置文件在支持 POSIX 模式的操作系统上以仅所有者权限创建。会话持久化默认禁用,因为恢复数据可能包含命令、路径与环境值;如需启用,设置 MCP_SESSION_PERSISTENCE=true,默认文件为 ~/.console-automation-mcp/sessions.json,可通过 MCP_SESSION_PERSISTENCE_PATH 覆盖;持久化的命令/环境恢复数据除非通过程序化 SessionManager 配置启用,否则保持禁用。生产安装器会移除开发与可选协议包,本地控制台与 SSH 仍可用;仅在需要 Docker、云、Kubernetes、串行等可选适配器时安装相应 peer 包。
可用工具(共 40 个) 分为 6 类,包括:会话与输入输出类(console_create_session、console_send_input、console_send_key、console_get_output、console_get_stream、console_wait_for_output、console_stop_session、console_list_sessions、console_cleanup_sessions、console_execute_command、console_detect_errors、console_get_resource_usage、console_clear_output、console_get_session_state、console_get_command_history);监控类(console_get_system_metrics、console_get_session_metrics、console_get_alerts、console_get_monitoring_dashboard、console_start_monitoring、console_stop_monitoring);档案类(console_save_profile、console_list_profiles、console_remove_profile、console_use_profile);后台作业类(console_execute_async、console_get_job_status、console_get_job_output、console_cancel_job、console_list_jobs、console_get_job_progress、console_get_job_result、console_get_job_metrics、console_cleanup_jobs);断言与快照类(console_assert_output、console_assert_exit_code、console_assert_no_errors、console_save_snapshot、console_compare_snapshots、console_assert_state)。
错误检测模式 内置检测常见错误类型:通用错误(error:、ERROR:、Error:)、异常(Exception:、exception)、警告(Warning:、WARNING:)、失败操作、权限/访问被拒绝、堆栈跟踪(Python、Java、Node.js)、编译错误、连接错误。
技术栈与运行要求 使用 Node.js 子进程与 ssh2 实现本地命令执行和 SSH 会话,@modelcontextprotocol/sdk 实现 MCP 协议,TypeScript 提供类型安全,Winston 做结构化日志。核心组件包括 ConsoleManager、ErrorDetector、MCP Server 与会话管理。要求 Node.js >= 18.0.0,支持 Windows、macOS、Linux;可选串口集成可能需要平台构建工具。
适用场景 适合需要在 AI 驱动下自动化控制台操作、执行交互式 CLI 工具的自动化、验证命令输出与退出码的测试、运行长时间后台命令并监控、以及跨本地与远程 SSH 的运维监控等场景。
限制与说明
- 该服务器具备执行任意命令的能力,安全风险高,需要严格的审批与凭据管理。
- 部分应用可能直接写入终端而绕过 stdout,导致输出未被捕获;某些命令需要 TTY 交互。
- 需要确保服务器有权限启动子进程,否则可能遇到权限拒绝错误。
- 关于具体安装脚本名称、更多运行细节与示例,资料中未完整提供,可参考项目文档目录。
- 项目采用 MIT 许可证。