Token导航 LogoToken导航

MCP Server · 开发工具

MCP Tui Test

MCP TUI Test 是一个用于测试终端用户界面(TUI)应用程序的工具,提供启动、交互和验证功能,适用于自动化测试和集成测试。

stdio官方级别未说明来源级核验工具 12
PythonClaude开发工具Cursor

快速开始

作者 / 组织
GeorgePearse
提供方
GeorgePearse
运行时
Python

工具数量

12

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

11

仓库热度

收录来源

1 个

MCP World

选型结论

MCP Tui Test 属于开发工具类 MCP Server,公开资料标注 12 个工具,通过stdio 本地进程接入,适配 Claude、Cursor,有可以直接复制的安装命令;接入前要先准备 会话凭据。

分类

开发工具

传输方式

stdio

认证方式

会话凭据

部署方式

公开资料未说明

安装与配置

安装命令

python server.py

客户端配置示例

{
  "mcpServers": {
    "mcp-tui-test": {
      "command": "python",
      "args": [
        "server.py"
      ]
    }
  }
}

按公开安装命令拼出来的示例,字段名和参数以仓库 README 为准;带 YOUR_API_KEY 这类占位符的位置记得换成自己的值。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

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

接入前确认

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

详细介绍

MCP TUI测试

类似于剧作家,但适用于终端用户界面

MCP(模型上下文协议)服务器,使AI助手能够测试终端用户界面(TUI)应用程序。此服务器提供以编程方式启动、交互和验证TUI应用程序的工具。

📚 查看文档

特性

  • 双重测试模式:在流模式(用于CLI工具)或缓冲模式(用于具有位置感知的完整TUI)之间进行选择
  • 启动TUI应用程序:启动任何具有可配置维度的基于终端的应用程序
  • 发送键盘输入:模拟用户打字、特殊按键和控制组合
  • 捕获屏幕输出:读取并分析当前终端显示
  • 基于位置的测试:验证特定屏幕坐标处的文本(缓冲模式)
  • 光标跟踪:实时监控光标位置(缓冲模式)
  • 等待文本:异步等待特定内容出现
  • 断言:验证输出中是否存在预期内容
  • 会话管理:同时运行多个TUI应用程序

测试模式

流模式(默认)

  • 最适合:CLI工具、命令行应用程序、简单的交互式程序
  • 用途:pexpect用于基于流的测试
  • 功能:文本匹配、模式等待、输出捕获
  • 示例用例:git、npm、grep、交互式shell脚本

缓冲区模式

  • 最适合:完整的TUI应用程序、ncurses应用程序、对话框、菜单
  • 用途:pexpect+pyte用于屏幕缓冲区仿真
  • 功能:所有流功能加上基于位置的断言、光标跟踪、区域提取
  • 示例用例:htop、vim、对话框、交互式菜单

何时使用哪种模式:

  • 使用 流模式 适用于按顺序输出文本的应用程序
  • 使用 缓冲模式 适用于通过光标移动绘制复杂UI的应用程序

安装

先决条件

再进行

uv venv
source .venv/bin/activate
uv pip install -r requirements.txt

或者安装软件包:

uv venv
source .venv/bin/activate
uv pip install -e .

用法

运行MCP服务器

python server.py

或者,如果作为软件包安装:

mcp-tui-test

在Claude桌面中配置

将此添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "tui-test": {
      "command": "python",
      "args": ["/path/to/mcp-tui-test/server.py"]
    }
  }
}

或者,如果作为软件包安装:

{
  "mcpServers": {
    "tui-test": {
      "command": "mcp-tui-test"
    }
  }
}

可用工具

launch_tui

启动TUI应用程序进行测试。

参数:

  • command (必填):启动TUI应用程序的命令
  • session_id (可选):此会话的唯一标识符(默认值:“default”)
  • timeout (可选):命令超时时间(秒)(默认值:30)
  • dimensions (可选):端子尺寸为WIDTHxHEIGHT(默认值:“80x24”)
  • mode (可选):测试模式-“流”或“缓冲区”(默认:“流”)

示例:

# Stream mode for CLI tools
launch_tui(command="python example_tui_app.py", session_id="test1")

# Buffer mode for full TUI applications
launch_tui(command="htop", session_id="test2", mode="buffer", dimensions="120x40")

send_keys

将键盘输入发送到TUI应用程序。

参数:

  • keys (必填):要发送的密钥。使用 \n 对于Enter, \t 对于Tab, \x1b 逃离
  • session_id (可选):会话标识符(默认值:“默认”)
  • delay (可选):发送密钥后的延迟秒数(默认值:0.1)

例子:

send_keys(keys="1\n", session_id="test1")

send_ctrl

向TUI应用程序发送Ctrl+组合键。

参数:

  • key (必填):与Ctrl组合的键(例如,“c”、“d”、“z”)
  • session_id (可选):会话标识符(默认值:“默认”)

例子:

send_ctrl(key="c", session_id="test1")

capture_screen

捕获TUI应用程序的当前屏幕输出。

参数:

  • session_id (可选):会话标识符(默认值:“默认”)
  • include_ansi (可选):是否在流模式中包含ANSI转义码(默认值:False)
  • use_buffer (可选):强制缓冲/流模式。自动检测是否为无(默认值:无)

示例:

# Auto-detect mode based on session
capture_screen(session_id="test1")

# Force buffer mode capture
capture_screen(session_id="test1", use_buffer=True)

expect_text

等待TUI输出中出现特定文本。

参数:

  • pattern (必填):要等待的文本或正则表达式模式
  • session_id (可选):会话标识符(默认值:“默认”)
  • timeout (可选):最长等待时间(秒)(默认值:10)

