chrome-workflows

chrome-workflows

MCP server for storing and managing QA workflows, encrypted credentials, and browser test run history. Enables agents to create targets, workflows, and retrieve decrypted credential bundles for test execution.

Category
Visit Server

README

chrome-workflows

A local MCP server (stdio, TypeScript) that acts as a QA scenario store and credential vault for browser-based usability tests. The agent (Claude Code + Claude in Chrome) executes the tests; this server stores targets, encrypted credentials, workflows, and run history.

Prerequisites

  • Node.js 24+ — verify with node --version
  • Docker and Docker Compose — for the local MongoDB instance

Quick Start

# 1. Start MongoDB
docker compose up -d

# 2. Install dependencies
npm install

# 3. Run the test suite
npm test

MCP Registration in Claude Code

Register the server so Claude Code can use it as a tool provider.

Replace <absolute-path> with the full path to this repository (e.g. /home/you/chrome-workflows):

claude mcp add chrome-workflows \
  -e MONGODB_URI=mongodb://localhost:27017/chrome-workflows \
  -- npx tsx <absolute-path>/src/index.ts

The server communicates over stdio. Once registered, Claude Code has access to the following tools:

Tool Purpose
upsert_target Create or update a target application
list_targets List all targets with masked credentials
set_active_environment Switch a target's active environment
delete_target Delete a target (cascades to workflows and runs)
upsert_credential Store an encrypted credential for a target+environment
delete_credential Remove a credential
upsert_workflow Create or update a QA workflow (test scenario)
delete_workflow Delete a workflow
search_workflows Search workflows by text and/or target
get_workflow_bundle Get everything needed to execute a workflow (decrypts credentials)
report_run Record the result of a workflow execution
list_runs List execution runs with agent info
get_run Get full details of a single run
get_config_overview Snapshot of all targets, workflows, and recent runs

Evidence Directory

Screenshots and GIFs captured during test execution are stored at:

~/.local/share/chrome-workflows/evidence/

The report_run tool records evidence file paths and checks whether each file exists at report time (fileExists: true/false).

Environment Variables

Variable Required Default Description
MONGODB_URI Yes — MongoDB connection string
CHROME_WORKFLOWS_MASTER_KEY No Read from ~/.config/chrome-workflows/master.key AES-256-GCM master key for credential encryption

Copy .env.example for reference:

cp .env.example .env

Development

# Type checking
npm run typecheck

# Run tests in watch mode
npm run test:watch

# Run tests with coverage
npm run test:coverage

Typical Workflow

  1. Register a target — upsert_target with name, environments, and URLs
  2. Add credentials — upsert_credential for each environment
  3. Create a workflow — upsert_workflow with intent-based steps
  4. Execute — get_workflow_bundle returns everything the agent needs; the agent runs the test via Claude in Chrome
  5. Report — report_run records per-step verdicts and evidence
  6. Review — get_config_overview shows the full configuration; ask Claude to render it as an HTML artifact

Architecture

  • TypeScript + ESM with NodeNext module resolution
  • Mongoose for MongoDB access (3 collections: targets, workflows, runs)
  • Zod for input validation on every tool
  • AES-256-GCM encryption for credential secrets at rest
  • Vitest + mongodb-memory-server for testing (no external MongoDB needed for tests)
  • Secrets are decrypted only in get_workflow_bundle — every other tool returns masked usernames and zero secret data

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured