Token导航 LogoToken导航

MCP Server · AI代理

testwire MCP

Testwire是一个基于步骤的Flutter集成测试运行器,通过MCP协议由AI代理控制,支持实时运行、观察、调试和修改测试步骤。

未说明官方级别未说明来源级核验工具 8
ClaudeAI控制AI代理Claude DesktopCursorWindsurf

快速开始

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

工具数量

8

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

9

仓库热度

收录来源

1 个

MCP World

选型结论

testwire MCP 属于AI代理类 MCP Server,公开资料标注 8 个工具,通过传输方式未标注接入,适配 Claude Desktop、Claude、Cursor,没有现成的安装命令;接入前先确认权限范围。

分类

AI代理

传输方式

未说明

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

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

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

上手步骤

  1. 1

    先确认运行方式

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

  2. 2

    获取服务

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

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

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

接入前确认

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

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

详细介绍

Flutter的基于步骤的集成测试运行器,由AI代理控制 通过MCP(模型上下文协议)。

Testwire允许AI代理 运行、观察、调试和修改 飘动 实时集成测试——逐一执行操作, 检查结果,通过热重新加载修复故障,并在没有重新加载的情况下重试步骤 重新开始测试。

为什么?

没有Testwire,AI代理的Flutter集成测试工作流程看起来 像这样:写测试→ flutter test → 等待构建和部署→ read 一堵原木墙→ fix → 从头开始重新启动一切每个循环都会燃烧 在重建过程中浪费了几分钟时间,在重新读取相同的详细输出时浪费了令牌。

Testwire改变了这一点:

  • 没有重新启动。 修复一个失败的步骤,热重新加载,重试——不重建

或者重新部署应用程序。

  • 结构化反馈。 代理程序不解析200行日志,而是获取

每一步的干净状态:通过了什么,失败了什么,为什么。

  • 更少的代币。 每个交互返回几行,而不是整个测试

输出。每个重试周期都没有重复的上下文。

  • 在没有代理人的情况下工作。 与正常集成测试相同的测试运行

在CI中 AGENT_MODE 未设置。

包裹

包版本描述
example--带有演示集成测试的Flutter应用程序示例。

我需要哪些包裹?

用于写作测试 (大多数用户):

  • 添加 testwire_flutter 到您的应用程序 dev_dependencies --它再出口

你需要的一切(testwire 和 testwire_protocol 被拉进来 自动)。

用于运行MCP服务器 (将您的AI代理连接到测试):

  • dart pub global activate testwire_mcp

就是这样——两个包: testwire_flutter 在您的项目中+ testwire_mcp 全球地。

运作原理

  1. flutter run 在设备或模拟器上启动集成测试

随着 --dart-define=AGENT_MODE=true.

  1. 测试注册VM服务扩展并等待代理。
  2. 这 MCP服务器 (testwire_mcp)连接到VM服务并公开

工具: step_forward, run_remaining, retry_step, get_test_state, hot_reload_testwire_test, hot_restart_testwire_test, screenshot, disconnect.

  1. 这 AI 代理 调用这些工具来逐步控制执行。

关键能力

  • 逐步执行 --一次跑一步或一次跑完一步。
  • 热重载 --编辑测试代码(修复错误、添加步骤)和热重新加载,无需

重新启动。已完成的步骤将自动跳过。

  • 重试 --修复代码后重试失败的步骤。
  • 优雅的断开连接 --当代理断开连接时,其余步骤将运行

自动,应用程序进程终止。

快速启动

先决条件

  • Flutter SDK(3.10+)
  • iOS模拟器、Android模拟器或物理设备
  • 任何MCP客户端(Cursor、Windsurf、Claude Desktop等)

1.安装MCP服务器

全球地:

dart pub global activate testwire_mcp

或者作为项目开发依赖:

dart pub add dev:testwire_mcp

2.配置您的MCP客户端

以下示例使用全局命令 testwire_mcp。如果您已安装 将其替换为开发依赖项 dart run testwire_mcp.
光标

或手动添加到 .cursor/mcp.json:

{
  "mcpServers": {
    "testwire": {
      "command": "testwire_mcp"
    }
  }
}
克劳德代码
claude mcp add --transport stdio testwire -- testwire_mcp
Gemini CLI

增添 ~/.gemini/settings.json:

{
  "mcpServers": {
    "testwire": {
      "command": "testwire_mcp"
    }
  }
}
副驾驶

增添 mcp.json:

{
  "servers": {
    "testwire": {
      "command": "testwire_mcp"
    }
  }
}

3.写一个测试

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:testwire_flutter/testwire_flutter.dart';
import 'package:integration_test/integration_test.dart';
import 'package:testwire/testwire.dart';
import 'package:my_app/main.dart' as app;

class MyTest extends TestwireTest {
  MyTest()
      : super(
          'My test',
          setUp: (tester) async {
            app.main();
            await tester.pumpAndSettle();
          },
        );

  @override
  Future body(WidgetTester tester) async {
    await step(
      description: 'Tap the button',
      context: 'Tap the main action button.',
      action: () async {
        await tester.tap(find.byKey(const Key('action_button')));
        await tester.pumpAndSettle();
      },
    );

    await step(
      description: 'Verify result',
      context: 'Check that the result text is displayed.',
      action: () async {
        expect(find.text('Done!'), findsOneWidget);
      },
    );
  }
}

void main() {
  IntegrationTestWidgetsFlutterBinding.ensureInitialized();
  registerTestwireExtensions();
  MyTest().run();
}

4.启动测试

cd example
flutter run \
  --dart-define=AGENT_MODE=true \
  -d  \
  integration_test/app_test.dart

控制台将打印VM服务URI。代理使用它进行连接。

5.代理人接管

代理通过以下方式连接 connect MCP工具,然后驱动测试 step_forward, run_remaining, get_test_state等等。

示例演示

这 example 目录包括准备运行 演示场景,通过热重载展示bug修复和增量开发。

无代理模式

当 AGENT_MODE 未设置(或 false),全部 step() 调用执行 立即运行,无需暂停——测试就像正常的集成测试一样运行。 这意味着相同的测试文件适用于代理控制和CI 环境。

路线图

  • testwire_device --一个独立的Dart包,用于控制

通过以下方式从主机访问设备/仿真器 adb (安卓)和 xcrun simctl (iOS模拟器)。权限(授予/撤销/重置),系统 设置、深度链接等——应用程序中没有本机代码,也没有 改变测试的启动方式。作为库(来自测试)和CLI工作 (来自CI脚本)和MCP工具(来自AI代理)。 看 提案.

工具与能力

工具数量

8

资源数量

0

提示词数量

0

能力标签

Dart本地部署Flutter测试集成测试AI控制热重载MCP协议

支持客户端

Claude DesktopClaudeCursorWindsurf

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

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

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

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

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

不太适合

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

同类对比

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

MCP World · 本页

8未说明未标注1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

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

常见问题

5 条

testwire MCP 怎么安装?

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

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

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

testwire MCP 收费吗?

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

testwire MCP 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

testwire MCP 支持哪些客户端?

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

来源信息

继续浏览同类 MCP