mcpField
L
Lastest

Lastest

本地服务
github.com开发工具217 周前更新

关于 Lastest

Lastest MCP 服务是 Lastest 视觉回归测试平台的 MCP 接口,供 Claude Code、Cursor 等客户端中的 AI Agent 运行测试、查看截图差异并批准基线。适合使用云端或可自托管 Lastest 实例的团队。

主要功能

  1. 01运行测试并读取运行结果
  2. 02查看视觉差异并批准或拒绝基线
  3. 03由 AI 创建和修复测试
  4. 04管理存储状态与设置脚本等共享认证配置
  5. 05按访问级别(read、write、full)限制可用工具

适用场景

  1. 01Agent 在修改界面后自动触发视觉回归测试
  2. 02在客户端中审阅截图差异并批准或拒绝变更
  3. 03为新功能从 URL 或自然语言描述生成测试

MCP 相关

这是一个 MCP 服务,通过 stdio 或 Streamable HTTP 向 MCP 客户端暴露 20 个以 lastest_ 为前缀的工具,用于调用 Lastest 实例的 REST API。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"las-team": {
"command": "npx",
"args": [
"-y",
"@lastest/mcp-server"
]
}
}
}
启动命令npx -y @lastest/mcp-server

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

安装包
npm@lastest/mcp-server0.3.7

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

@lastest/mcp-server

npm version npm downloads License GitHub stars

适用于 Claude Code、Cursor、Windsurf、Cline 和 Claude Desktop 的 MCP 服务。让 AI Agent 通过模型上下文协议,在 Lastest 实例上运行视觉回归测试、审查截图差异并批准基线。

快速开始

npx -y @lastest/mcp-server@latest --url https://your-lastest-instance --api-key YOUR_API_KEY

在 Lastest 界面中生成 API 密钥:Settings → Runners & API Access → Create API Key(仅显示一次)。该服务通过 stdio 使用 MCP 通信,可将其接入下方任何兼容客户端。

兼容客户端

客户端状态安装方式
Claude Code已验证claude mcp add(见下文)
Claude Desktop已验证claude_desktop_config.json
Cursor已验证~/.cursor/mcp.json
Windsurf已验证MCP 配置(通用 JSON)
Cline已验证MCP 配置(通用 JSON)

任何能够通过参数启动 stdio 服务的 MCP 兼容客户端都适用。

安装 — Claude Code

claude mcp add lastest -- npx -y @lastest/mcp-server@latest \
  --url https://your-lastest-instance \
  --api-key YOUR_API_KEY

使用 claude mcp list 验证。

安装 — Claude Desktop / Cursor / Windsurf / Cline

将配置添加到 claude_desktop_config.json、~/.cursor/mcp.json 或客户端的 MCP 配置中:

{
  "mcpServers": {
    "lastest": {
      "command": "npx",
      "args": [
        "-y",
        "@lastest/mcp-server@latest",
        "--url",
        "https://your-lastest-instance",
        "--api-key",
        "YOUR_API_KEY"
      ]
    }
  }
}

重启客户端。

Agent 能做什么

  • 列出代码仓库、测试、功能区域、构建和活跃任务
  • 根据 URL 或自然语言提示词创建 AI 编写的测试
  • 更新或删除测试和功能区域
  • 自行配置测试运行时:playwrightOverrides、diffOverrides、stabilizationOverrides、视口和设置接线
  • 管理共享身份验证:存储状态(Playwright storageState() 数据块)和可复用的设置脚本
  • 触发测试运行(可选启用 forceVideoRecording)并读取运行结果
  • 检查视觉差异,并单独或批量批准/拒绝基线
  • 根据最新一次运行结果,借助 AI 修复失败的测试
  • 发布、列出和撤销构建与测试的公开分享链接
  • 读取和更新代码仓库级别的 Playwright 设置(浏览器、视口、超时、并行度、稳定性)
  • 推进 Verify 阶段:变更地图、步骤比较、按层审批
  • 获取 QA 摘要、生成构建审查报告和覆盖率统计

提供的工具

