Token导航 LogoToken导航

MCP Server · 开发工具

Interactive Shell MCP

提供持久化终端会话的MCP服务器,支持TUI应用渲染、交互式提示导航和屏幕内容读取,适用于AI代理的交互式命令行操作。

未说明官方级别未说明来源级核验工具 9
开发工具JavaScriptClaudeCursor

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
lightos
提供方
lightos

工具数量

9

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

4

仓库热度

收录来源

2 个

MCP World

选型结论

Interactive Shell MCP 属于开发工具类 MCP Server,公开资料标注 9 个工具,通过传输方式未标注接入,适配 Claude、Cursor,没有现成的安装命令;接入前要先准备 会话凭据。

分类

开发工具

传输方式

未说明

认证方式

会话凭据

部署方式

仅本地运行

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 9 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

交互式外壳MCP

MCP服务器,用于支持TUI的交互式shell会话。为AI代理提供持久终端、交互式提示导航、渲染屏幕阅读和输出搜索。

演示

无MCP有MCP
*“htop是交互式的,无法运行”**启动htop,读取屏幕,提取过程数据(2倍速度)*

为什么存在

大多数AI编码工具独立运行shell命令:每个命令都会启动一个新的shell,交互式提示是不可能的,TUI应用程序只会转储原始转义码。此MCP服务器通过虚拟终端仿真器提供持久的PTY会话(@xterm/headless)因此,代理可以维护shell状态,使用箭头键导航交互式提示,并将渲染的终端屏幕读取为干净的文本。

三种输出模式:

模式最适合你得到什么
流媒体常规命令(ls、git、npm)原始顺序输出,读取后清除
快照实时更新应用程序(顶部,htop)当前终端缓冲区尾部
屏幕TUI应用程序、提示、任何可视化内容渲染的2D文本网格(人类看到的)

快速开始

git clone https://github.com/lightos/interactive-shell-mcp.git
cd interactive-shell-mcp
npm install && npm run build
claude mcp add interactive-shell node dist/src/server.js

然后问克劳德: *“监视htop并告诉我哪些CPU使用最多”*

特性

  • 通过TUI应用程序读取渲染屏幕 @xterm/headless
  • waitForIdle 在所有阅读工具中(不再在睡眠中猜测)
  • 使用文本和正则表达式模式匹配进行屏幕搜索
  • 基于行/列坐标的矩形区域提取
  • Shell别名:bash、zsh、fish、sh、dash、ksh、powershell.exe、pwsh、cmd.exe
  • 空闲10分钟后自动清理,进程退出后60秒检测退出代码
  • 跨平台:Unix/Linux/macOS+Windows

用例

  • 交互式脚手架和迁移: npx create-next-app, drizzle-kit push, prisma migrate, npm init,或任何基于查询器/clack的CLI
  • 系统监控: htop, btop, top, iftop, duf 具有过程搜索和区域提取功能
  • DevOps TUI: lazydocker, lazygit, k9s, terraform console
  • 远程会话: ssh 进入服务器,包括通过SSH嵌套的TUI应用程序
  • 数据库CLIs: psql, mysql, redis-cli, mongosh 在交互模式下
  • 网络工具: netcat/ncat, nmap, airodump-ng, tcpdump
  • REPL和调试器: python, node, irb, gdb/lldb
  • 文本编辑器: vim, nano, emacs -nw

MCP配置

克劳德代码(CLI)

claude mcp add interactive-shell node /path/to/interactive-shell-mcp/dist/src/server.js

克劳德桌面

增添 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "interactive-shell": {
      "command": "node",
      "args": ["/path/to/interactive-shell-mcp/dist/src/server.js"]
    }
  }
}

VS代码/光标

添加到MCP设置(.vscode/mcp.json 或 ~/.cursor/mcp.json):

{
  "mcpServers": {
    "interactive-shell": {
      "command": "node",
      "args": ["/path/to/interactive-shell-mcp/dist/src/server.js"]
    }
  }
}

工具参考

start_shell_session

使用虚拟终端模拟器生成一个新的PTY shell。

参数类型必填说明
colsnumberno终端列(默认值:120,最大值:500)
rowsnumberno终端行(默认值:40,最大值:200)
shellstringno要使用的Shell(默认值: $SHELL 或 bash)
cwdstringno工作目录(默认:服务器cwd)

退货 { sessionId, cols, rows }

send_shell_input

将输入写入PTY。默认情况下附加回车符。

