Ship quality products with AI-powered QA that validates your app's user experience — from Claude Code and Cursor to PR.
One install gives your AI coding assistant the power to vision-based QA your app like a real user would: clicking through flows, catching broken experiences, and reporting results with screenshots and evidence.
*License: MIT npm MCP Tools Node*
Powered by MuggleTest — the AI-powered QA testing platform.
Your AI assistant writes code fast. But does the feature actually work? Does the login flow break on mobile? Does the checkout still render after that refactor?
muggle-ai-works closes the gap between "code complete" and "actually works."
- Catch UX regressions before your users do — AI drives a real browser against your localhost across desktop and mobile resolutions, clicks through flows like a user would, and reports failures with step-by-step screenshots. No Playwright scripts to maintain.
- Go from requirement to merged PR in one command —
/muggle:dohandles the full cycle: code the feature, run unit tests, QA the app in a real browser at multiple viewports, triage failures, and open a PR with evidence attached. - 70+ MCP tools for custom workflows — manage projects, generate test cases from plain English, replay test scripts, batch-run regressions, and publish results to your team. Works in Claude Code, Cursor, and any MCP client.
In Claude Code, run:
/plugin marketplace add https://github.com/multiplex-ai/muggle-ai-works
/plugin install muggleai@muggle-works
This installs the Muggle AI plugin with:
/muggle:do— autonomous dev pipeline (requirements to PR)/muggle:test-feature-local— local quick QA testing/muggle:status— health check for muggle-works plugins (Electron app, MCP server, and auth)/muggle:repair— diagnose and fix broken installation/muggle:upgrade— update to the latest version- MCP server with 70+ tools (auto-started)
- Electron QA engine provisioning (via session hook)
/muggle:status
This checks Electron QA engine, MCP server health, and authentication. If anything is broken, run /muggle:repair.
Describe what you want to build:
/muggle:do "Add a logout button to the header"
The AI handles the full cycle: code the feature, run unit tests, QA the app in a real browser, and open a PR with results.
Already have code running on localhost? Test it directly:
/muggle:test-feature-local
Describe what to test in plain English. The AI finds or creates test cases, launches a real browser, and reports results with screenshots.
muggle-ai-works separates test management from test execution. All entity management (projects, use cases, test cases) lives in the cloud via muggle-remote-* tools. Local execution (muggle-local-*) is stateless — it receives what it needs and runs the test.
Project (e.g., "My App")
└── Use Case (e.g., "User Login Flow")
└── Test Case (e.g., "Login with valid credentials")
└── Test Script (recorded browser automation steps)
└── Run Result (pass/fail + screenshots)
Test execution flow
Your AI assistant describes what to test
│
v
muggle-remote-* tools create test cases in cloud
│
v
muggle-local-execute-test-generation launches the QA engine
│
v
AI agent drives the browser step-by-step (click, type, navigate, assert)
│
v
Screenshots captured per step → action-script.json recorded
│
v
Results: pass/fail with evidence at ~/.muggle-ai/sessions/{runId}/
│
v
muggle-local-publish-test-script uploads to cloud
Describe what to test in English. The AI finds the right project and test cases, launches a real browser, and reports results with screenshots.
> /muggle:test-feature-local
"Test my login changes on localhost:3999"
1. Auth check ✓
2. Found project: "My App"
3. Found use case: "User Login"
4. Found 2 test cases — recommend replay (minor changes detected)
5. Launching QA engine... (approve? y)
6. Results: 2/2 PASS
Screenshots: ~/.muggle-ai/sessions/abc123/screenshots/
7. Publish to cloud? (y)
Full development cycle: requirements to PR in one command. The AI codes the feature, writes unit tests, runs QA against your running app, and opens a PR.
> /muggle:do "Add a logout button to the header"
REQUIREMENTS → Goal: Add logout button. Criteria: visible, functional, redirects.
IMPACT → frontend repo, src/components/Header.tsx
VALIDATE → Branch: feat/add-logout, 1 commit
CODING → (writes/fixes code)
UNIT_TESTS → 12/12 pass
QA → 3/3 test cases pass
OPEN_PRS → PR #42 opened
DONE → 1 iteration, all green
- Session-based with crash recovery (
.muggle-do/sessions/) - Auto-triage: analyzes failures and loops back to fix (max 3 iterations)
- Multi-repo support via
muggle-repos.json - PRs include QA results and screenshots in the description
Use any of the 70+ MCP tools directly from your AI assistant. This is the lowest-level option and the most flexible for building custom QA workflows.
"Create a project called My App with URL https://myapp.com"
"Generate test cases for the checkout flow"
"Replay all test scripts against localhost:3000"
"Show me the latest QA results"
muggle-ai-works provides 70+ MCP tools organized into 8 categories: authentication, project management, use cases, test cases, test scripts, local execution, reports, and administration. These tools power all AI testing automation workflows — from one-off browser checks to full QA automation pipelines.
Authentication (muggle-remote-auth-*)
| Tool | Purpose |
|---|---|
muggle-remote-auth-status |
Check authentication status |
muggle-remote-auth-login |
Start device-code login flow |
muggle-remote-auth-poll |
Poll for login completion |
muggle-remote-auth-logout |
Clear credentials |
Project Management (muggle-remote-project-*)
| Tool | Purpose |
|---|---|
muggle-remote-project-create |
Create QA project |
muggle-remote-project-list |
List all projects |
muggle-remote-project-get |
Get project details |
muggle-remote-project-update |
Update project |
muggle-remote-project-delete |
Delete project |
Use Cases (muggle-remote-use-case-*)
| Tool | Purpose |
|---|---|
muggle-remote-use-case-list |
List use cases |
muggle-remote-use-case-create-from-prompts |
Create from natural language |
muggle-remote-use-case-prompt-preview |
Preview before creating |
muggle-remote-use-case-update-from-prompt |
Regenerate from new prompt |
Test Cases (muggle-remote-test-case-*)
| Tool | Purpose |
|---|---|
muggle-remote-test-case-list |
List all test cases |
muggle-remote-test-case-list-by-use-case |
List by use case |
muggle-remote-test-case-get |
Get test case details |
muggle-remote-test-case-create |
Create test case |
muggle-remote-test-case-generate-from-prompt |
Generate from prompt |
Test Scripts and Workflows (muggle-remote-workflow-*)
| Tool | Purpose |
|---|---|
muggle-remote-test-script-list |
List test scripts |
muggle-remote-test-script-get |
Get script details |
muggle-remote-workflow-start-website-scan |
Scan site for use cases |
muggle-remote-workflow-start-test-case-detection |
Generate test cases |
muggle-remote-workflow-start-test-script-generation |
Generate scripts |
muggle-remote-workflow-start-test-script-replay |
Replay single script |
muggle-remote-workflow-start-test-script-replay-bulk |
Batch replay |
Local Execution (muggle-local-*)
| Tool | Purpose |
|---|---|
muggle-local-check-status |
Check local QA engine status |
muggle-local-execute-test-generation |
Generate test script locally |
muggle-local-execute-replay |
Replay existing script locally |
muggle-local-cancel-execution |
Cancel active execution |
muggle-local-run-result-list |
List run results |
muggle-local-run-result-get |
Get detailed results + screenshots |
muggle-local-publish-test-script |
Publish script to cloud |
Reports and Analytics (muggle-remote-report-*)
| Tool | Purpose |
|---|---|
muggle-remote-report-stats-summary-get |
Report statistics |
muggle-remote-report-cost-query |
Query cost/usage |
muggle-remote-report-final-generate |
Generate final report (PDF/HTML/Markdown) |
muggle-remote-project-test-results-summary-get |
Test results summary |
Administration (PRD, secrets, billing, scheduling)
| Category | Tools |
|---|---|
| PRD processing | muggle-remote-prd-* — upload and process product requirements docs |
| Secrets management | muggle-remote-secret-* — store credentials for test environments |
| Wallet and billing | muggle-remote-wallet-* — manage credits and payment methods |
| Scheduling | muggle-remote-recommend-* — get CI/CD and schedule recommendations |
muggle-ai-teams is the companion package for agent orchestration, workflow steps, and delivery. When both packages are installed, muggle-ai-teams automatically integrates QA into the development workflow at each stage.
| Workflow Step | What Happens |
|---|---|
| Plan | QA test instructions written per implementation slice |
| Build | Per-slice QA via muggle-ai-works before each commit |
| Verify | Full regression sweep replaying all project scripts |
| Ship | QA results published to cloud, linked in PR description |
Frontend slices get browser QA. Backend-only slices are verified by unit tests (browser QA skipped with documented reasoning).
Install both: npm install @muggleai/works @muggleai/teams
Muggle AI open-source ecosystem:
| Package | Purpose | Install |
|---|---|---|
| muggle-ai-works (this repo) | QA testing MCP server + autonomous dev pipeline | /plugin install muggleai@muggle-works |
| muggle-ai-teams | Agent orchestration, workflow, skills, rules | npm install @muggleai/teams |
Want the full platform experience? MuggleTest gives you everything out of the box — no setup, no configuration.
# Server (main command — starts MCP server for AI clients)
muggle serve # Start with all tools (default)
muggle serve --qa # Cloud QA tools only
muggle serve --local # Local QA tools only
# Setup and Diagnostics
muggle setup # Download/update QA engine
muggle setup --force # Force re-download
muggle doctor # Diagnose installation issues
# Authentication
muggle login # Manually trigger login
muggle logout # Clear credentials
muggle status # Show auth status
# Info
muggle --version # Show version
muggle --help # Show helpAuthentication happens automatically when you first use a tool that requires it: a browser window opens with a verification code, you log in with your Muggle AI account, and the tool call continues. Credentials persist across sessions in ~/.muggle-ai/.
MCP client configuration examples
When installed as a plugin, MCP server configuration is shipped by the plugin (plugin/.mcp.json) and does not require manual user-level file copy.
Environment targeting — set MUGGLE_MCP_PROMPT_SERVICE_TARGET to switch between production and dev:
{
"mcpServers": {
"muggle": {
"command": "muggle",
"args": ["serve"],
"env": {
"MUGGLE_MCP_PROMPT_SERVICE_TARGET": "production"
}
}
}
}Multi-repo config for /muggle:do — create muggle-repos.json in your working directory:
[
{ "name": "frontend", "path": "/absolute/path/to/frontend", "testCommand": "pnpm test" },
{ "name": "backend", "path": "/absolute/path/to/backend", "testCommand": "pnpm test" }
]Data directory structure (~/.muggle-ai/)
~/.muggle-ai/
├── auth.json # OAuth tokens
├── credentials.json # API key for service calls
├── projects/ # Local project cache
├── sessions/ # QA sessions
│ └── {runId}/
│ ├── action-script.json # Recorded browser steps
│ ├── results.md # Step-by-step report
│ └── screenshots/ # Per-step images
└── electron-app/ # Downloaded QA engine
└── {version}/
Full support for Claude Code. MCP tools work with Cursor and any MCP-compatible client. Plugin skills require Claude Code plugin support.
Platform compatibility table
| Platform | MCP Tools | Plugin skills (/muggle:*) |
|---|---|---|
| Claude Code | Yes | Yes (do, test-feature-local, status, repair, upgrade) |
| Cursor | Yes (via MCP) | No (needs plugin support) |
| Others | Via MCP if supported | No |
Troubleshooting
Cause: MCP configured for one environment but authenticating against another.
Fix: Set the correct MUGGLE_MCP_PROMPT_SERVICE_TARGET in your MCP config and restart your client.
muggle setup --force # Re-download
muggle doctor # Diagnosemuggle logout # Clear all credentials
rm ~/.muggle-ai/auth.json ~/.muggle-ai/credentials.json
muggle login # Fresh loginBuilt by the team behind MuggleTest — AI-powered QA testing for teams who ship fast.
Repository structure
muggle-ai-works/
├── plugin/ # Claude Code plugin (source of truth)
│ ├── .claude-plugin/ # Plugin manifest (plugin.json)
│ ├── skills/ # Skill definitions
│ │ ├── do/ # /muggle:do — autonomous dev pipeline
│ │ ├── test-feature-local/ # /muggle:test-feature-local
│ │ ├── status/ # /muggle:status
│ │ ├── repair/ # /muggle:repair
│ │ └── upgrade/ # /muggle:upgrade
│ ├── hooks/ # Session hooks (hooks.json)
│ ├── scripts/ # Hook scripts (ensure-electron-app.sh)
│ ├── .mcp.json # MCP server config
│ └── README.md # Plugin install and usage docs
│
├── src/ # Application source
│ ├── cli/ # CLI commands (serve, setup, doctor, login, etc.)
│ └── server/ # MCP server (tool registration, stdio transport)
│
├── packages/ # Workspace packages
│ ├── mcps/ # Core MCP runtime — tool registries, schemas, services
│ ├── commands/ # CLI command contracts and registration
│ └── workflows/ # Workflow contracts and tests
│
├── scripts/ # Build and release
│ ├── build-plugin.mjs # Assembles dist/plugin/ from plugin/ source
│ ├── verify-plugin-marketplace.mjs # Validates plugin/marketplace consistency
│ └── postinstall.mjs # npm postinstall (Electron app download)
│
├── bin/ # CLI entrypoint (muggle.js → dist/cli.js)
├── dist/ # Build output (gitignored)
├── .claude-plugin/ # Marketplace catalog (marketplace.json)
└── docs/ # Internal design docs and plans
Development commands
pnpm install # Install dependencies
pnpm run build # Build (tsup + plugin artifact)
pnpm run build:plugin # Rebuild plugin artifact only
pnpm run verify:plugin # Validate plugin/marketplace metadata consistency
pnpm run dev # Dev mode (watch)
pnpm test # Run tests
pnpm run lint # Lint (auto-fix)
pnpm run lint:check # Lint (check only)
pnpm run typecheck # TypeScript type checkCI/CD and publishing
| Workflow | Trigger | Description |
|---|---|---|
ci.yml |
Push/PR to master |
Lint, test, build, plugin verification on multiple platforms |
publish-works.yml |
Tag v* or manual |
Verify, audit, smoke-install, publish to npm |
git tag v<version> && git push --tags
# publish-works.yml handles the restMIT — Use it, fork it, make it yours.
If this helps your development workflow, consider giving it a star. It helps others find it.