Lastest

io.github.las-teamPublished by GitHub account las-teamv0.3.7Updated Oct 24, 2026

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

VerifiedSTDIODesktop onlyBrowser AutomationDeveloper Tools

Overview

AI-generated overview

Connects an AI assistant to a Lastest instance so it can run visual regression tests, review screenshot diffs, and approve baselines.

What you can do
List and manage repositories, functional areas, tests, builds and background jobs, including creating AI-authored tests and updating test runtime settings and setup wiring. Trigger test runs and read run results, coverage stats and QA summaries. Inspect visual diffs and approve or reject baselines individually or in bulk, including per-layer approvals in the Verify phase. Manage shared auth storage states and reusable setup scripts. Publish, list and revoke public share links for builds and tests. Heal failing tests with AI and get advisory application-code fix suggestions.
When to use it
Useful when a team runs visual regression testing on a Lastest instance and wants an assistant to trigger runs, triage screenshot diffs, approve baselines and pull QA or coverage reports without switching to the web UI.
Requirements
Node.js 18+ and a reachable Lastest instance. The stdio package is started with the instance URL and an API key created in the Lastest UI; the key is passed as a command-line argument. A remote Streamable HTTP endpoint on the instance can alternatively accept an API key or OAuth 2.1.
Before you install
The API key grants access to the Lastest instance and is passed on the command line, so keep it out of shared configs and logs. With full access the assistant can delete tests and areas, revoke shares and publish public share links; restrict with the read or write access level. OAuth connections never get delete, revoke or publish actions. Test runs consume the instance's runners and resources.

Installation

In SourceWeft

  1. Open Lastest in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

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.

Source: packages/mcp-server/README.md at commit d734cce

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.3.7LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.