参数类型必填说明
sessionIdstringyes会话ID
inputstringyes要发送的文本。原始模式: \x1b[A (向上), \x1b[B (向下), \r (输入)
rawbooleanno发送时不附加CR。解析转义序列。(默认值:false)

read_shell_output

读取PTY的输出。三种模式:流媒体(默认)、快照、屏幕。

参数类型必填说明
sessionIdstringyes会话ID
modestring否"streaming", "snapshot",或 "screen"
waitForIdlenumberno读取前等待N毫秒的静默(最大值:5000毫秒)
maxBytesnumberno流模式的最大字节数(默认值:100KB)
snapshotSizenumberno快照缓冲区大小(默认值:50KB)
rowsnumberno屏幕模式:起始行(从0开始)
rowEndnumberno屏幕模式:结束行(独占)
includeEmptybooleanno屏幕模式:包括尾随空行(默认值:true)
trimWhitespacebooleanno屏幕模式:每行修剪尾随空格(默认值:false)

屏幕模式返回元数据中的光标位置、终端尺寸和备用缓冲区状态。

get_screen_region

从屏幕的矩形区域提取文本。

参数类型必填说明
sessionIdstringyes会话ID
startRownumberyes起始行(从0开始,包括0)
startColnumberyes起始列(从0开始,包括0)
endRownumberyes结束行(不包括)
endColnumberyes结束列(不包括)
trimWhitespacebooleanno修剪每行尾随空格(默认值:false)
waitForIdlenumberno读取前等待N毫秒的静默(最大值:5000毫秒)

get_screen_cursor

获取光标位置和当前行文本。

参数类型必填说明
sessionIdstringyes会话ID
waitForIdlenumberno读取前等待N毫秒的静默(最大值:5000毫秒)

退货 { cursor: { x, y }, currentLine, isAlternateBuffer }

search_screen

在终端屏幕上搜索文本或正则表达式。最多返回50场比赛。

参数类型必填说明
sessionIdstringyes会话ID
patternstringyes文本或正则表达式模式
regexbooleanno将模式视为正则表达式(默认值:false)
waitForIdlenumberno读取前等待N毫秒的静默(最大值:5000毫秒)

退货 { results: [{ row, col, text }], count }

list_sessions

列出所有具有元数据的活动会话。没有参数。

退货 { sessions: [{ sessionId, shell, cols, rows, isAlternateBuffer, idleSeconds }] }

resize_shell

调整活动会话的终端大小。

参数类型必填说明
sessionIdstringyes会话ID
colsnumberyes新列(1-500)
rowsnumberyes新行(1-200)

end_shell_session

关闭PTY并清理资源。

参数类型必填说明
sessionIdstringyes会话ID

用法示例

这些显示了构建集成的开发人员的MCP工具调用模式。最终用户只是自然地与他们的AI代理交谈。

阅读TUI应用程序

await send_shell_input(sessionId, "htop");
const { output, metadata } = await read_shell_output(sessionId, {
  mode: "screen",
  waitForIdle: 500
});
// output: rendered htop as clean text (CPU bars, process table, etc.)
// metadata.isAlternateBuffer: true (htop uses alternate screen)

// Extract just the process list (rows 6-30)
const processes = await get_screen_region(sessionId, {
  startRow: 6, startCol: 0, endRow: 30, endCol: 120,
  trimWhitespace: true
});

导航交互式提示

// Send arrow keys and enter in raw mode
await send_shell_input(sessionId, "\\x1b[B", { raw: true });  // down arrow
await send_shell_input(sessionId, " ", { raw: true });         // space to select
await send_shell_input(sessionId, "\\r", { raw: true });       // enter to confirm

// Read what the prompt looks like now
const screen = await read_shell_output(sessionId, {
  mode: "screen", waitForIdle: 300
});

等待命令输出

await send_shell_input(sessionId, "npm install");
const output = await read_shell_output(sessionId, {
  waitForIdle: 1000  // wait for 1s of silence
});

搜索内容

// Find all error lines
const errors = await search_screen(sessionId, {
  pattern: "error|Error|ERROR",
  regex: true,
  waitForIdle: 500
});
// [{ row: 12, col: 0, text: "Error" }, ...]

会话行为

  • 自动清理:空闲时间超过10分钟的会话将自动处理
  • 出口检测:当shell退出时,工具返回 "Session exited with code N" 持续60秒,而不是一般的无效ID错误
  • 贝壳合金:只能生成已知的shell(bash、zsh、fish、sh、dash、ksh、powershell.exe、pwsh、cmd.exe)。未知值将恢复为平台默认值。

许可证

麻省理工学院

工具与能力

工具数量

9

资源数量

0

提示词数量

0

能力标签

终端模拟JavaScript本地部署AI代理工具命令行交互TUI支持开发工具

支持客户端

ClaudeCursor

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 9 个工具,职责集中,接入后不容易误操作。
  • 已经适配 Claude、Cursor,换客户端不用重新研究配置。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 需要自备会话凭据,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 暂时拿不到会话凭据的人。
  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Interactive Shell MCP

MCP World · 本页

9未说明未标注2 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Interactive Shell MCP 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Interactive Shell MCP 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Interactive Shell MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Interactive Shell MCP 需要 API Key 吗?

公开资料标注的认证方式是会话凭据,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Interactive Shell MCP 支持哪些客户端?

公开资料标注支持 Claude、Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP