← 返回目录
F

Flutter Skill

社区
让 AI 代理在真实运行的应用中“看得见、动得了”,覆盖 10 个平台的端到端测试
分类
开发工具 第 199 / 438
Stars
★ 391 非常热门
传输方式
stdio(本地进程)
运行环境
Node.js
凭据
无需凭据
许可证
MIT
最近提交
工具数
100
54FMRS · D

flutter-skill 是一个功能覆盖面很广的第三方 MCP 测试服务器,通过自然语言和大量工具(README 自述约 253 个)把 AI 代理接入 Flutter、React Native、iOS、Android、Web、Electron、Tauri、KMP、.NET MAUI 等 10 个平台的运行中应用,主打零测试代码与低 token 消耗(无障碍树快照)。它需要授予 AI 代理对被测应用/浏览器较广的操作与网络篡改权限(含任意 JS 执行),因此适合在受信任的本地开发或 CI 环境中使用;由于是社区维护项目且版本号未到 1.0,建议在正式采用前评估其成熟度与安全边界。

最强项 · 文档质量 14/20 最弱项 · 安全与权限 7/20

可靠性
8/20
安全与权限
7/20
维护活跃度
12/20
文档质量
14/20
安装易用性
13/20
查看各项评分依据
可靠性 8/20
README 声称 253 个 MCP 工具、10 个平台、656/664(98.8%)测试通过率,以及每平台精确到个位的通过数(如 188/195、75/75),但仓库材料中未提供可核查的测试文件或 CI 产出证据,只有一个指向 ci.yml 的徽章链接,无法确认其真实运行状态。manifest 仅声明了 stdio 传输和 npm 包名/版本,没有工具schema、错误处理或依赖控制的静态证据。'server' 模式声称253个工具而'serve' 模式为246个('动态每页面'),这类差异未被清楚解释,增加了对声明与实际行为一致性的不确定性。按静态评审规则,没有真实CI+测试证据不得超过12分,因此判定为8分。
安全与权限 7/20
工具集包含 eval(任意 JS 执行)、http_request/api_request、网络拦截与请求重放(mock_api, replay_network, intercept_requests, block_urls)、以及 auth_inject_session、auth_biometric、auth_otp、auth_deeplink 等凭证/会话注入类工具,具备较大的权限面。README 和 manifest 均未描述任何最小权限限制、危险操作前的用户确认机制、沙箱边界或数据流披露(例如凭证从何而来、如何被处理或是否被记录)。manifest 中 environmentVariables 为空,意味着没有声明式的凭据配置,但运行时通过工具调用可传递认证数据,这一数据流未被文档化。未发现摘要中的红线级证据(无恶意代码、无虚假身份、无真实泄露的密钥),但权限范围广、缺乏确认与最小权限设计,故评为7分。
维护活跃度 12/20
仓库为 MIT 许可、未归档,343 星、8 个未解决 issue,存在 CONTRIBUTING.md 与 CHANGELOG.md 链接,版本号 0.9.36 暗示有持续的版本迭代。但提供的材料中没有实际的提交历史、发布节奏或 issue 响应时间等可验证证据,也未见明确的安全响应渠道(如 SECURITY.md)。基于现有静态材料,判定为中等活跃度,给12分。
文档质量 14/20
README 内容详实,涵盖安装、快速开始、8个平台的接入示例、CLI 命令参考、253个工具的分类列表,并链接了 docs/USAGE_GUIDE.md 与 docs/CLI_CLIENT.md 等深入文档。但对高敏感工具(如 auth_inject_session、auth_otp、auth_biometric、auth_deeplink)缺乏任何专门的使用说明、权限范围或风险披露;也没有专门的故障排查(troubleshooting)章节,且大量性能/测试通过率数据缺乏可复现的方法说明或原始数据链接。综合评为14分。
安装易用性 13/20
安装路径清晰:npm install -g 一条命令,MCP 配置为几行 JSON,README 提供了 Cursor、Claude Desktop、Windsurf、VSCode Copilot、Cline 等主流客户端的具体配置示例,另有 Homebrew/Scoop/Docker/pub.dev 等多种安装方式。步骤简单、跨平台覆盖广。但按静态评审规则,没有可验证的真实执行证据(CI + 测试)时setup分数不得超过15,因此评为13分。

静态评测 · 未实际运行收录于 2026-08-26

查看 FMRS 评分方法 →

选型与风险

能访问什么写入 / 删除本地文件访问网络控制浏览器

适合谁

  • 已有可调试运行的 Flutter/React Native/Electron/Tauri/移动或 Web 应用、希望用自然语言而非编写测试脚本做端到端测试的团队
  • 在 Claude Desktop、Cursor、Windsurf、Copilot 等 MCP 客户端中直接驱动 AI 进行探索性测试的开发者
  • 希望以低 token 成本(无障碍树快照而非截图)让 AI 理解界面结构的场景

不适合谁

  • 需要官方/上游厂商(如 Flutter、Google、Anthropic)维护和支持的测试工具的团队,本项目为第三方(ai-dashboad)开源实现
  • 无法在应用中集成对应平台 SDK、或不能安装本地 npm/CLI 工具的受限环境
  • 追求已被大规模生产验证、社区体量与 Playwright/Appium 等成熟工具相当的稳定性保证的场景

所需权限

  • 本地执行权限:以 stdio 方式启动并运行 `flutter-skill` 可执行程序
  • 对被测应用/浏览器实例的连接与控制权限(点击、输入、截图、读取控件树等)
  • 读取应用日志、控制台消息、网络请求等运行时数据的权限
  • 在 HTTP `serve` 模式下需要网络端口监听权限(默认可通过 `--port`/`--host` 或环境变量配置)

风险与副作用

  • 该项目为第三方开源实现(非 Flutter/Anthropic/Google 官方维护),来源文档未说明其审计、签名或供应链安全措施
  • 工具可执行任意操作(点击、输入、执行 JavaScript `eval`、注入登录会话等),若被恶意提示词滥用,可能对被测应用做出非预期的破坏性操作
  • `eval` 等工具可在页面上下文执行任意 JavaScript,`mock_api`/`intercept_requests` 等可篡改网络行为,需仅在受信任的开发/测试环境中使用
  • manifest 中版本号(0.9.36)表明项目仍处于 1.0 之前的快速迭代阶段,接口可能变化

安装接入

准备工作

运行环境:Node.js

其他可选配置项(2 个)
FS_PORT 可选 HTTP serve 模式(`flutter-skill serve`)的可选端口,也可用 `--port=N` 参数设置。
FS_HOST 可选 HTTP serve 模式(`flutter-skill serve`)的可选主机地址,也可用 `--host=H` 参数设置。

1) 全局安装:npm install -g flutter-skill(也可用 Homebrew、Scoop、Docker 镜像或 dart pub global activate flutter_skill)。2) 在 AI 客户端的 MCP 配置中加入本资料中的 install_config(如 Cursor 的 .cursor/mcp.json、Claude Desktop 的 claude_desktop_config.json、Windsurf 的 ~/.codeium/windsurf/mcp_config.json、VSCode 的 .vscode/mcp.json)。3) 在被测应用中集成对应平台的 SDK,例如 Flutter 应用添加 flutter_skill 依赖并在 main() 中调用 FlutterSkillBinding.ensureInitialized()(仅 debug 模式);React Native、Electron、iOS、Android、Tauri、KMP、.NET MAUI 各有独立 SDK 包。4) 重启 AI 客户端并用自然语言下达测试指令,如“启动我的应用并探索所有页面”。

claude_desktop_config.json
{"mcpServers":{"flutter-skill":{"command":"flutter-skill","args":["server"]}}}

以 Claude Desktop 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

.vscode/mcp.json
{
  "servers": {
    "flutter-skill": {
      "command": "flutter-skill",
      "args": [
        "server"
      ]
    }
  }
}

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add flutter-skill -- flutter-skill server

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

先运行 `npm install -g flutter-skill`,将 flutter-skill 的 MCP 配置加入客户端并重启,确认客户端工具列表中出现 `page_summary` 和 `screenshot` 等工具;也可运行 `flutter-skill tools` 列出全部可用工具。

常见排障

  1. 确认已全局安装 `flutter-skill`(`npm install -g flutter-skill` 或对应包管理器命令)且可在命令行找到该可执行文件
  2. 确认 AI 客户端的 MCP 配置文件路径和 JSON 格式正确,并已重启客户端使配置生效
  3. 确认被测应用已按平台文档正确引入对应 SDK(如 Flutter 的 `FlutterSkillBinding.ensureInitialized()`)且运行在 debug 模式
  4. 使用 `flutter-skill tools` 命令列出可用工具、`flutter-skill call <tool> [json]` 直接调用工具以排查连接问题
  5. 如使用 HTTP `serve` 模式,检查端口/主机是否被占用,可通过 `--port=N`、`--host=H` 或 `FS_PORT`/`FS_HOST` 环境变量调整

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 启动我的应用,浏览每个页面并报告发现的 bug
  • 测试购物车为空的结账流程,然后加 3 件商品并完成购买
  • 用边界数据填写注册表单,比如 emoji 和超长字符串
  • 对当前页面截图,并列出所有可点击的按钮

工具能力 100

page_summary 只读
返回当前页面/屏幕的紧凑语义摘要(约 200 token),替代发送截图
explore_actions 只读
在一次调用中批量执行多个探索性操作(填写、点击等)
boundary_test
对输入框执行边界/安全测试载荷
explore_report 只读
汇总 AI 自主探索过程中的发现与问题
launch_app 写入
按指定 flavor 启动被测应用
scan_and_connect 只读
自动发现并连接正在运行的应用实例
connect_cdp 只读
通过 Chrome DevTools Protocol 连接到已打开的浏览器
hot_reload 写入
触发应用热重载
展开其余 92 个工具
hot_restart 写入
触发应用热重启
list_sessions 只读
列出当前所有已连接的会话
switch_session 写入
切换到指定的已连接会话
close_session 写入
关闭指定会话
disconnect 写入
断开与目标应用/浏览器的连接
stop_app 写入
停止被测应用进程
screenshot 只读
截取当前屏幕/页面
screenshot_region 只读
截取屏幕指定区域
screenshot_element 只读
截取指定元素的局部截图
native_screenshot 只读
使用平台原生方式截图
inspect 只读
获取当前页面/屏幕的元素信息
inspect_interactive 只读
列出所有可点击/可输入元素及其语义引用
snapshot 只读
获取无障碍树结构快照,token 消耗远低于截图
get_widget_tree 只读
获取完整的组件/控件树
find_by_type 只读
按控件类型查找元素
get_text_content 只读
获取元素的文本内容
get_visible_text 只读
获取当前屏幕上可见的全部文本
tap 写入
点击指定元素
double_tap 写入
双击指定元素
long_press 写入
长按指定元素
enter_text 写入
在输入框中键入文本
set_text 写入
直接设置输入框的文本值
clear_text 写入
清空输入框内容
swipe 写入
在屏幕上执行滑动手势
scroll_to 写入
滚动到指定元素或位置
drag 写入
执行拖拽手势
go_back 写入
返回上一屏幕/页面
press_key 写入
按下指定按键(可带修饰键)
type_text 写入
通过键盘输入文本
hover 写入
将鼠标悬停在元素上
fill 写入
填充表单字段
select_option 写入
在下拉/选择控件中选择选项
set_checkbox 写入
设置复选框的选中状态
focus 写入
使元素获得焦点
blur 写入
使元素失去焦点
native_tap 写入
使用平台原生方式点击
native_input_text 写入
使用平台原生方式输入文本
native_swipe 写入
使用平台原生方式滑动
smart_tap 写入
带模糊匹配的自愈式点击,UI 变化时仍可定位元素
smart_enter_text 写入
带模糊匹配的自愈式文本输入
smart_assert 只读
带模糊匹配的自愈式断言
assert_text 只读
断言元素文本内容
assert_visible 只读
断言元素可见
assert_not_visible 只读
断言元素不可见
assert_element_count 只读
断言匹配元素的数量
assert_batch 只读
在一次调用中执行多个断言
wait_for_element 只读
等待元素出现
wait_for_gone 只读
等待元素消失
wait_for_idle 只读
等待应用/页面进入空闲状态
wait_for_stable 只读
等待界面渲染稳定
wait_for_url 只读
等待页面 URL 满足条件
wait_for_text 只读
等待指定文本出现
wait_for_element_count 只读
等待元素数量满足条件
visual_baseline_save 写入
保存视觉回归基线截图
visual_baseline_compare 只读
将当前截图与基线比对
visual_baseline_update 写入
更新视觉回归基线
visual_regression_report 只读
生成视觉回归测试报告
visual_verify 只读
校验界面视觉表现
visual_diff 只读
计算两张截图之间的差异
compare_screenshot 只读
比较两张截图是否一致
mock_api 写入
对指定接口设置网络 mock 响应
mock_clear 写入
清除已设置的网络 mock
record_network 只读
录制网络请求流量
replay_network 写入
回放已录制的网络请求
intercept_requests 写入
拦截网络请求
clear_interceptions 写入
清除已设置的请求拦截
block_urls 写入
屏蔽指定 URL 的网络请求
http_request 写入
发起原始 HTTP 请求
api_request 写入
发起 API 测试请求
api_assert 只读
对 API 响应进行断言
coverage_start 写入
开始采集测试覆盖率
coverage_stop 写入
停止采集测试覆盖率
coverage_report 只读
生成覆盖率报告
coverage_gaps 只读
定位未覆盖的功能点
retry_on_fail 写入
失败时按策略自动重试
stability_check 只读
检查测试结果的稳定性/易变性
test_with_data 写入
使用数据集驱动执行测试
generate_test_data 只读
生成测试用数据
multi_connect 写入
同时连接多台设备/实例
multi_action 写入
在多台已连接设备上同步执行同一操作
multi_compare 只读
比较多台设备上的执行结果
multi_disconnect 写入
断开所有已连接的多设备会话
parallel_snapshot 只读
并行获取多设备的快照
parallel_tap 写入
并行在多设备上执行点击
accessibility_audit 只读
执行无障碍审计
a11y_full_audit 只读
执行完整无障碍审计
a11y_tab_order 只读
检查 Tab 键遍历顺序
a11y_color_contrast 只读
检查颜色对比度是否达标
a11y_screen_reader 只读
模拟屏幕阅读器进行检查
set_locale 写入
切换应用语言/区域设置
verify_translations 只读
校验界面文案的多语言翻译
i18n_snapshot 只读
获取指定语言下的界面快照

