HT MCP服务器
用于与HT(无头终端)会话交互的模型上下文协议(MCP)服务器。这允许AI助手通过HT接口以编程方式控制终端应用程序并与之交互。
HT是什么?
高温 是Andy Konwinski的一个项目,是这个项目背后的真正魔力。它使用VT100风格的终端接口封装任何二进制文件,并允许通过JSON命令进行编程访问。此MCP服务器为AI助手创建HT会话、发送命令和捕获终端输出提供了一个干净的界面。
先决条件
- HT(无头端子) 已安装并在PATH中可用
- Node.js 18+
- TypeScript
安装
# Clone and setup
git clone
cd ht-mcp-server
# Install dependencies
npm install
# Build the project
npm run build用法
运行MCP服务器
# Start the MCP server
npm start
# Or run in development mode
npm run dev可用工具
服务器提供以下MCP工具:
ht_create_session
创建新的HT会话。
- 参数:
- command (可选):命令参数数组(默认值: ["bash"])
- 退货:用于其他工具的会话ID
ht_send_keys
向HT会话发送密钥。
- 参数:
- sessionId:HT会话ID - keys:要发送的键/文本数组(支持“Enter”、“Down”、“^c”等特殊键)
ht_take_snapshot
拍摄当前终端状态的快照。
- 参数:
- sessionId:HT会话ID
- 退货:当前终端内容为文本
ht_execute_command
执行命令并返回输出(便利方法)。
- 参数:
- sessionId:HT会话ID - command:要执行的命令
- 退货:命令执行后的终端输出
ht_list_sessions
列出所有活动的HT会话。
- 退货:包含元数据的活动会话列表
ht_close_session
关闭HT会话并清理资源。
- 参数:
- sessionId:要关闭的HT会话ID
工作流示例
以下是人工智能助手如何使用这些工具进行自动化 npm create vite:
// 1. Create a new HT session
const session = await ht_create_session({});
// 2. Navigate to a working directory
await ht_execute_command({
sessionId: session.sessionId,
command: "cd /tmp && mkdir vite-test && cd vite-test"
});
// 3. Start npm create vite
await ht_send_keys({
sessionId: session.sessionId,
keys: ["npm create vite@latest my-app"]
});
await ht_send_keys({
sessionId: session.sessionId,
keys: ["Enter"]
});
// 4. Wait and check what prompts appeared
const snapshot = await ht_take_snapshot({
sessionId: session.sessionId
});
// 5. Respond to prompts based on snapshot content
if (snapshot.snapshot.includes("framework")) {
await ht_send_keys({
sessionId: session.sessionId,
keys: ["Enter"] // Select default framework
});
}
// 6. Continue responding to prompts...
await ht_send_keys({
sessionId: session.sessionId,
keys: ["Down"] // Navigate to TypeScript variant
});
await ht_send_keys({
sessionId: session.sessionId,
keys: ["Enter"] // Select TypeScript
});
// 7. Verify the project was created
const result = await ht_execute_command({
sessionId: session.sessionId,
command: "ls -la"
});
// 8. Clean up
await ht_close_session({
sessionId: session.sessionId
});主要特点
- 会话管理:创建和管理多个HT会话
- 交互式命令:处理交互式CLI工具,如
npm create,git等等。 - 终端快照:捕获终端状态以了解发生了什么
- 特殊密钥支持:发送箭头键、Ctrl组合、Enter等。
- 错误处理:强大的错误处理和会话清理
与AI助手集成
此MCP服务器使AI助手能够:
- 自动化复杂的交互式CLI工作流
- 通过拍摄快照调试终端应用程序
- 处理需要用户输入的多步骤流程
- 使用任何具有交互式提示的CLI工具
发展
# Build
npm run build
# Development mode with hot reload
npm run dev
# Lint
npm run lint
# Clean build artifacts
npm run clean故障排除
- 未找到HT:确保HT已安装并位于PATH中
- 会话超时:增加慢速命令的超时值
- 非JSON输出:该服务会自动过滤掉非JSON行
- 流程清理:服务器关闭时会自动清理会话
许可证
国际协调委员会
