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 套件以執行個體網址和在 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 分

    請在儲存庫或註冊中心條目中宣告授權條款。