终端控制服务

一个为AI模型提供真实终端访问的Unix PTY控制服务,支持创建会话、运行命令和读取输出。

  • by ianks
  • Rust
  • 本地部署
  • 12 星标
  • 更新于
在 GitHub 查看 ianks/terminal-mcp

使用说明

终端mcp

本地的 用于unix pty控制的mcp服务器。

什么

mcp服务器为ai模型提供真实的终端访问。生成会话、运行命令、读取输出。就这样

{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "create_session",
    "arguments": {
      "session_name": "prod-debug",
      "command": "ssh prod.server"
    }
  }
}

特征

  • 真正的ptys 不是appescript黑客,真正的unix终端
  • 异步一切 东京供电的无阻塞输入/输出
  • 智能缓冲 只有新输出,没有重复
  • 会话保持 终端在通话之间保持活动状态
  • 多会话支持 同时运行多个终端并在它们之间切换

概念

  • 会话:命名终端实例(bash, python, ssh)
  • 工具:mcp协议终结ai调用
  • 伪终端:用于正确外壳交互的伪终端
  • 经理:生命周期和清理自动化

工具

  • create_session:生成一个新终端
  • execute_command:运行并立即获取输出
  • execute_command_async:启动长时间运行的命令
  • read_streaming_output:轮询异步命令进度
  • list_sessions:看看有什么在运行
  • destroy_session:完成后进行清理
  • send_control_character:ctrl-c和朋友

配置

克劳德代码:

cargo install --git https://github.com/ianks/terminal-mcp
claude mcp add --scope user terminal-mcp

开发

cargo test -- --nocapture           # see test output
RUST_LOG=debug cargo run            # verbose logging
cargo clippy                        # lint
cargo fmt                           # format

建筑

mcp api layer (json-rpc)
    ↓
session manager (lifecycle)
    ↓
pty engine (pty-process)
    ↓
unix ptys (kernel)

哲学

人工智能可以像人类一样与计算机交互。 没有抽象。只是贝壳。

许可证

麻省理工学院