Lastest について
Lastest MCP サーバーは、ビジュアルリグレッションテストの Lastest をClaude Code や Cursor などのクライアントから AI エージェントが扱えるようにします。クラウド版またはセルフホスト版のインスタンスでテスト実行、スクリーンショット差分の確認、ベースラインの承認を行うチーム向けです。
主な機能
- 01テストの実行と実行結果の取得
- 02ビジュアル差分の確認とベースラインの承認・却下
- 03AI によるテストの作成と修復
- 04ストレージステートや再利用可能なセットアップスクリプトの管理
- 05read・write・full のアクセスレベルによるツールの絞り込み
活用シーン
- 01エージェントが UI を変更した後のビジュアルリグレッションテスト実行
- 02MCP クライアントからのスクリーンショット差分のレビューと承認
- 03URL や自然言語の指示からのテスト生成
MCP 対応
stdio または Streamable HTTP で lastest_ プレフィックスの 20 個のツールを MCP クライアントに公開し、クライアントの代わりに Lastest インスタンスの REST API を呼び出すMCP サーバーです。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
@lastest/mcp-server
Claude Code、Cursor、Windsurf、Cline、Claude Desktop向けのMCP サーバーです。AI エージェントが、Model Context Protocolを通じてLastestインスタンス上でビジュアルリグレッションテストを実行し、スクリーンショットの差分をレビューして、ベースラインを承認できるようにします。
クイックスタート
npx -y @lastest/mcp-server@latest --url https://your-lastest-instance --api-key YOUR_API_KEY
LastestのUIで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"
]
}
}
}
クライアントを再起動します。
エージェントができること
- リポジトリ、テスト、機能領域、ビルド、アクティブなジョブを一覧表示する
- URLまたは自然言語のプロンプトから、AIが作成したテストを作成する
- テストと機能領域を更新または削除する
- テストの実行環境をセルフ設定する:
playwrightOverrides、diffOverrides、stabilizationOverrides、ビューポート、セットアップの配線 - 共有認証を管理する:ストレージ状態(Playwrightの
storageState()blobs)と再利用可能なセットアップスクリプト - テスト実行を開始し(必要に応じて
forceVideoRecordingを指定)、実行結果を読み取る - ビジュアル差分を調べ、ベースラインを個別または一括で承認/却下する
- 最新の実行結果に基づいて、AIで失敗したテストを修復する
- ビルドとテストの公開共有リンクを公開、一覧表示、無効化する
- リポジトリレベルのPlaywright設定(ブラウザー、ビューポート、タイムアウト、並列実行数、安定化)を読み取り、更新する
- Verifyフェーズを進める:Change Map、ステップ比較、レイヤーごとの承認
- QAサマリー、ビルドレビューレポート、カバレッジ統計を取得する
公開されるツール
このサーバーは20個のMCPツール(すべてlastest_を接頭辞とします)を登録します。各ツールは、構造化された{ status, summary, actionRequired?, details }ペイロードを返します。
純粋なCRUD操作は、action(またはscope)識別子を受け取るリソースツールにまとめられています。ワークフローの動詞は独立したツールとして提供されます。
リソースツール(アクション振り分け)
| ツール | action(または scope)の値 | 目的 |
|---|---|---|
lastest_status | health、jobs、job | インスタンスの接続状況とバックグラウンドジョブのステータス |
lastest_repo | list、get、create、update、get_settings、update_settings | リポジトリとリポジトリ単位のPlaywright設定 |
lastest_area | list、create、update、delete、list_tests | 機能領域(テストグループ) |
lastest_test | list(filter: all|failing)、get、update、delete | テストの読み取り/更新/削除 |
lastest_storage_state | list、create、delete | 保存済みPlaywright storageState()のデータ |
lastest_setup_script | list、get、create、update、delete | 再利用可能なPlaywright/APIセットアップブロック |
lastest_get_diffs | scope: single|build | ビジュアル差分の読み取り(1件、またはビルドの全件) |
lastest_decide_diff | approve、reject(diffIdsによる一括処理、またはbuildIdによる一括承認) | ビジュアル差分とベースラインの承認/却下 |
lastest_build | list、get、review | ビルド:一覧、ステータス、包括的なQAレビュー |
lastest_share | list、revoke | 既存の公開共有の一覧表示/取り消し |
lastest_verify | view、change_map | 検証フェーズのビューとビルド単位の変更マップ |
lastest_insights | coverage、qa | リポジトリのカバレッジ統計とQAサマリー |
ワークフロー動詞(単独)
| ツール | 目的 |
|---|---|
lastest_run_tests | テストビルドを実行します(リポジトリ/領域/特定のテスト) |
lastest_create_test | テストを作成します(直接/AI、ブラウザー/APIモード) |
lastest_heal_test | AI修復エージェントが失敗したテストを自動修正します |
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")は、UI に触れることなくエージェントがテストを調整できるよう、すべての上書き項目を受け付けます。
- セットアップの設定 —
setupTestId(別のテストをセットアップとして使用し、こちらが優先されます)、またはsetupScriptIdに加え、デフォルトの手順(test|script|storage_state)を挿入またはスキップするsetupOverrides/teardownOverridesブロック。 - 実行時の上書き —
playwrightOverrides(ブラウザー、ナビゲーション/アクション/セレクターのタイムアウト、エラーモード、baseUrl、カーソル速度)、viewportOverride、diffOverrides、stabilizationOverrides。 - ライフサイクル —
quarantined、executionMode(procedural|agent)。
任意の上書きブロックに null を渡すと、そのブロックがクリアされます。API は、参照される各 ID が保存前に同じリポジトリ内にあることを検証します。
移行 — ツールの統合(v0.3.x)
純粋な CRUD を上記のリソースツールに統合したことで、ツール群を個別のツール約 56 個から約 21 個に集約しました。これは、従来の操作ごとのツール名を呼び出していたスクリプトにとって破壊的変更です。ワークフローの動詞と QuickStart チェーン(lastest_quickstart → lastest_quickstart_status → lastest_publish_share)の名前とシグネチャは変更されていません。削除された名前は、次のように置き換えてください。
| 削除されたツール | 代わりに呼び出すツール |
|---|---|
lastest_health、lastest_list_jobs、lastest_get_job | lastest_status { health | jobs | job } |
lastest_list_repos、lastest_get_repo、lastest_create_repo、lastest_update_repo、lastest_get_repo_settings、lastest_update_repo_settings | lastest_repo { action } |
lastest_list_areas、lastest_create_area、lastest_update_area、lastest_delete_area、lastest_list_area_tests | lastest_area { action } |
lastest_list_tests、lastest_get_test、lastest_update_test、lastest_delete_test、lastest_list_failing_tests | lastest_test { action } |
lastest_list_storage_states、lastest_create_storage_state、lastest_delete_storage_state | lastest_storage_state { action } |
lastest_list_setup_scripts、lastest_get_setup_script、lastest_create_setup_script、lastest_update_setup_script、lastest_delete_setup_script | lastest_setup_script { action } |
lastest_get_diff、lastest_get_build_diffs | lastest_get_diffs { scope } |
lastest_approve_diff、lastest_reject_diff、lastest_approve_build_diffs | lastest_decide_diff { approve | reject } |
lastest_list_builds、lastest_get_build_status、lastest_review_build、lastest_get_test_run | lastest_build { list | get | review } |
lastest_list_build_shares、lastest_list_test_shares、lastest_revoke_share | lastest_share { list | revoke } |
lastest_get_coverage、lastest_get_qa_summary | lastest_insights { coverage | qa } |
lastest_verify_view、lastest_get_change_map | lastest_verify { view | change_map } |
移行中に一時的に旧名が必要な場合は、このパッケージの 0.2.x リリースを固定してください。
CLI
lastest-mcp --url <url> --api-key <key>
プロセスは stdio 経由でホストクライアントと通信します。
| フラグ | デフォルト | 意味 |
|---|---|---|
--url | (required) | ツールが呼び出す Lastest インスタンス。 |
--api-key | — | API キー。stdio では必須です。http モードでは、Authorization ヘッダーなしで届いたリクエストに対するフォールバックとして使用されます。 |
--transport | stdio | ローカルエージェントの場合は stdio、リモートの Streamable HTTP エンドポイントの場合は http です。 |
--port / --host | 9700 / 127.0.0.1 | http モードでリッスンする場所です。 |
--access-level | full | read、write、full のいずれかです。公開するツールの範囲を指定します。 |
要件: Node.js 18 以降、および接続可能な Lastest インスタンス。
リモート(Streamable HTTP)
多くの場合、Lastest インスタンスがすでに提供しているエンドポイントを使用します。
https://your-lastest-instance/api/mcp
Streamable HTTP に対応しており、API キーまたは OAuth 2.1 接続を受け付けるため、URL のみを認識するエージェントプラットフォーム(Salesforce Agentforce、ChatGPT、Claude web)は単独で接続できます。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 UI の 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 などでのツール利用を支えるオープンスタンダード
リンク
- ホームページ: https://lastest.cloud
- GitHub: https://github.com/las-team/lastest
- Wiki: https://github.com/las-team/lastest/wiki/MCP-Server
- 課題: https://github.com/las-team/lastest/issues
- npm: https://www.npmjs.com/package/@lastest/mcp-server
ライセンス
FSL-1.1-ALv2 — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。