该服务注册了 20 个 MCP 工具(均以 lastest_ 为前缀)。每个工具都会返回结构化的 { status, summary, actionRequired?, details } 负载。

纯 CRUD 操作整合为资源工具,通过 action(或 scope)参数区分操作;工作流动词则保留为独立工具。

资源工具(按 action 分派)
工具action(或 scope)的取值用途
lastest_statushealth、jobs、job实例连接状态 + 后台任务状态
lastest_repolist、get、create、update、get_settings、update_settings仓库 + 仓库级 Playwright 设置
lastest_arealist、create、update、delete、list_tests功能区域(测试分组)
lastest_testlist(filter: all|failing)、get、update、delete读取、更新或删除测试
lastest_storage_statelist、create、delete已保存的 Playwright storageState() 数据块
lastest_setup_scriptlist、get、create、update、delete可复用的 Playwright/API 设置代码块
lastest_get_diffsscope: single|build查看视觉差异(单个,或某次构建的全部差异)
lastest_decide_diffapprove、reject(通过 diffIds 批量处理,或通过 buildId 全部批准)批准/拒绝视觉差异和基线
lastest_buildlist、get、review构建:列表、状态、全面的 QA 审核
lastest_sharelist、revoke列出/撤销现有的公开分享
lastest_verifyview、change_map验证阶段视图 + 构建级变更映射
lastest_insightscoverage、qa仓库覆盖率统计 + QA 摘要
工作流动词(独立工具)
工具用途
lastest_run_tests触发测试构建(仓库/区域/指定测试)
lastest_create_test创建测试(直接创建/AI 创建,浏览器/API 模式)
lastest_heal_testAI 修复 Agent 自动修复失败的测试
lastest_validate_diff针对差异的验证:仅运行受影响的测试,并返回判定结果
lastest_suggest_app_fix针对真实回归问题,提供应用代码修复建议
lastest_approve_layer对步骤比较执行逐层批准/拒绝/暂缓
lastest_publish_share为构建/测试发布 /r/<slug> 公开分享
lastest_quickstart启动产品化的 2 项测试演示(返回 sessionId)
lastest_quickstart_status轮询 QuickStart 会话
自配置测试

lastest_test(action: "update")支持完整的覆盖配置,让 Agent 无需操作 UI 即可配置测试:

  • 设置连线 — setupTestId(使用另一个测试作为设置,优先级更高)或 setupScriptId,以及用于注入或跳过默认步骤(test | script | storage_state)的 setupOverrides / teardownOverrides 块。
  • 运行时覆盖 — playwrightOverrides(浏览器、导航/操作/选择器超时、错误模式、baseUrl、光标速度)、viewportOverride、diffOverrides、stabilizationOverrides。
  • 生命周期 — quarantined、executionMode(procedural | agent)。

将任意覆盖配置块设为 null 即可清除该配置。API 会在保存前验证每个引用的 ID 是否属于同一仓库。

迁移 — 工具整合(v0.3.x)

工具接口从约 56 个独立工具整合为约 21 个,方法是将纯 CRUD 操作并入上述资源工具。对于调用旧版逐操作工具名称的脚本,这是一项破坏性变更。工作流动词和 QuickStart 链(lastest_quickstart → lastest_quickstart_status → lastest_publish_share)保留了原有名称和签名。已移除的名称请按以下方式替换:

已移除的工具现在调用
lastest_health、lastest_list_jobs、lastest_get_joblastest_status { health | jobs | job }
lastest_list_repos、lastest_get_repo、lastest_create_repo、lastest_update_repo、lastest_get_repo_settings、lastest_update_repo_settingslastest_repo { action }
lastest_list_areas、lastest_create_area、lastest_update_area、lastest_delete_area、lastest_list_area_testslastest_area { action }
lastest_list_tests、lastest_get_test、lastest_update_test、lastest_delete_test、lastest_list_failing_testslastest_test { action }
lastest_list_storage_states、lastest_create_storage_state、lastest_delete_storage_statelastest_storage_state { action }
lastest_list_setup_scripts、lastest_get_setup_script、lastest_create_setup_script、lastest_update_setup_script、lastest_delete_setup_scriptlastest_setup_script { action }
lastest_get_diff、lastest_get_build_diffslastest_get_diffs { scope }
lastest_approve_diff、lastest_reject_diff、lastest_approve_build_diffslastest_decide_diff { approve | reject }
lastest_list_builds、lastest_get_build_status、lastest_review_build、lastest_get_test_runlastest_build { list | get | review }
lastest_list_build_shares、lastest_list_test_shares、lastest_revoke_sharelastest_share { list | revoke }
lastest_get_coverage、lastest_get_qa_summarylastest_insights { coverage | qa }
lastest_verify_view、lastest_get_change_maplastest_verify { view | change_map }

