mcpField
A
Assert

Assert

本地服务
github.com/Pixel-Funnel开发工具024 周前更新

关于 Assert

Assert 是供编码 Agent 使用的 MCP 服务,可根据自然语言流程生成并运行 Playwright 端到端测试。它在真实 Chromium 浏览器中执行测试,并返回逐步结果和失败截图。

主要功能

  1. 01生成 Markdown 测试场景
  2. 02在真实浏览器中运行场景
  3. 03查看逐步结果和截图
  4. 04列出已保存场景

适用场景

  1. 01根据用户流程描述编写测试
  2. 02运行已保存或临时 E2E 场景
  3. 03检查失败步骤和截图

MCP 相关

向 MCP 客户端提供四种工具:生成、运行、查看状态和列出 Assert 场景。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"assert-click": {
"command": "npx",
"args": [
"-y",
"@assert-click/mcp"
],
"env": {
"ASSERT_API_KEY": "<ASSERT_API_KEY>"
}
}
}
}
启动命令npx -y @assert-click/mcp
需要配置的环境变量
ASSERT_API_KEY密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@assert-click/mcp

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
cursorstring否可选。上一响应中的分页游标。
limitnumber否可选。返回结果的最大数量。默认值为 20,最大值为 100。
project_idstring否可选。按项目 ID 筛选。

详细介绍

@assert-click/mcp

适用于 Assert 的 MCP 服务 — 让你的 AI 编码 Agent 无需离开聊天界面,即可生成、运行和检查端到端测试。

用通俗的英语描述用户流程。Assert 会生成 Playwright 测试,在真实浏览器中执行,并返回每个步骤的结果和失败截图 — 所有操作都能通过 Cursor、Claude、Windsurf 或任何兼容 MCP 的 Agent 中的一次工具调用完成。

使用此软件包前,请**在 assert.click 免费注册**,获取 API 密钥和项目 ID。

Agent 可以执行的操作

  • 生成 — 描述一个流程,获取可保存并运行的 Markdown 场景
  • 运行 — 在真实的 Chromium 浏览器中执行已保存的场景或临时 Markdown
  • 检查 — 获取每个步骤的通过/失败状态、错误消息和失败截图 URL
  • 列出 — 浏览 API 密钥可见的已保存场景

要求

  • Node.js >=18.17
  • 项目专属的 Assert 密钥 — 在 assert.click 获取

设置

1. 在仓库中创建 assert.config.json:

{
  "projectApiKey": "assert_project_key_here",
  "projectId": "project_123"
}

2. 将 MCP 服务添加到 Agent 配置中:

{
  "mcpServers": {
    "assert": {
      "command": "npx",
      "args": ["-y", "@assert-click/mcp"],
      "env": {
        "ASSERT_CONFIG": "/absolute/path/to/assert.config.json"
      }
    }
  }
}

就这样。现在你的 Agent 可以使用全部四种 Assert 工具。

私有 URL

默认情况下,会阻止 localhost、127.0.0.1 以及局域网或 VPN IP 地址等目标。

除非运行 Assert 的机器已专门配置为允许私有目标,否则请使用公共 URL:

ALLOW_PRIVATE_TARGETS=true

在运行 Assert 的机器或进程上设置此项。不要将其放入 assert.config.json。

环境变量

  • ASSERT_API_KEY:API 密钥(可替代将密钥存储在 assert.config.json 中)
  • ASSERT_PROJECT_ID:可选的默认项目 ID
  • ASSERT_CONFIG:可选的配置文件或目录路径

配置文件

MCP 服务会从当前目录开始,逐级向上查找以下文件:

  • assert.config.json
  • assert.config.local.json

assert.config.local.json 中的配置会合并到 assert.config.json 之上。

如果你更愿意使用基于环境变量的密钥,而不是提交密钥:

{
  "projectApiKeyEnv": "ASSERT_API_KEY",
  "projectId": "project_123"
}

工具

assert_generate

根据通俗英语描述生成 Markdown 场景。

输入:

  • description: string — 用户应能够执行的操作
  • url: string — 起始 URL
  • project_id?: string
  • save?: boolean — 保存到项目(默认为 false)

返回:

{
  "scenario_id": "scenario_123",
  "markdown": "URL: https://example.com/login\nSCENARIO: Login\nPROCESS:\n  - Fill \"email\" with \"[email protected]\"\nEXPECT: Dashboard",
  "saved": true
}
assert_run

在真实浏览器中执行已保存的场景或临时 Markdown。

输入:

  • scenario_id?: string
  • markdown?: string
  • project_id?: string
  • request_id?: string

必须且只能提供 scenario_id 或 markdown 中的一个。

返回:

{
  "run_id": "run_123",
  "status": "queued",
  "estimated_duration_seconds": null
}
assert_status

获取某次运行中每个步骤的结果。

输入:

  • run_id: string

返回:

{
  "run_id": "run_123",
  "status": "passed",
  "duration_ms": 4200,
  "steps": [
    {
      "description": "Fill email",
      "status": "passed",
      "error": null,
      "screenshot_url": null
    }
  ],
  "failure_summary": null,
  "full_log_url": null
}
assert_list

列出 API 密钥可见的已保存场景。

输入:

  • project_id?: string
  • cursor?: string
  • limit?: number

project_id 目前保留用于未来支持筛选。当前 API 会列出 API 密钥可见的所有场景。

返回:

{
  "scenarios": [
    {
      "id": "scenario_123",
      "name": "Login flow",
      "project_id": null,
      "last_run_status": "passed",
      "last_run_at": "2026-03-31T10:00:00.000Z",
      "url": "https://example.com/login"
    }
  ],
  "next_cursor": null
}

错误

错误以结构化 JSON 的形式返回:

{
  "error": {
    "code": "INVALID_API_KEY",
    "message": "The ASSERT_API_KEY is invalid or missing.",
    "field": null
  }
}

常见代码:

  • INVALID_API_KEY
  • SCENARIO_NOT_FOUND
  • RUN_NOT_FOUND
  • VALIDATION_ERROR
  • UPSTREAM_ERROR

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。