Sandbox
@OpenEvident/vindicate

MCP browser testing for Claude Code and Cursor

Vindicate connects an AI agent to local Playwright browser tools through an MCP server. A VS Code or Cursor extension installs the setup, then supervises the local MCP server and worker that handle workflow guidance, code generation, browser actions, and recordings.

46 stars2 forksTypeScriptUpdated 11d ago
Who it's for

Builders who want their agent to run browser tests, capture recordings, and work through local MCP tools.

What it delivers

You can let your agent drive browser-based tests and recordings without a remote job machine.

What it does

Local MCP server

`runtime-mcp` exposes workflow guidance, codegen, and browser tools to the agent.

Playwright worker

`runtime-worker` runs Chromium sessions, recordings, and API requests.

Editor extension

`apps/vscode-extension` installs rules and skills, then starts and supervises the local services.

Shared protocol and config

`packages/protocol` and `packages/config` hold the shared contracts and presets used across the stack.

Stateless local stack

The system keeps state on the machine and isolates projects by session rather than by remote infrastructure.

How to get it

  1. 1From repository root
    pnpm lint
    pnpm typecheck
    pnpm test
    pnpm build
  2. 2Build the runnable apps
    pnpm turbo build --filter=@vindicate/runtime-mcp
    pnpm turbo build --filter=@vindicate/runtime-worker
    pnpm turbo build --filter=vindicate

README

Vindicate

Vindicate Platform

Autonomous quality for AI-native development teams.

AI-native Playwright test automation for VS Code, Cursor, GitHub Copilot, Claude Code, and Antigravity.

GitHub top language visitors GitHub forks GitHub contributors GitHub Repo stars GitHub repo size GitHub watchers GitHub issues GitHub pull requests GitHub

Architecture

Vindicate is a stateless local stack. The extension installs rules and skills, then your agent (Cursor, GitHub Copilot, Claude Code, or Antigravity) calls a local MCP server for workflow guidance, codegen, and browser tools. No cloud job machine, no MongoDB, no remote orchestration.

flowchart TB
    subgraph ide["Your editor"]
        Agent["AI agent"]
        Ext["Vindicate extension"]
    end

    subgraph local["This machine, 127.0.0.1 only"]
        MCP["runtime-mcp"]
        Worker["runtime-worker"]
        Chromium["Chromium"]
    end

    Agent -->|MCP tools| MCP
    Ext -->|spawns + supervises| MCP
    Ext -->|spawns + supervises| Worker
    MCP -->|browser / record / API| Worker
    Worker --> Chromium
ComponentRole
VS Code / Cursor extensionOnboarding, dashboard, agent pairing, process supervisor
runtime-mcpMCP server the agent talks to: workflow, codegen, tools
runtime-workerPlaywright browser sessions, recordings, and API requests

runtime-mcp and runtime-worker are machine-wide singletons. Isolation between projects is per session, not per process. Full detail: docs/ARCHITECTURE.md.

Workspace layout

apps/
  runtime-mcp/       Local MCP server (workflow + codegen + tools)
  runtime-worker/    Playwright browser + recording worker
  vscode-extension/  VS Code / Cursor extension
  vindicate-ui/      Bundled MCP Apps panel UI
packages/
  protocol/          Shared Zod contracts
  config/            Shared configuration presets
  security/          Security policy and auth types
  observability/     Structured logging (Pino)

Tooling

  • Node.js >=22
  • pnpm >=10
  • Turborepo

Common commands

From repository root:

pnpm lint
pnpm typecheck
pnpm test
pnpm build

Build the runnable apps:

pnpm turbo build --filter=@vindicate/runtime-mcp
pnpm turbo build --filter=@vindicate/runtime-worker
pnpm turbo build --filter=vindicate

Docs

Changelog

See CHANGELOG.md.

License

Licensed under the Apache License, Version 2.0.

Contributors

Contributors to OpenEvident/vindicate

Files in the repo

Repository payload24 top-level entries
  • .github
  • .vscode
  • apps
  • docs
  • packages
  • .dockerignore
  • .editorconfig
  • .env.example
  • .gitattributes
  • .gitignore
  • .npmrc
  • .prettierignore
  • .prettierrc.json
  • CHANGELOG.md
  • commitlint.config.cjs
  • eslint.config.mjs
  • LICENSE
  • NOTICE
  • package.json
  • pnpm-lock.yaml
  • pnpm-workspace.yaml
  • README.md
  • tsconfig.base.json
  • turbo.json

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k
t8y2/dbxConnectors

20 MB lightweight cross-platform database client for 90+ databases, including MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, SQL Server, and Dameng. Built-in AI, MCP Server, CLI, desktop and Docker. | 轻量级跨平台数据库管理工具,支持 MySQL、PostgreSQL、SQLite、Redis、MongoDB、达梦等 90+ 数据库,提供桌面端、Docker、CLI、内置 AI 助手和 MCP Server。

19k