一个提供有状态且兼容TUI终端会话的MCP工具服务器。
这是一个使用mcp-go的概念验证项目。
与Claude Desktop配合使用效果很好。
克隆仓库并运行make以生成bin/mcpterm。
git clone https://github.com/dwrtz/mcpterm.git
cd mcpterm
make
将mcpterm二进制文件移动到PATH环境变量中的目录。
sudo mv bin/mcpterm /usr/local/bin/mcpterm
编辑你的claude_desktop_config.json(在Mac上位于~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"mcpterm": {
"command": "mcpterm",
"args": []
}
}
}
重启Claude Desktop。现在Claude应该能看到mcpterm提供的两个工具。
run: 在有状态的终端会话中运行命令。例如,如果你cd进入一个目录,后续命令将在该目录中执行。
runScreen: 运行命令或一系列按键,并返回屏幕输出。适用于TUI应用程序,如vim或Python REPL。
你可能希望告诉Claude在使用runScreen工具时使用以下控制序列:
"^X": "\x18", // Ctrl+X
"^O": "\x0F", // Ctrl+O
"^J": "\x0A", // 回车
"^C": "\x03", // Ctrl+C
"^D": "\x04", // Ctrl+D
"^Z": "\x1A", // Ctrl+Z
"^[": "\x1B", // Esc
"^H": "\x08", // 退格
"^M": "\x0D", // 换行
"^L": "\x0C", // 表格换页
"^G": "\x07", // 警报
"^U": "\x15", // 清除行
"^W": "\x17", // 删除单词
"^Y": "\x19", // 从剪贴板粘贴
"^V": "\x16", // 字面输入
"^K": "\x0B", // 杀死行
"^E": "\x05", // 行尾
"^A": "\x01", // 行首
"^I": "\x09", // 制表符
虽然不完美,但效果相当好。Claude能够使用vim编写Dockerfile,然后在一个交互式会话中运行容器,接着在容器中运行命令,如Python REPL。