Test a feature locally using Muggle AI local MCP. Handles the full flow of listing/creating projects, use cases, and test cases, then generates or replays test scripts. Supports pulling test artifacts from cloud and rewriting URLs for local testing.
From muggle-ai-teamsnpx claudepluginhub multiplex-ai/muggle-ai-teams --plugin muggle-ai-teamsThis skill uses the workspace's default tool permissions.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Guides idea refinement into designs: explores context, asks questions one-by-one, proposes approaches, presents sections for approval, writes/review specs before coding.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Test a feature on a local web application using Muggle AI local MCP tools.
Login (required) → Authenticate with Muggle AI
↓
List Sources (merged) → Present unified local+cloud projects
↓
Select Project → User chooses project
↓
Sync Local Copy → Pull latest from cloud if both exist
↓
Analyze Changes (optional) → Identify impacted features
↓
List Use Cases → Find/Create/Pull Use Case(s)
↓
List Test Cases → Find/Create/Pull Test Case(s)
↓
List Test Scripts → Generate (if none) or Replay (if exists)
http://localhost:3999)For every Local MCP tool result you report to the user, include:
reportedderivedpath not exposed by MCP outputNever omit this section when presenting Local MCP output.
This skill is Local MCP only. If Local MCP tools are unavailable or a required Local MCP step fails, stop and fail this workflow.
Do not fall back to generic browser testing features/tools to continue execution.
When failing, clearly report:
Always start by ensuring the user is authenticated. This is mandatory before any testing can begin.
Call muggle_auth_status to check if user is already logged in.
muggle_auth_login to initiate the login flowConfirm: "Already logged in as [email]. Let's continue."
Important: Do NOT proceed to any other steps until authentication is confirmed.
Always present both local and cloud projects for the user to choose from, with matching projects merged.
muggle_project_list to see existing local projectsmuggle_cloud_project_list to list cloud projectsProjects are considered matching when:
cloudSource.projectId matching a cloud project IDPresent projects in a merged format - matching local/cloud projects appear as ONE entry:
Logged in as: user@example.com
PROJECTS:
| # | Name | Local | Cloud | Local URL |
|---|------|-------|-------|-----------|
| 1 | MuggleTest Staging | Yes | Yes | http://localhost:3999 |
| 2 | Admin Portal | No | Yes | - |
| 3 | My Local App | Yes | No | http://localhost:3000 |
Options:
- Enter a number to use that project
- Type "new" to create a new project
Column meanings:
| Selection | Local? | Cloud? | Action |
|---|---|---|---|
| Number | Yes | Yes | Sync first: Pull latest from cloud, then use local |
| Number | Yes | No | Use existing local project |
| Number | No | Yes | Prompt for localhost URL, pull to local |
| "new" | - | - | Create new local project |
When a project has both local AND cloud versions, always sync before testing:
muggle_cloud_pull_project with the cloud project ID and existing local URLImportant: Always wait for user to select a project before proceeding.
When user asks to "test my changes" or doesn't specify a feature, analyze the codebase changes first.
Run these commands to understand what changed:
git status
git diff
git diff --cached
git log -3 --oneline
From the changes, extract:
| Change Type | Likely Impacted Tests |
|---|---|
| Login/auth files | Authentication use cases |
| User profile files | User management use cases |
| Form components | Data input/validation test cases |
| API route handlers | CRUD operation test cases |
| Navigation/routing | Navigation flow use cases |
| Payment/checkout | Transaction test cases |
After analysis, summarize:
Example output:
Based on your changes:
- Modified: src/components/LoginForm.tsx, src/api/auth.ts
- Impacted features: User authentication, session management
- Suggested tests:
1. "User can log in with valid credentials"
2. "User sees error with invalid password"
3. "User can reset password"
Which test(s) would you like to run?
When user selects a cloud project, use case, or test case:
You selected a cloud project with URL: https://app.example.com
What localhost URL should be used for local testing?
(e.g., http://localhost:3000, http://localhost:3999)
Call muggle_cloud_pull_project with:
{
"cloudProjectId": "<cloud_project_id>",
"localUrl": "<user_provided_localhost_url>"
}
What happens:
originalUrl field with the cloud URL (e.g., https://app.example.com)url field to localhost URL (e.g., http://localhost:3000)cloudSource mapping for future sync| Field | Original (Cloud) | Rewritten (Local) |
|---|---|---|
project.url | https://app.example.com | http://localhost:3000 |
project.originalUrl | (none) | https://app.example.com |
testCase.url | https://app.example.com/login | http://localhost:3000/login |
testCase.originalUrl | (none) | https://app.example.com/login |
Path preservation: When rewriting URLs, preserve the path portion:
https://app.example.com/dashboard → http://localhost:3000/dashboardhttps://app.example.com/users/123 → http://localhost:3000/users/123If not pulling from cloud, find or create a local project.
Call muggle_project_list to see existing projects.
Match logic:
If match found: Use existing project, confirm with user.
If no match: Call muggle_project_create with:
name: Derived from app name or URLurl: The localhost URLdescription: Brief description of the appCall muggle_use_case_list with the projectId.
Match logic:
If multiple matches found:
If single match found: Confirm with user, use existing.
If no match: Call muggle_use_case_save with:
{
"projectId": "<projectId>",
"useCase": {
"title": "<Feature name>",
"userStory": "<As a user, I want to...>",
"description": "<Detailed description>",
"breakdownItems": [{"stepNumber": 1, "action": "...", "expected": "..."}]
}
}
Call muggle_test_case_list with projectId and optionally useCaseId.
Match logic:
If multiple matches found:
Example output:
Found test cases:
Use Case: User Authentication
[IMPACTED] tc_001 - Login with valid credentials (login form changed)
[IMPACTED] tc_002 - Login with invalid password
[ ] tc_003 - Remember me functionality
Use Case: User Profile
[ ] tc_004 - Update display name
Run: [all impacted] [all] [select specific]?
If single match found: Confirm with user, use existing.
If no match: Call muggle_test_case_save with:
{
"projectId": "<projectId>",
"useCaseId": "<useCaseId>",
"testCase": {
"title": "<Test case name>",
"goal": "<What this test verifies>",
"url": "<Starting URL - use localhost>",
"precondition": "<Any setup needed>",
"instructions": "<Step-by-step instructions>",
"expectedResult": "<What should happen>"
}
}
For each selected test case, call muggle_test_script_list with projectId and testCaseId.
Process each test case and categorize:
Test execution plan:
REPLAY (script exists):
- tc_001: Login with valid credentials
- tc_002: Login with invalid password
GENERATE (no script):
- tc_005: New password reset flow
Proceed? [yes/no]
muggle_execute_replay:
{
"projectId": "<projectId>",
"testScriptId": "<testScriptId>"
}
muggle_execute_test_generation:
{
"projectId": "<projectId>",
"testCaseId": "<testCaseId>"
}
When running multiple tests:
After execution, call muggle_run_result_list or muggle_run_result_get to show:
After running multiple tests, provide a summary:
Test Run Summary
================
Total: 4 tests
Passed: 3
Failed: 1
Results:
[PASS] tc_001 - Login with valid credentials (2.3s)
[PASS] tc_002 - Login with invalid password (1.8s)
[FAIL] tc_003 - Remember me functionality (3.1s)
Error: Checkbox not found on page
[PASS] tc_005 - Password reset flow (4.2s) [newly generated]
Failed test details:
tc_003: Element '#remember-me' not found.
Screenshot: run_xxx/step_3.png
Based on results:
| Result | Suggested Action |
|---|---|
| All passed | "All tests passed. Ready to commit?" |
| Some failed | "N tests failed. Review failures or re-run?" |
| New scripts generated | "N new scripts created. Replay to verify?" |
User: "Test the login feature at localhost:3999"
Agent:
muggle_auth_status → Not authenticatedmuggle_auth_login → User completes loginmuggle_project_list → Found 1 local project (MuggleTest Staging)muggle_cloud_project_list → Found cloud project with same name| # | Name | Local | Cloud | Local URL |
|---|------|-------|-------|-----------|
| 1 | MuggleTest Staging | Yes | Yes | http://localhost:3999 |
| 2 | Other App | No | Yes | - |
muggle_cloud_pull_project → Updates local with latest from cloudmuggle_use_case_list → Found "User Authentication"muggle_test_case_list → Found 3 test casesUser: "Test my changes"
Agent:
muggle_auth_status → Authenticated as user@example.commuggle_project_list → Found 1 local projectmuggle_cloud_project_list → Found 3 cloud projectsgit status → Modified: LoginForm.tsx, AuthService.tsgit diff → Analyze changes (added error handling, updated validation)muggle_use_case_list → Found 5 use casesmuggle_test_case_list → 5 test cases totalmuggle_test_script_list for each → 4 have scripts, 1 doesn'tUser: "Test the login flow on my app at localhost:3000"
Agent:
muggle_auth_status → Not authenticatedmuggle_auth_login → User completes loginmuggle_project_list → No local projectsmuggle_cloud_project_list → Found 1 cloud project (different app)muggle_project_create with name "Local App", url "http://localhost:3000"muggle_use_case_save with goal "User can log in to the application"muggle_test_case_save with login test detailsmuggle_test_script_list → Emptymuggle_execute_test_generation → Generates script| Action | Tool/Command |
|---|---|
| Check auth status | muggle_auth_status |
| Login | muggle_auth_login |
| List local projects | muggle_project_list |
| List cloud projects | muggle_cloud_project_list |
| Analyze changes | git status, git diff |
| Pull project from cloud | muggle_cloud_pull_project |
| Pull use case from cloud | muggle_cloud_pull_use_case |
| Pull test case from cloud | muggle_cloud_pull_test_case |
| Create project | muggle_project_create |
| List use cases | muggle_use_case_list |
| Create use case | muggle_use_case_save |
| List test cases | muggle_test_case_list |
| Create test case | muggle_test_case_save |
| List test scripts | muggle_test_script_list |
| Generate script | muggle_execute_test_generation |
| Replay script | muggle_execute_replay |
| View results | muggle_run_result_get |
| List recent runs | muggle_run_result_list |
publish-to-cloud skill separately.