mcp-pty 翻译成中文可以是“多路复用器伪终端”或者根据具体上下文简化为“多路复用伪终端”。不过,这个术语在计算机科学或操作系统领域可能是一个比较专业或特定的术语,具体翻译可能需要根据上下文或专业领域来确定。在这里,我给出了一个较为通用的翻译
一个MCP服务器,它使用Bun、xterm.js和官方MCP SDK来管理绑定到MCP客户端的持久伪终端会话。与典型的shell执行不同,它提供了一个在客户端会话内的多次命令调用之间持续维护的终端环境。
安装
全局安装(推荐)
bun install -g mcp-pty本地开发
git clone
cd mcp-pty
bun install
bun link # Register as global command使用
CLI 命令(推荐)
# Default execution (stdio mode)
mcp-pty
# HTTP mode
mcp-pty --transport http --port 6420
# Help
mcp-pty --help直接执行(开发)
# stdio mode
bun run packages/mcp-server/src/index.ts
# HTTP mode
bun run packages/mcp-server/src/index.ts --transport http配置
配置优先级
- CLI 参数 (最高):
--transport,--port - XDG 配置文件:
~/.config/mcp-pty/config.json - 环境变量:
MCP_PTY_DEACTIVATE_RESOURCES - 默认值stdio 传输,端口 6420
XDG 配置文件
~/.config/mcp-pty/config.json (或者 $XDG_CONFIG_HOME/mcp-pty/config.json):
{
"transport": "stdio",
"port": 6420,
"deactivateResources": false
}传输层
- stdio(标准输入输出)MCP客户端直接将服务器作为子进程运行。确保进程终止时自动清理。客户端与服务器一对一绑定。
- http作为远程MCP服务器运行。支持多个并发客户端会话。基于Hono实现的HTTP服务器。通过服务器发送事件(SSE)进行实时通知。
环境变量
MCP_PTY_DEACTIVATE_RESOURCES=true为不支持资源的客户端启用动态工具配置。XDG_CONFIG_HOMEXDG 配置目录路径(默认:~/.config)
特点/特性
- 持久的伪终端(PTY)会话在多次命令调用中保持连续的终端环境
- 双传输支持stdio 用于 1:1 绑定,HTTP 支持多客户端连接并使用 Server-Sent Events
- 高级命令解析实现命令标准化集成,以准确处理 bash 语法(管道、重定向、环境变量)
- 会话管理基于ULID的会话ID,具备空闲超时和优雅关闭功能
- 基于资源的接口现代MCP资源(pty:// URI)并具备工具模式回退功能
- 全面的文本支持完整的Unicode支持、ANSI转义序列以及TUI(文本用户界面)应用程序
- 交互式输入实时终端状态查询和输入处理
- 重新连接支持HTTP传输在客户端重新连接时保持会话连续性
- 安全命令规范化、路径验证和资源隔离
API 文档
MCP Resources(公司名,可译为“MCP资源公司”或根据具体语境保留原名)
pty://status服务器状态显示活跃会话和PTY(伪终端)进程pty://processes列出当前会话中所有PTY进程的状态和退出代码pty://processes/{processId}特定PTY进程的完整输出历史pty://control-codes所有可用控制代码的参考(为write_input工具命名的代码)
MCP 工具
start创建带有命令执行和工作目录的新PTY实例
- 参数: command (字符串,必填), pwd (字符串,需要绝对路径) - 返回:伪终端(PTY)ID 和即时输出
kill终止特定的PTY实例
- 参数: processId (字符串,必填)
list列出带有退出代码的PTY进程read读取PTY输出/屏幕缓冲区write_input将输入发送到PTY标准输入,返回屏幕状态
- 模式:安全(输入 + 控制代码)或原始(数据) - 参数: processId, input (可选), ctrlCode (可选), data (可选), asCRLF (可选,用于Windows SSH) - 返回值:屏幕、光标位置、退出代码
错误代码
- 使用标准的MCP错误响应。
发展
# Type checking
bun check
# Linting
bun run lint
# Testing
bun test这个项目是使用……生成的 bun init 在 Bun v1.2.22 上。 面包 是一个快速的全功能JavaScript运行时。
功劳/学分
使用开源代码构建(opencode.ai + GitHub sst/opencode)
