一个使用Bun、xterm.js和官方MCP SDK管理持久伪终端会话的MCP服务器,这些会话绑定到MCP客户端。与典型的shell执行不同,它提供了一个跨多个命令调用的持续终端环境。
bun install -g mcp-pty
git clone <repository>
cd mcp-pty
bun install
bun link # 注册为全局命令
# 默认执行(stdio模式)
mcp-pty
# HTTP模式
mcp-pty --transport http --port 6420
# 帮助
mcp-pty --help
# stdio模式
bun run packages/mcp-server/src/index.ts
# HTTP模式
bun run packages/mcp-server/src/index.ts --transport http
--transport, --port~/.config/mcp-pty/config.jsonMCP_PTY_DEACTIVATE_RESOURCES~/.config/mcp-pty/config.json(或$XDG_CONFIG_HOME/mcp-pty/config.json):
{
"transport": "stdio",
"port": 6420,
"deactivateResources": false
}
MCP_PTY_DEACTIVATE_RESOURCES=true:启用动态工具供应,适用于不支持资源的客户端。XDG_CONFIG_HOME:XDG配置目录路径(默认:~/.config)pty://status:显示活动会话和PTY进程的服务器状态pty://processes:列出当前会话中的所有PTY进程及其状态和退出码pty://processes/{processId}:特定PTY进程的完整输出历史记录pty://control-codes:所有可用控制码的参考(写入输入工具的命名码)start:创建新的PTY实例,执行命令并设置工作目录
command(字符串,必需),pwd(字符串,必需绝对路径)kill:终止特定的PTY实例
processId(字符串,必需)list:列出PTY进程及其退出码read:读取PTY输出/屏幕缓冲区write_input:向PTY标准输入发送输入,返回屏幕状态
processId,input(可选),ctrlCode(可选),data(可选),asCRLF(可选,针对Windows SSH)# 类型检查
bun check
# 代码检查
bun run lint
# 测试
bun test
此项目由bun init生成于Bun v1.2.22。Bun是一个快速的一体化JavaScript运行时。
使用opencode构建(opencode.ai + github sst/opencode)