使用场景

用自然语言驱动 AI 代理对 Flutter/React Native/Web/桌面应用执行端到端测试
AI 自主探索应用的所有页面并报告发现的问题
对登录、结算等关键流程做边界值与异常输入测试
跨平台(如 iOS 与 Android)比较同一测试流程的界面与结果
视觉回归、无障碍审计、多语言校验与性能数据采集

支持客户端

Claude Desktop
Cursor
Windsurf
VSCode Copilot
Cline
Continue
OpenClaw部分支持

依据项目文档列出,未经本站实测。

详细介绍

flutter-skill 是一个开源 MCP 服务器(npm 包 flutter-skill,Dart 包 flutter_skill),通过 Model Context Protocol 把 Claude、Cursor、Windsurf、Copilot 等 AI 代理直接连接到正在运行的应用上。它暴露约 253 个 MCP 工具,用于截图、无障碍树快照、点击、输入、滚动、断言、可视化回归、网络 mock、覆盖率统计、多设备同步、无障碍审计、性能与录制导出等操作,声称支持 Flutter、React Native、iOS、Android、Web、Electron、Tauri、KMP、.NET MAUI 共 10 个平台,主打“零测试代码、零配置”的自然语言测试体验,并附带独立的 HTTP serve 模式与 CLI 客户端。仓库以 MIT 协议开源。

同类可选方案

Context7 80 · B

Upstash 官方维护,为 AI 编码助手提供实时更新的第三方库文档

★ 63.3k · 工具数 2 与当前对比 →

源版本 c31a08ead80e 数据同步于 2026-10-19 查看 FMRS 评分方法