迁移期间,如果暂时需要旧名称,请固定使用此软件包的 0.2.x 版本。

命令行

lastest-mcp --url <url> --api-key <key>

该进程通过 stdio 与宿主客户端通信。

标志默认值含义
--url(必填)工具调用的 Lastest 实例。
--api-key—API 密钥。stdio 模式下必填;在 http 模式下,用作未携带 Authorization 标头的请求的备用密钥。
--transportstdiostdio 用于本地 Agent,http 用于远程 Streamable HTTP 端点。
--port / --host9700 / 127.0.0.1http 模式下的监听地址和端口。
--access-levelfullread、write 或 full——要公开多少工具功能。

要求: Node.js 18+,以及可访问的 Lastest 实例。

远程(Streamable HTTP)

大多数情况下,你需要使用 Lastest 实例已提供的端点:

https://your-lastest-instance/api/mcp

该端点使用 Streamable HTTP,并支持 API 密钥或 OAuth 2.1 连接,因此只支持 URL 的 Agent 平台(Salesforce Agentforce、ChatGPT、Claude 网页版)也可以自行连接——它会从 WWW-Authenticate 标头中发现授权服务器、自行注册,并引导你完成授权同意页面。OAuth 连接只能使用工具的 read 或 write 子集;删除内容、撤销共享和发布公开链接仍需使用你自己的 API 密钥。

如果你想在单独的主机或端口上提供 MCP 端点,可以将此软件包作为独立的 HTTP 服务运行:

lastest-mcp --url https://your-lastest-instance --transport http --port 9700
# → POST http://127.0.0.1:9700/mcp with Authorization: Bearer <api-key>

此模式仅支持 API 密钥;独立进程不支持 OAuth。

访问级别

--access-level(以及 /api/mcp 上的 OAuth 作用域)决定可用的工具功能:

级别可用内容
read项目、测试、构建、差异、覆盖率、验证和作业状态。
write包含 read 的所有内容,另加运行测试、创建和更新测试及区域,以及批准或拒绝视觉变更。
full包含所有内容,包括删除、撤销共享和发布公开的 /r/ 链接。仅限 API 密钥。

工具会在注册时进行筛选,因此受限连接不会看到无法调用的操作。

身份验证

该服务使用 Bearer 令牌对 Lastest 的 REST API(/api/v1/*)进行身份验证。你可以在 Lastest 界面的 Settings → Runners & API Access 中管理和撤销密钥。

故障排查

症状解决方法
Failed to connect to Lastest at …检查此计算机是否可以访问该 URL,以及 API 密钥是否有效。
Lastest API error 401令牌已撤销或过期——在 Settings 中生成新令牌。
Claude Code 中未显示工具运行 claude mcp list;如果缺失,请重新运行 claude mcp add。重启客户端。
Cursor / Windsurf / Cline 中未显示工具确认 JSON 配置有效,并已完全重启客户端。

本地开发

git clone https://github.com/las-team/lastest
cd lastest/packages/mcp-server
pnpm install
pnpm dev -- --url http://localhost:3000 --api-key <key>

搭配使用

  • Lastest — 视觉回归测试平台,提供截图差异对比和 AI 测试编写功能
  • @lastest/runner — 可自托管的运行器,可在你的基础设施上执行由 AI 触发的测试
  • Model Context Protocol — 为 Claude、Cursor、Windsurf 等产品中的工具调用提供支持的开放标准

链接

许可证

FSL-1.1-ALv2 — 详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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