例子:

expect_text(pattern="Welcome", session_id="test1", timeout=5)

assert_contains

断言当前屏幕包含特定文本。

参数:

  • text (必填):在当前屏幕中搜索的文本
  • session_id (可选):会话标识符(默认值:“默认”)
  • use_buffer (可选):检查缓冲区/流模式。自动检测是否为无(默认值:无)

例子:

assert_contains(text="Counter value: 1", session_id="test1")

assert_at_position (仅缓冲模式)

断言特定文本出现在屏幕位置。

参数:

  • text (必填):在位置验证的文本
  • row (必填):行号(0索引)
  • col (必填):列号(0索引)
  • session_id (可选):会话标识符(默认值:“默认”)

例子:

# Verify "Error" appears at row 5, column 10
assert_at_position(text="Error", row=5, col=10, session_id="test1")

get_cursor_position (仅缓冲模式)

获取当前光标位置。

参数:

  • session_id (可选):会话标识符(默认值:“默认”)

例子:

get_cursor_position(session_id="test1")
# Returns: "Cursor position (session: test1): row 10, column 25"

get_screen_region (仅缓冲模式)

提取屏幕的矩形区域。

参数:

  • row_start (必填):起始行(0索引,包括0索引)
  • row_end (必填):结束行(0索引,不包括)
  • col_start (可选):起始列(0索引,包括0索引,默认值:0)
  • col_end (可选):结束列(0索引,独占,默认:行尾)
  • session_id (可选):会话标识符(默认值:“默认”)

例子:

# Extract rows 5-10, full width
get_screen_region(row_start=5, row_end=10, session_id="test1")

# Extract rows 5-10, columns 20-60
get_screen_region(row_start=5, row_end=10, col_start=20, col_end=60, session_id="test1")

get_line (仅缓冲模式)

从屏幕缓冲区获取特定行。

参数:

  • row (必填):行号(0索引)
  • session_id (可选):会话标识符(默认值:“默认”)

例子:

get_line(row=3, session_id="test1")
# Returns: "Line 3 (session: test1): [line content]"

close_session

结束TUI测试会话。

参数:

  • session_id (可选):会话标识符(默认值:“默认”)

例子:

close_session(session_id="test1")

list_sessions

列出所有活动的TUI测试会话。

例子:

list_sessions()

示例测试场景

以下是如何使用此MCP测试TUI应用程序:

  1. 启动应用程序:
   launch_tui(command="python example_tui_app.py")
  1. 等待加载:
   expect_text(pattern="Welcome to the Example TUI Application")
  1. 与它互动:
   send_keys(keys="1\n")
  1. 验证输出:
   assert_contains(text="Hello, TUI Tester!")
  1. 清理:
   close_session()

测试示例应用程序

此存储库包括一个示例TUI应用程序(example_tui_app.py)您可以使用它来测试MCP服务器。

直接运行它:

python example_tui_app.py

或者通过MCP进行测试:

launch_tui(command="python example_tui_app.py")
send_keys(keys="1\n")
capture_screen()

用例

  • 自动化测试:验证TUI应用程序是否正常运行
  • 集成测试:测试命令行工具和交互式CLI
  • 文档:从TUI应用程序生成屏幕截图和示例
  • 调试:在开发过程中检查TUI应用程序的状态
  • CI/CD:将TUI测试添加到您的持续集成管道中

技术细节

此MCP服务器使用:

  • FastMCP:用于MCP服务器实现
  • pexpect:用于生成和控制终端应用程序
  • pyte:用于终端仿真和屏幕缓冲区管理(缓冲模式)
  • ScreenSession包装器:结合pexpect和pyte进行混合测试

建筑

  • 流模式:pexpect直接捕获输出流
  • 缓冲区模式:pespect输出→ pyte终端仿真器→ 屏幕缓冲区
  • 自动检测:工具根据会话自动使用适当的模式

局限性

  • 目前为类Unix系统(Linux、macOS)设计
  • Windows支持可能需要修改(考虑使用 winpty 或类似)
  • TUI中的鼠标支持目前不可用
  • 缓冲模式需要稍多的内存用于屏幕模拟
  • 基于位置的断言仅在缓冲区模式下工作

贡献

欢迎投稿!请随时提交问题或拉取请求。

许可证

MIT许可证-有关详细信息,请参阅许可证文件

相关项目

  • 剧作家 -浏览器自动化(本项目的灵感来源)
  • pexpect -用于生成子应用程序的Python模块
  • pyte -Python终端模拟器
  • 主控程序 -模型上下文协议规范

作者

为在人工智能的帮助下测试TUI应用程序而创建。

工具与能力

工具数量

12

资源数量

0

提示词数量

0

能力标签

终端测试Python本地部署自动化测试TUI应用交互测试屏幕捕获

支持客户端

ClaudeCursor

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

典型使用场景

让助手直接读代码

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

在对话里跑命令

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

接进开发流程

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

选择建议

值得选的地方

  • 工具数量 12 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude、Cursor,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备会话凭据,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到会话凭据的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

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

MCP World · 本页

12stdio有1 个2026-05-17
Git 838e2ec1

MCP World

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

MCP World

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

MCP World

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

MCP World

0stdio有1 个2026-05-17

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

常见问题

5 条

MCP Tui Test 怎么安装?

公开资料给出的安装命令是 python server.py,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

MCP Tui Test 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

MCP Tui Test 收费吗?

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

MCP Tui Test 需要 API Key 吗?

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

MCP Tui Test 支持哪些客户端?

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

来源信息

继续浏览同类 MCP