An MCP (Model Context Protocol) server that enables Claude Code to visually verify features by recording the screen while performing automated verification actions.
- Screen Recording - Record the screen to capture verification sessions
- Browser Automation - Control a browser via Playwright for web UI verification
- Postman Automation - Control Postman via AppleScript for API verification
/verifySkill - Claude Code skill that guides the verification workflow
┌─────────────────────────────────────────────────────────┐
│ Claude Code │
│ ┌─────────────────┐ ┌─────────────────────────────┐ │
│ │ /verify skill │───▶│ MCP Server Tools │ │
│ │ (instructions) │ │ - start_recording() │ │
│ └─────────────────┘ │ - stop_recording() │ │
│ │ - browser_navigate() │ │
│ │ - browser_click() │ │
│ │ - browser_type() │ │
│ │ - postman_*() │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
In Claude Code, run these two commands:
/plugin marketplace add yourusername/nice-skills
/plugin install nice-skills
That's it! The MCP server and /verify skill are automatically configured.
If you prefer manual setup or need to customize:
git clone https://github.com/yourusername/nice-skills.git
cd nice-skills
npm install
npx playwright install chromium
npm run buildIn Claude Code:
/plugin add /path/to/nice-skills
Add to ~/.claude.json:
{
"mcpServers": {
"nice-skills": {
"command": "node",
"args": ["/path/to/nice-skills/dist/index.js"]
}
}
}Copy the skill:
mkdir -p ~/.claude/skills/verify
cp skills/verify/SKILL.md ~/.claude/skills/verify/SKILL.mdAfter building a feature with Claude Code, run:
/verify
Claude Code will:
- Analyze what was built
- Start screen recording
- Perform automated verification (browser or Postman)
- Stop recording and report results
You can also just ask Claude naturally:
"Verify the login form I just built" "Test the API endpoint and record it"
| Tool | Description |
|---|---|
start_recording |
Begin recording the screen |
stop_recording |
Stop and save the recording |
| Tool | Description |
|---|---|
browser_navigate |
Open browser and go to URL |
browser_click |
Click element by selector or text |
browser_type |
Type text into input fields |
browser_screenshot |
Capture current state |
browser_wait_for_text |
Wait for text to appear |
browser_close |
Close the browser |
| Tool | Description |
|---|---|
postman_open |
Launch Postman |
postman_new_request |
Create new request |
postman_set_method |
Set HTTP method |
postman_set_url |
Set request URL |
postman_set_body |
Set request body |
postman_send |
Send the request |
postman_close |
Close Postman |
After building a login form:
- Recording starts
- Browser opens to the login page
- Username and password are entered
- Login button is clicked
- Success message is verified
- Screenshot is captured
- Recording stops
After building a REST endpoint:
- Recording starts
- Postman opens
- Request is configured (method, URL, body)
- Request is sent
- Response is displayed
- Recording stops
# Watch mode for development
npm run dev
# Build
npm run build
# Run the server directly
npm start- Recordings are saved to
./recordings/as.movfiles - Screenshots are saved to
./recordings/screenshots/as.pngfiles
- macOS: Required for
screencaptureand Postman AppleScript automation - Node.js 18+: Required for the MCP server
- Screen Recording Permission: Grant in System Settings > Privacy & Security > Screen Recording
- Accessibility Permission: Grant for Postman automation in System Settings > Privacy & Security > Accessibility
- Ensure screen recording permission is granted to Terminal/your IDE
- Check that
screencaptureis available:which screencapture
- Ensure Postman is installed
- Grant accessibility permissions to Terminal/your IDE
- Postman automation uses keyboard shortcuts which may change between versions
- Ensure Playwright is installed:
npx playwright install chromium - Check that the browser can be launched headless first for debugging
MIT