Lastest MCP server
io.github.las-team/lastest·v0.3.7·19 starsRun visual regression tests, review diffs, and manage baselines on a Lastest instance.
19 stars40 downloads/wk
Reviews
Write oneNobody has reviewed Lastest yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Lastest tools (50, 17 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
lastest_approve_all_diffsApprove all pending visual diffs in a build at once.
lastest_approve_baselineApprove visual changes, updating baselines. Accepts one or more diff IDs.
lastest_approve_diffApprove a single visual diff, accepting the current screenshot as the new baseline.
lastest_approve_layerPer-layer feedback on a step comparison: approve (Mark expected \u2192 write baseline), reject (Needs fix \u2192 create todo), or snooze (suppress for this build only).
lastest_create_areawrite actionCreate a new functional area for organizing tests.
lastest_create_repowrite actionCreate a new local repository in the current team. Use this when you need a fresh workspace for tests without connecting to GitHub/GitLab. Pass `baseUrl` to point the repo at an external app (e.g. https://staging.example.com) so generated tests target the right origin instead of localhost:3000.
lastest_create_setup_scriptwrite actionCreate a reusable setup script for a repository. Two types: `playwright` (async function with page+context) and `api` (HTTP seeding). Attach the returned ID to a test via lastest_update_test with `setupScriptId`.
lastest_create_storage_statewrite actionCreate a new storage state for a repo from a Playwright `storageState()` JSON string. The JSON should be the output of `await context.storageState()` \u2014 an object with `cookies` and `origins` arrays. Use this to share a logged-in session across tests instead of re-logging in. Treat the raw JSON like a password: only call this with tokens you intend Lastest to use.
lastest_create_testwrite actionCreate a test. Two modes: (1) **direct** \u2014 pass { name, code } to insert ready-made Playwright code. (2) **AI** \u2014 pass { url } and/or { prompt } to have the Lastest AI agent generate the test. Direct mode returns immediately with a test ID; AI mode may take longer and returns the generated code.
lastest_delete_areawrite actionSoft-delete a functional area. Tests remain but become unassigned.
lastest_delete_setup_scriptwrite actionDelete a setup script. Refused with 409 if any test still references it via setupScriptId \u2014 the response lists the blocking tests.
lastest_delete_storage_statewrite actionDelete a storage state. Tests referencing it via setupOverrides.extraSteps will lose that step \u2014 review usage before deleting.
lastest_delete_testwrite actionSoft-delete a test (can be restored). Does not permanently remove test data.
lastest_get_build_statusGet the current status and results of a build. Use after lastest_run_tests to check progress. Returns slim build scalars + slim diff index \u2014 drill into a specific diff with lastest_get_visual_diff (or pass `includeDiffs: "full"` if you really need the joined a11y/network/AI payloads).
lastest_get_change_mapGet the build-level Change Map (4-signal area ranking + AI intent/risk summary) for a build.
lastest_get_coverageGet test coverage statistics by functional area and route.
lastest_get_diffGet full details of a single visual diff including pixel data, AI analysis, and test info.
lastest_get_job_statusGet the status and progress of a specific background job.
lastest_get_playwright_settingsGet the repo-level Playwright settings (browser, viewport, timeouts, error modes, stabilization, parallelism caps, etc.). Falls back to the global row + built-in defaults when no per-repo row exists.
lastest_get_repoGet details about a specific repository.
lastest_get_setup_scriptGet a setup script including its code.
lastest_get_testGet full details of a single test including code, URL, and last run status.
lastest_get_test_runwrite actionGet detailed results for a specific test run, including individual test results, errors, and durations.
lastest_get_visual_diffGet visual diff details for a build, including AI classification and confidence scores.
lastest_heal_testTrigger the AI healer agent to automatically fix a failing test by inspecting the live UI and updating selectors/assertions.
lastest_health_checkCheck connectivity to the Lastest instance.
lastest_list_active_jobsList currently active background jobs (builds, AI operations, etc.).
lastest_list_areasList functional areas (test groupings) for a repository.
lastest_list_build_sharesList public shares anchored on a build (includes revoked ones \u2014 check `status`). Use to find an existing share before publishing a duplicate, or to grab a slug for revoke.
lastest_list_buildsList recent builds for a repository with status and test counts.
lastest_list_failing_testsList tests that are currently failing, with error details.
lastest_list_reposList all repositories accessible to the current team.
lastest_list_setup_scriptsList setup scripts for a repository. Each entry includes id, name, type (`playwright` or `api`), and code so you can pick one to attach to a test via setupScriptId.
lastest_list_storage_statesList storage states (saved Playwright `storageState()` blobs \u2014 cookies + localStorage) for a repository. Returns metadata only; the raw JSON is omitted because it contains live auth tokens. Use these IDs when wiring `setupOverrides.extraSteps` on a test via lastest_update_test.
lastest_list_test_sharesList public shares anchored on a single test.
lastest_list_testsList all tests in a repository with their latest pass/fail status.
lastest_list_tests_by_areaList tests within a specific functional area.
lastest_publish_sharewrite actionPublish a public-share link for a build (or a single test within it). Returns a `/r/<slug>` URL anyone can view without logging in. Use after a build completes so demos and outreach messages can link directly to the visual result. Pass `scopedTestId` to scope the share to one test instead of the whole build.
lastest_qa_summaryGet a comprehensive QA overview for a repository: test health, recent builds, and action items.
lastest_reject_baselineReject visual changes, marking them as regressions. Accepts one or more diff IDs.
lastest_reject_diffReject a single visual diff, marking it as a regression.
lastest_review_buildComprehensive build review: fetches build details, visual diffs, and failed tests into a structured QA summary with action items.
lastest_revoke_shareRevoke a public share by its share ID. The `/r/<slug>` URL stops resolving immediately. Find share IDs via lastest_list_build_shares or lastest_list_test_shares.
lastest_run_testswrite actionTrigger a test build and return structured results. Can run all tests in a repo, all tests inside one functional area, or specific test IDs. Pass `forceVideoRecording: true` when you intend to publish a share that should include the video player (the share page renders the embedded clip only when the build has video).
lastest_update_areawrite actionUpdate a functional area's name, description, or parent.
lastest_update_playwright_settingswrite actionUpsert repo-level Playwright settings. Pass any subset of fields \u2014 unknown keys are rejected, unspecified ones stay at their current value. Use this when the demo skill needs to retarget a repo at a different browser, viewport, or error policy without touching every test individually.
lastest_update_repowrite actionUpdate a repository's name, default branch, selected branch, or base URL. `baseUrl` is the value passed to `test(page, baseUrl, ...)` \u2014 set it to point a repo at an external app instead of the default http://localhost:3000.
lastest_update_setup_scriptwrite actionUpdate a setup script's name, type, code, or description.
lastest_update_testwrite actionUpdate a test's name, code, URL, functional area, setup wiring, or runtime overrides. Pass `setupTestId` to point this test at another test for setup (the most common pattern when two tests share a login), or `setupScriptId` to point at a saved setup script \u2014 these two are mutually exclusive. Use `setupOverrides` / `teardownOverrides` to skip specific default steps or inject extra ones (test
lastest_verify_buildGet the full verify-build view: Change Map + step comparisons grouped by regression vs intent gate.
Public scan report
scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it
- Code scan5 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 7 days ago15/15
- Maintainer identityregistry namespace matches repository owner7/10
How Lastest compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 91/100
- higher than 85% of 48,255 servers
- Tools
- 50
- the typical server has 7
- Tools that change things
- 34%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 19
- more than 91% of 28,688 servers
- Downloads a week
- 40
- more than 31% of 12,191 servers with a package
What its tools let an agent do: 33 read · 17 change
Install Lastest in Claude Code, Cursor or VS Code
Runs npx -y @lastest/mcp-server on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add lastest -- npx -y @lastest/mcp-server
What the publisher says
From the Lastest repository's README, as published. We do not edit it. Read it on GitHub
Free, open-source visual regression testing with AI-generated tests Record it. Test it. Ship it.
Website • Wiki • Features • Quick Start • How It Works • Why Lastest • Comparison • Commands • Config
The Problem
Visual regression testing is either expensive, flaky, or painful to maintain.
- Cloud tools: per-screenshot pricing, cloud-only, no self-hosting
- Enterprise tools: steep learning curve, locked to specific frameworks
- Open-source tools: free but no dashboard, no collaboration, no AI, or in maintenance mode
Meanwhile, you just need to know: "Did my last commit break the UI?"
The Solution
Lastest is a free, self-hosted visual regression testing platform that records your tests, writes them with AI, runs them anywhere, and fixes them when they break — all in one tool.
1. Point it at your app
2. Record your user flows (point-and-click, no code)
3. AI generates resilient test code with multi-selector fallback
4. Every test runs inside an Embedded Browser container (EB stack required)
5. Screenshots compared with 3 diff engines (pixelmatch, SSIM, Butteraugli)
6. Review and approve visual changes — or let AI auto-classify themWhen self-hosted, your data stays on your server and your screenshots never leave your infra.
Three Ways to Work
Lastest adapts to how you want to build tests — from fully manual to fully autonomous.
1. AI-Free (Manual Recording)
Open the recorder, click through your app, hit stop. Lastest captures every interaction and generates deterministic Playwright code — no AI involved, no API keys needed. You own the test code and can edit it by hand.
Best for: Teams that don't want AI, air-gapped environments, simple flows.
2. AI-Assisted (Human-in-the-Loop)
AI generates, fixes, or enhances tests — but you review and approve before anything is saved. Feed it a URL and get a test back. Import OpenAPI specs or user stories and AI extracts test cases. When a test breaks, AI proposes a fix and you decide whether to accept it.
Best for: Day-to-day development, iterating on tests, fixing breakages fast.
3. Full Autonomous (Play Agent)
One click kicks off an 11-step pipeline: check settings, select repo, set up environment, scan routes & apply testing template, plan functional areas, review plan, generate tests, run them, fix failures (up to 3 attempts per test), re-run, and report results. Uses specialized sub-agents (Orchestrator, Planner, Scout, Diver, Generator, Healer). The agent pauses and asks for help only when it hits something it can't resolve on its own. You resume and it picks up where it left off.
Best for: Onboarding a new project, generating full coverage from scratch, CI bootstrapping.
One Way to Run: Embedded Browser
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Lastest: common questions
- Is Lastest MCP server safe?
- Yes, by our scan: it is graded A (91/100). Read the Lastest safety report
- How do I install Lastest?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Lastest need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Lastest maintained?
- The last commit was 46 days ago (2026-09-19). The latest release is v0.3.7.
- How does Lastest compare with other MCP servers?
- safety score 91/100 (higher than 85% of 48,255 servers); tools 50 (the typical server has 7); tools that change things 34% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.