
Smoke Test
- 1.6k installs
- 26.9k repo stars
- Updated August 5, 2026
- mastra-ai/mastra
smoke-test is an agent skill that create a mastra project using create-mastra and smoke test the studio in chrome using chrome mcp server.
About
smoke-test is an agent skill from mastra-ai/mastra that create a mastra project using create-mastra and smoke test the studio in chrome using chrome mcp server. # Smoke Test Skill Creates a new Mastra project using `create-mastra@<tag>` and performs smoke testing of the Mastra Studio in Chrome. **This skill is for Claude Code with Chrome MCP server.** For MastraCode with built-in browser tools, use `mastracode-smoke-test` instead. ## Usage ``` /smoke-test --directory <path> --name <project-name> --tag Developers invoke smoke-test during ship/testing work for testing & qa tasks. The skill documents triggers, prerequisites, and step-by-step workflows grounded in SKILL.md. Compatible with Claude Code, Cursor, and Codex agent runtimes that load marketplace skills. Review the Security Audits panel on this listing before installing in production environments.
- Creates a new Mastra project using `create-mastra@<tag>` and performs smoke testing of the Mastra Studio in Chrome.
- This skill is for Claude Code with Chrome MCP server.** For MastraCode with built-in browser tools, use `mastracode-smok
- /smoke-test --directory <path> --name <project-name> --tag <version> [--pm <package-manager>] [--llm <provider>]
- /smoke-test -d <path> -n <project-name> -t <version> [-p <package-manager>] [-l <provider>]
- | Parameter | Short | Description | Required | Defa
Smoke Test by the numbers
- 1,649 all-time installs (skills.sh)
- +76 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #457 of 2,153 Testing & QA skills by installs in the Skillselion catalog
- Security screen: HIGH risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
smoke-test capabilities & compatibility
- Capabilities
- creates a new mastra project using `create mastr · this skill is for claude code with chrome mcp se · /smoke test directory <path> name <project n · /smoke test d <path> n <project name> t <vers · | parameter | short | description | required | d
- Use cases
- orchestration
What smoke-test says it does
Creates a new Mastra project using `create-mastra@<tag>` and performs smoke testing of the Mastra Studio in Chrome.
**This skill is for Claude Code with Chrome MCP server.** For MastraCode with built-in browser tools, use `mastracode-smoke-test` instead.
/smoke-test --directory <path> --name <project-name> --tag <version> [--pm <package-manager>] [--llm <provider>]
npx skills add https://github.com/mastra-ai/mastra --skill smoke-testAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1.6k |
|---|---|
| repo stars | ★ 26.9k |
| Security audit | 2 / 3 scanners passed |
| Last updated | August 5, 2026 |
| Repository | mastra-ai/mastra ↗ |
What it does
Create a Mastra project using create-mastra and smoke test the studio in Chrome using Chrome MCP server
Who is it for?
Developers working on testing & qa during ship tasks.
Skip if: Tasks outside Testing & QA scope described in SKILL.md.
When should I use this skill?
Create a Mastra project using create-mastra and smoke test the studio in Chrome using Chrome MCP server
What you get
Completed testing & qa workflow aligned with SKILL.md steps.
- Scaffolded Mastra project
- Mastra Studio smoke-test result
By the numbers
- Exposes 6 CLI parameters: directory, name, tag, package manager, and LLM provider
- Designed for create-mastra version-tagged project scaffolding
Files
Smoke Test Skill
Creates a new Mastra project using create-mastra@<tag> and performs smoke testing of the Mastra Studio in Chrome.
This skill is for Claude Code with Chrome MCP server. For MastraCode with built-in browser tools, use mastracode-smoke-test instead.
Usage
/smoke-test --directory <path> --name <project-name> --tag <version> [--pm <package-manager>] [--llm <provider>]
/smoke-test -d <path> -n <project-name> -t <version> [-p <package-manager>] [-l <provider>]Parameters
| Parameter | Short | Description | Required | Default |
|---|---|---|---|---|
--directory | -d | Parent directory where project will be created | Yes | - |
--name | -n | Project name (will be created as subdirectory) | Yes | - |
--tag | -t | Version tag for create-mastra (e.g., latest, alpha, 0.10.6) | Yes | - |
--pm | -p | Package manager: npm, yarn, pnpm, or bun | No | npm |
--llm | -l | LLM provider: openai, anthropic, groq, google, cerebras, mistral | No | openai |
Examples
# Minimal (required params only)
/smoke-test -d ~/projects -n my-test-app -t latest
# Full specification
/smoke-test --directory ~/projects --name my-test-app --tag alpha --pm pnpm --llm anthropic
# Using short flags
/smoke-test -d ./projects -n smoke-test-app -t 0.10.6 -p bun -l openaiStep 0: Parameter Validation (MUST RUN FIRST)
CRITICAL: Before proceeding, parse the ARGUMENTS and validate:
1. Parse arguments from the ARGUMENTS string provided above 2. Check required parameters:
--directoryor-d: REQUIRED - fail if missing--nameor-n: REQUIRED - fail if missing--tagor-t: REQUIRED - fail if missing
3. Apply defaults for optional parameters:
--pmor-p: Default tonpmif not provided--llmor-l: Default toopenaiif not provided
4. Validate values:
pmmust be one of:npm,yarn,pnpm,bunllmmust be one of:openai,anthropic,groq,google,cerebras,mistraldirectorymust exist (or will be created)nameshould be a valid directory name (no spaces, special chars)
If validation fails: Stop and show usage help with the missing/invalid parameters.
If `-h` or `--help` is passed: Show this usage information and stop.
Prerequisites
This skill requires the Chrome MCP server (Claude-in-Chrome) for browser automation. Ensure it's configured and running.
The Chrome MCP server provides tools like tabs_create_mcp, tabs_context_mcp, navigate_mcp, click_mcp, type_mcp, and screenshot_mcp.
Execution Steps
Step 1: Create the Mastra Project
Run the create-mastra command with explicit parameters to avoid interactive prompts:
# For npm
npx create-mastra@<tag> <project-name> -c agents,tools,workflows,scorers -l <llmProvider> -e
# For yarn
yarn create mastra@<tag> <project-name> -c agents,tools,workflows,scorers -l <llmProvider> -e
# For pnpm
pnpm create mastra@<tag> <project-name> -c agents,tools,workflows,scorers -l <llmProvider> -e
# For bun
bunx create-mastra@<tag> <project-name> -c agents,tools,workflows,scorers -l <llmProvider> -eFlags explained:
-c agents,tools,workflows,scorers- Include all components-l <provider>- Set the LLM provider-e- Include example code
Being explicit with all parameters ensures the CLI runs non-interactively.
Wait for the installation to complete. This may take 1-2 minutes depending on network speed.
Step 2: Verify Project Structure
After creation, verify the project has:
package.jsonwith mastra dependenciessrc/mastra/index.tsexporting a Mastra instance.envfile (may need to be created)
Step 2.5: Add Browser Agent for Browser Testing
To test browser functionality, add a browser-enabled agent:
1. Install browser packages:
<pm> add @mastra/stagehand
# or for deterministic browser automation:
<pm> add @mastra/agent-browser2. Create browser-agent.ts in src/mastra/agents/:
import { Agent } from '@mastra/core/agent';
import { Memory } from '@mastra/memory';
import { StagehandBrowser } from '@mastra/stagehand';
export const browserAgent = new Agent({
id: 'browser-agent',
name: 'Browser Agent',
instructions: `You are a helpful assistant that can browse the web to find information.`,
model: '<provider>/<model>', // e.g., 'openai/gpt-4o'
memory: new Memory(),
browser: new StagehandBrowser({
headless: false,
}),
});3. Update index.ts to register the browser agent:
import { browserAgent } from './agents/browser-agent';
// In Mastra config:
agents: { weatherAgent, browserAgent },Step 3: Configure Environment Variables
Based on the selected LLM provider, check for the required API key:
| Provider | Required Environment Variable |
|---|---|
| openai | OPENAI_API_KEY |
| anthropic | ANTHROPIC_API_KEY |
| groq | GROQ_API_KEY |
GOOGLE_GENERATIVE_AI_API_KEY | |
| cerebras | CEREBRAS_API_KEY |
| mistral | MISTRAL_API_KEY |
Check in this order:
1. Check global environment first: Run echo $<ENV_VAR_NAME> to see if the key is already set globally
- If set globally, the project will inherit it - no
.envfile needed - Skip to Step 4
2. Check project `.env` file: If not set globally, check if .env exists in the project and contains the key
3. Ask user only if needed: If the key is not available globally or in .env:
- Ask the user for the API key
- Create the
.envfile with the provided key
Only check for the ONE key matching the selected provider - don't check for all providers.
Step 4: Start the Development Server
Navigate to the project directory and start the dev server:
cd <directory>/<project-name>
<packageManager> run devThe server typically starts on http://localhost:4111. Wait for the server to be ready before proceeding.
Step 5: Smoke Test the Studio
Use the Chrome browser automation tools to test the Mastra Studio.
5.1 Initial Setup
1. Get browser context using tabs_context_mcp 2. Create a new tab using tabs_create_mcp 3. Navigate to http://localhost:4111
5.2 Test Checklist
Perform the following smoke tests using the Chrome automation tools:
Navigation & Basic Loading
- [ ] Studio loads successfully (page contains "Mastra Studio" or shows agents list)
- [ ] Take a screenshot of the home page
Agents Page (/agents)
- [ ] Navigate to agents page
- [ ] Verify at least one agent is listed (the example agent from
--default) - [ ] Take a screenshot
Agent Detail (/agents/<agentId>/chat)
- [ ] Click on an agent to view details
- [ ] Verify the agent overview panel loads
- [ ] Verify model settings panel is visible
- [ ] Take a screenshot
Agent Chat
- [ ] Send a test message to the agent (e.g., "What's the weather in Tokyo?")
- [ ] Wait for response
- [ ] Verify response appears in the chat
- [ ] Take a screenshot of the conversation
Browser Agent (/agents/browser-agent/chat) - if browser agent was added
- [ ] Navigate to the browser-agent
- [ ] Send a message: "Go to example.com and tell me what you see"
- [ ] Verify the agent launches a browser and extracts content
- [ ] Verify response includes page content
- [ ] Take a screenshot
Tools Page (/tools)
- [ ] Navigate to tools page
- [ ] Verify tools list loads (should show get-weather tool)
- [ ] Take a screenshot
Tool Execution (/tools/get-weather)
- [ ] Click on the get-weather tool to open detail page
- [ ] Find the city input field and enter a test city (e.g., "Tokyo")
- [ ] Click Submit button
- [ ] Wait for execution to complete
- [ ] Verify JSON output appears with weather data (temp, condition, etc.)
- [ ] Take a screenshot
Workflows Page (/workflows)
- [ ] Navigate to workflows page
- [ ] Verify workflows list loads (should show weather-workflow)
- [ ] Take a screenshot
Workflow Execution (/workflows/weather-workflow)
- [ ] Click on the weather-workflow to open detail page
- [ ] Verify visual graph displays (shows workflow steps)
- [ ] Find the city input field and enter a test city (e.g., "London")
- [ ] Click Run button
- [ ] Wait for execution to complete
- [ ] Verify steps show success (green checkmarks)
- [ ] Click to view JSON output modal
- [ ] Verify execution details with timing appear
- [ ] Take a screenshot
Settings Page (/settings)
- [ ] Navigate to settings page
- [ ] Verify settings page loads
- [ ] Take a screenshot
Observability Page (/observability)
- [ ] Navigate to observability page
- [ ] Verify traces list shows recent activity (from previous tests)
- [ ] Click on a trace to view details
- [ ] Verify timeline view shows steps and timing
- [ ] Take a screenshot
Scorers Page (/evaluation?tab=scorers)
- [ ] Navigate to
/evaluation?tab=scorers(NOT/scorers- that route doesn't exist) - [ ] Verify scorers list loads (shows 3 example scorers)
- [ ] Take a screenshot
Additional Pages (verify load only)
- [ ] Templates page (
/templates) - Gallery of starter templates - [ ] Request Context page (
/request-context) - JSON editor - [ ] Processors page (
/processors) - Empty state OK - [ ] MCP Servers page (
/mcps) - Empty state OK
5.3 Report Results
After completing all tests, provide a summary:
- Total tests passed/failed
- Any errors encountered
- Screenshots captured
- Recommendations for issues found
Quick Reference
| Step | Action |
|---|---|
| Create Project | cd <directory> && npx create-mastra@<tag> <name> -c agents,tools,workflows,scorers -l <provider> -e |
| Install Deps | Automatic during creation |
| Set Env Vars | Check global env first, then .env, ask user only if needed |
| Start Server | cd <directory>/<name> && npm run dev |
| Studio URL | http://localhost:4111 |
Troubleshooting
Server won't start
- Verify
.envhas required API key - Check if port 4111 is available
- Try
<pm> installto reinstall dependencies
Browser can't connect
- Wait a few seconds for server to fully start
- Check terminal for server ready message
- Verify no firewall blocking localhost
Agent chat fails
- Verify API key is valid
- Check server logs for errors
- Ensure LLM provider API is accessible
Browser agent fails
- Ensure Playwright browsers are installed:
pnpm exec playwright install chromium - Check that no other browser instance is blocking
Studio Routes
| Feature | Route |
|---|---|
| Agents | /agents |
| Workflows | /workflows |
| Tools | /tools |
| Evaluation | /evaluation |
| Scorers | /evaluation?tab=scorers |
| Observability | /observability/traces |
| Logs | /observability/logs |
| MCP Servers | /mcps |
| Processors | /processors |
| Templates | /templates |
| Request Context | /request-context |
| Settings | /settings |
Notes
- The
-eflag includes example agents, making smoke testing meaningful - If the user doesn't specify an LLM provider, default to OpenAI as it's most common
- Take screenshots at each major step for documentation/debugging
- Keep the dev server running in the background during testing
- Always use explicit flags (
-c,-l,-e) to ensure non-interactive execution - Browser agent testing validates the new browser automation features
- Observability traces appear automatically after running agents or workflows
Related skills
How it compares
Pick smoke-test over manual create-mastra runs when you need automated browser verification of Mastra Studio, not just project file generation.
FAQ
What does smoke-test do?
Create a Mastra project using create-mastra and smoke test the studio in Chrome using Chrome MCP server
When should I use smoke-test?
During ship testing work for testing & qa.
Is smoke-test safe to install?
Review the Security Audits panel on this listing before production use.