MCP 控制台自动化服务器是一个生产就绪的模型上下文协议(MCP)服务器,它使 AI 助手能够与控制台应用程序进行全面交互,监控输出、检测错误并自动化终端工作流程,其工作方式类似于 Playwright 对 Web 浏览器的支持。
MCP 控制台自动化服务器为 AI 助手与控制台应用程序的交互提供了强大支持。以下是快速开始使用该服务器的步骤。
git clone https://github.com/ooples/mcp-console-automation.git
cd mcp-console-automation
.\install.ps1 -Target claude # 或者选择 google、openai、custom、all
git clone https://github.com/ooples/mcp-console-automation.git
cd mcp-console-automation
chmod +x install.sh
./install.sh --target claude # 或者选择 google、openai、custom、all
git clone https://github.com/ooples/mcp-console-automation.git
cd mcp-console-automation
npm install --production
npm run build
将以下内容添加到 Claude Desktop 配置文件中:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.json~/.config/Claude/claude_desktop_config.json{
"mcpServers": {
"console-automation": {
"command": "npx",
"args": ["@mcp/console-automation"],
"env": {
"LOG_LEVEL": "info"
}
}
}
}
# 启动服务器
mcp-console --log-level info
# 或者使用 npx
npx @mcp/console-automation --log-level info
console_create_session创建一个新的控制台会话以运行命令。 参数:
command(必需):要执行的命令args:命令参数数组cwd:工作目录env:环境变量对象detectErrors:启用自动错误检测(默认值:true)timeout:会话超时时间(毫秒)示例:
{
"command": "python",
"args": ["script.py"],
"cwd": "/path/to/project",
"detectErrors": true
}
console_send_input向活动的控制台会话发送文本输入。 参数:
sessionId(必需):会话 IDinput(必需):要发送的文本console_send_key向控制台会话发送特殊键序列。 参数:
sessionId(必需):会话 IDkey(必需):要发送的键(如 enter、tab、up、down、ctrl+c、escape 等)console_get_output从控制台会话中检索输出。 参数:
sessionId(必需):会话 IDlimit:要返回的最大输出行数console_wait_for_output等待控制台中出现特定的输出模式。 参数:
sessionId(必需):会话 IDpattern(必需):要等待的正则表达式模式timeout:超时时间(毫秒,默认值:5000)console_execute_command执行命令并等待完成。 参数:
command(必需):要执行的命令args:命令参数cwd:工作目录env:环境变量timeout:执行超时时间console_detect_errors分析控制台输出中的错误和异常。 参数:
sessionId:要分析的会话 IDtext:要分析的直接文本(如果不使用会话)console_stop_session停止活动的控制台会话。 参数:
sessionId(必需):要停止的会话 IDconsole_list_sessions列出所有活动的控制台会话。
console_resize_session调整会话的终端尺寸。 参数:
sessionId(必需):会话 IDcols(必需):列数rows(必需):行数console_clear_output清除会话的输出缓冲区。 参数:
sessionId(必需):会话 ID// 为开发服务器创建一个会话
const session = await console_create_session({
command: "npm",
args: ["run", "dev"],
detectErrors: true
});
// 等待服务器启动
await console_wait_for_output({
sessionId: session.sessionId,
pattern: "Server running on",
timeout: 10000
});
// 监控错误
const errors = await console_detect_errors({
sessionId: session.sessionId
});
// 启动 Python 调试会话
const session = await console_create_session({
command: "python",
args: ["-m", "pdb", "script.py"]
});
// 设置断点
await console_send_input({
sessionId: session.sessionId,
input: "b main\n"
});
// 继续执行
await console_send_input({
sessionId: session.sessionId,
input: "c\n"
});
// 单步执行代码
await console_send_key({
sessionId: session.sessionId,
key: "n"
});
// 运行测试
const result = await console_execute_command({
command: "pytest",
args: ["tests/"],
timeout: 30000
});
// 检查测试失败情况
const errors = await console_detect_errors({
text: result.output
});
if (errors.hasErrors) {
console.log("检测到测试失败:", errors);
}
// 启动交互式 CLI 工具
const session = await console_create_session({
command: "mysql",
args: ["-u", "root", "-p"]
});
// 输入密码
await console_wait_for_output({
sessionId: session.sessionId,
pattern: "Enter password:"
});
await console_send_input({
sessionId: session.sessionId,
input: "mypassword\n"
});
// 运行 SQL 命令
await console_send_input({
sessionId: session.sessionId,
input: "SHOW DATABASES;\n"
});
服务器内置了用于检测常见错误类型的模式:
npm install
npm run build
npm run dev
npm test
npm run typecheck
npm run lint
服务器采用以下技术构建:
运行包含的测试套件以验证功能:
node test-functionality.js
欢迎贡献代码!请随时提交拉取请求。
git checkout -b feature/AmazingFeature)git commit -m '添加一些惊人的功能')git push origin feature/AmazingFeature)此服务器已完全准备好投入生产,具备以下特性:
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。
如有问题、疑问或建议,请在 GitHub 上创建一个问题: https://github.com/yourusername/mcp-console-automation/issues