Lastest

io.github.las-team由 GitHub 账号 las-team 发布v0.3.7更新于 Oct 24, 2026

Run visual regression tests, review diffs, and manage baselines on a Lastest instance.

已验证STDIO仅桌面浏览器自动化开发者工具

概览

AI 生成的概览

将 AI 助手连接到 Lastest 实例,用于运行视觉回归测试、查看截图差异并批准基线。

可以做什么
列出并管理仓库、功能区域、测试、构建和后台任务,包括用 AI 创建测试以及更新测试运行时设置和初始化配置。触发测试运行并读取运行结果、覆盖率统计和 QA 摘要。查看视觉差异并逐条或批量批准、拒绝基线,包括验证阶段的逐层审批。管理共享认证的存储状态和可复用的初始化脚本。发布、列出和撤销构建与测试的公开分享链接。用 AI 修复失败的测试,并获得应用代码修复建议。
适用场景
适合在 Lastest 实例上进行视觉回归测试的团队,让助手触发运行、排查截图差异、批准基线并获取 QA 或覆盖率报告,而无需切换到网页界面。
运行要求
需要 Node.js 18+ 和可访问的 Lastest 实例。stdio 包通过实例 URL 和在 Lastest 界面创建的 API 密钥启动,密钥以命令行参数传入。也可改用实例上的远程 Streamable HTTP 端点,支持 API 密钥或 OAuth 2.1。
安装前请注意
API 密钥可访问 Lastest 实例,且以命令行参数传递,应避免写入共享配置或日志。在完全权限下,助手可删除测试和功能区域、撤销分享并发布公开分享链接;可用 read 或 write 访问级别加以限制。OAuth 连接不具备删除、撤销和发布操作。测试运行会占用实例的运行器和资源。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Lastest,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@lastest/mcp-server

[npm version] [npm downloads] [License] [GitHub stars]

MCP server for Claude Code, Cursor, Windsurf, Cline, and Claude Desktop. Lets AI agents run visual regression tests, review screenshot diffs, and approve baselines on a Lastest instance through the Model Context Protocol.

Quick start

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

Generate an API key in the Lastest UI: Settings → Runners & API Access → Create API Key (shown only once). The server speaks MCP over stdio — wire it into any compatible client below.

Compatible clients

ClientStatusInstall method
Claude CodeVerifiedclaude mcp add (see below)
Claude DesktopVerifiedclaude_desktop_config.json
CursorVerified~/.cursor/mcp.json
WindsurfVerifiedMCP config (generic JSON)
ClineVerifiedMCP config (generic JSON)

Any MCP-compliant client that can launch a stdio server with arguments works.

Install — Claude Code

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

Verify with claude mcp list.

Install — Claude Desktop / Cursor / Windsurf / Cline

Add to claude_desktop_config.json, ~/.cursor/mcp.json, or your client's MCP config:

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

Restart the client.

What an agent can do

  • List repositories, tests, functional areas, builds, and active jobs
  • Create AI-authored tests from a URL or natural-language prompt
  • Update or delete tests and functional areas
  • Self-configure test runtime: playwrightOverrides, diffOverrides, stabilizationOverrides, viewport, setup wiring
  • Manage shared auth: storage states (Playwright storageState() blobs) and reusable setup scripts
  • Trigger test runs (optionally forceVideoRecording) and read run results
  • Inspect visual diffs and approve / reject baselines individually or in bulk
  • Heal failing tests with AI based on the latest run
  • Publish, list, and revoke public-share links for builds and tests
  • Read and update repo-level Playwright settings (browser, viewport, timeouts, parallelism, stabilization)
  • Drive the Verify phase: Change Map, step comparisons, per-layer approvals
  • Pull QA summaries, build review reports, and coverage stats

Tools exposed

The server registers 20 MCP tools (all prefixed lastest_). Every tool returns a structured { status, summary, actionRequired?, details } payload.

Pure CRUD operations are consolidated into resource tools that take an action (or scope) discriminator; workflow verbs stay as standalone tools.

Resource tools (action-dispatched)

Toolaction (or scope) valuesPurpose
lastest_statushealth, jobs, jobInstance connectivity + background-job status
lastest_repolist, get, create, update, get_settings, update_settingsRepositories + repo-level Playwright settings
lastest_arealist, create, update, delete, list_testsFunctional areas (test groupings)
lastest_testlist (filter: all|failing), get, update, deleteRead/update/delete tests
lastest_storage_statelist, create, deleteSaved Playwright storageState() blobs
lastest_setup_scriptlist, get, create, update, deleteReusable Playwright/API setup blocks
lastest_get_diffsscope: single|buildRead visual diffs (one, or all for a build)
lastest_decide_diffapprove, reject (via diffIds batch or buildId approve-all)Approve/reject visual diffs & baselines
lastest_buildlist, get, reviewBuilds: list, status, comprehensive QA review
lastest_sharelist, revokeList/revoke existing public shares
lastest_verifyview, change_mapVerify-phase view + build-level Change Map
lastest_insightscoverage, qaRepo coverage stats + QA summary

Workflow verbs (standalone)

ToolPurpose
lastest_run_testsTrigger a test build (repo / area / specific tests)
lastest_create_testCreate a test (direct/AI, browser/API modes)
lastest_heal_testAI healer agent auto-fixes a failing test
lastest_validate_diffDiff-scoped validation: run only affected tests, return a verdict
lastest_suggest_app_fixAdvisory application-code fix for a real regression
lastest_approve_layerPer-layer approve/reject/snooze on a step comparison
lastest_publish_sharePublish a /r/<slug> public share for a build/test
lastest_quickstartSpin up the productized 2-test demo (returns sessionId)
lastest_quickstart_statusPoll a QuickStart session

Self-configuring tests

lastest_test (action: "update") accepts a full override surface so an agent can shape a test without touching the UI:

  • Setup wiring — setupTestId (use another test as setup, takes precedence) or setupScriptId, plus setupOverrides / teardownOverrides blocks to inject/skip default steps (test | script | storage_state).
  • Runtime overrides — playwrightOverrides (browser, navigation/action/selector timeouts, error modes, baseUrl, cursor speed), viewportOverride, diffOverrides, stabilizationOverrides.
  • Lifecycle — quarantined, executionMode (procedural | agent).

Pass null to any override block to clear it. The API validates each referenced id is in the same repo before persisting.

Migration — tool consolidation (v0.3.x)

The tool surface was consolidated from ~56 discrete tools to ~21 by folding pure CRUD into the resource tools above. This is a breaking change for scripts that called the old per-operation tool names. The workflow verbs and the QuickStart chain (lastest_quickstart → lastest_quickstart_status → lastest_publish_share) kept their names and signatures. Map any removed names as follows:

Removed tool(s)Now call
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 }

If you need the old names temporarily, pin a 0.2.x release of this package while you migrate.

CLI

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

The process communicates with the host client over stdio.

FlagDefaultMeaning
--url(required)Lastest instance the tools call.
--api-key—API key. Required for stdio; in http mode it is the fallback for requests that arrive without an Authorization header.
--transportstdiostdio for a local agent, http for a remote Streamable HTTP endpoint.
--port / --host9700 / 127.0.0.1Where to listen in http mode.
--access-levelfullread, write or full — how much of the tool surface to expose.

Requirements: Node.js 18+ and a reachable Lastest instance.

Remote (Streamable HTTP)

Most people want the endpoint your Lastest instance already serves:

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

It speaks Streamable HTTP and accepts either an API key or an OAuth 2.1 connection, so an agent platform that only knows a URL (Salesforce Agentforce, ChatGPT, Claude web) can connect on its own — it discovers the authorization server from the WWW-Authenticate header, registers itself, and sends you through a consent screen. OAuth connections get a read or write subset of the tools; deleting things, revoking shares and publishing public links stay behind your own API key.

Run this package as its own HTTP server when you want the MCP endpoint on a separate host or port:

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

This mode is API-key only; there is no OAuth in the standalone process.

Access levels

--access-level (and, on /api/mcp, the OAuth scope) picks the tool surface:

LevelSees
readProjects, tests, builds, diffs, coverage, verification, job status.
writeEverything in read, plus running tests, creating/updating tests and areas, and approving or rejecting visual changes.
fullEverything, including deletes, revoking shares and publishing public /r/ links. API key only.

Tools are filtered at registration, so a restricted connection never sees an action it cannot call.

Authentication

The server authenticates against Lastest's REST API (/api/v1/*) with a Bearer token. Manage and revoke keys from Settings → Runners & API Access in the Lastest UI.

Troubleshooting

SymptomFix
Failed to connect to Lastest at …Check the URL is reachable from this machine and that the API key is valid.
Lastest API error 401Token revoked or expired — generate a new one in Settings.
Tools don't appear in Claude CodeRun claude mcp list; if missing re-run claude mcp add. Restart the client.
Tools don't appear in Cursor / Windsurf / ClineConfirm the JSON config is valid and the client was fully restarted.

Local development

bash
git clone https://github.com/las-team/lastestcd lastest/packages/mcp-serverpnpm installpnpm dev -- --url http://localhost:3000 --api-key <key>

Used with

  • Lastest — visual regression testing platform with screenshot diffs and AI test authoring
  • @lastest/runner — self-hosted runner so AI-triggered tests execute on your infra
  • Model Context Protocol — open standard powering tool use in Claude, Cursor, Windsurf, and others

Links

License

FSL-1.1-ALv2 — see LICENSE.

来源:packages/mcp-server/README.md,提交 d734cce

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.3.7最新Sep 16, 2026

评分

已满足适用检查项的 40%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。