返回市场
终端-mcp

终端-mcp

作者:ianks7 星标更新:2025-06-30

项目介绍

terminal-mcp

用于 Unix pty 控制的 原生 mcp 服务器。

功能概述

提供给 AI 模型真实的终端访问权限的 mcp 服务器。创建会话、运行命令、读取输出。仅此而已。

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

特性

  • 真正的 pty 不是 AppleScript 的小技巧,而是真实的 Unix 终端
  • 异步一切 使用 Tokio 驱动的非阻塞 I/O
  • 智能缓冲 只有新输出,无重复内容
  • 会话持久化 终端在调用之间保持存活
  • 多会话支持 同时运行多个终端并切换它们

概念

  • 会话:命名的终端实例(bashpythonssh
  • 工具:AI 调用的 mcp 协议端点
  • pty:伪终端,用于正确的 shell 交互
  • 管理器:生命周期和清理自动化

工具

  • create_session:创建新的终端
  • execute_command:运行命令并立即获取输出
  • execute_command_async:启动长时间运行的命令
  • read_streaming_output:轮询异步命令进度
  • list_sessions:查看正在运行的内容
  • destroy_session:完成时清理
  • send_control_character:发送控制字符(如 Ctrl-C)

配置

Claude 代码:

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

开发

cargo test -- --nocapture           # 查看测试输出
RUST_LOG=debug cargo run            # 详细日志
cargo clippy                        # 代码检查
cargo fmt                           # 格式化代码

架构

mcp API 层(json-rpc)
    ↓
会话管理器(生命周期)
    ↓
pty 引擎(pty-process)
    ↓
Unix pty(内核)

哲学

AI 可以像人类一样与计算机互动。 没有抽象层。只有 shell。

许可证

MIT