π A comprehensive MCP (Model Context Protocol) server that empowers AI agents with visual, development, and system monitoring capabilities.
- πΈ Cross-Platform Screenshots - Capture screens, windows, or regions on Linux/macOS/Windows
- π UI Element Inspection - Extract UI hierarchies with accessibility analysis
- β‘ Performance Monitoring - Real-time system metrics and performance analysis
- ποΈ File System Watching - Monitor file/directory changes in real-time
- π±οΈ Screen Control - Click, type, scroll, and keyboard automation for AI agents
- π― Claude Code Integration - Seamless integration with Claude Code IDE
AI agents typically face constraints when working with visual interfaces and real-time system monitoring. This toolbox bridges that gap by providing:
- Visual Capabilities: Take screenshots and analyze UI elements
- Development Tools: Monitor file changes and system performance
- Accessibility Auditing: Check UI compliance and design patterns
- Cross-Platform Support: Works on Linux, macOS, and Windows
Perfect for AI-assisted development, UI/UX testing, system monitoring, and accessibility auditing.
- Node.js 18+
- Claude Code (for AI agent integration)
# Install globally
npm install -g @origindot./zigzag
# The package will be ready to use with Claude Code# Clone the repository
git clone https://github.com/Antonio476587/zigzag.git
cd zigzag
# Install dependencies
npm install
# Build the project
npm run build
# Set up platform dependencies
./setup-screen-control.sh # Linux/macOScurl -sSL https://raw.githubusercontent.com/Antonio476587/zigzag/main/ai-agent-mcp-toolbox/install.sh | bashAdd to your ~/.config/claude/mcp_settings.json:
{
"mcpServers": {
"ai-agent-toolbox": {
"command": "npx",
"args": ["@origindot./zigzag"],
"env": {}
}
}
}{
"mcpServers": {
"ai-agent-toolbox": {
"command": "node",
"args": ["/path/to/zigzag/dist/index.js"],
"env": {}
}
}
}Capture screenshots using system commands with cross-platform compatibility.
Usage in Claude Code:
- "Take a screenshot of my screen"
- "Capture the current window"
- "Screenshot a specific region"
Parameters:
target: 'screen' | 'window' | 'region'format: 'png' | 'jpg' | 'bmp' (default: 'png')window_title: Title of window to capture (for window target)region:{x, y, width, height}(for region target)
Analyze UI element hierarchies and check accessibility compliance.
Usage in Claude Code:
- "Inspect the UI of my browser"
- "Analyze accessibility issues in my app"
- "Extract UI element hierarchy"
Features:
- UI element tree extraction
- Accessibility issue detection
- Design pattern identification
- WCAG compliance checking
Monitor system performance with detailed metrics and recommendations.
Usage in Claude Code:
- "Monitor my application's performance for 60 seconds"
- "Check system CPU and memory usage"
- "Analyze performance bottlenecks"
Metrics:
- CPU usage and trends
- Memory consumption
- GPU utilization (when available)
- Network I/O
- FPS monitoring
- Performance recommendations
Monitor file and directory changes in real-time.
Usage in Claude Code:
- "Watch my src folder for JavaScript changes"
- "Monitor project files for modifications"
- "Set up file watching for hot reload"
Features:
- Multi-pattern file watching
- Event filtering (add, change, delete)
- Duration-based monitoring
- Status reporting
Automate mouse and keyboard interactions for AI agents.
Usage in Claude Code:
- "Click at position 100, 200"
- "Type 'Hello World'"
- "Press Ctrl+C"
- "Scroll down 3 times"
- "Drag from 100,100 to 200,200"
Actions:
click,double_click,right_click: Mouse clickingtype: Text inputkey: Keyboard shortcuts and special keysscroll: Scroll in any directiondrag: Drag and drop operationsmove_mouse: Mouse positioning
Cross-Platform Support:
- Linux: Uses
xdotool - macOS: Uses
cliclick - Windows: Uses PowerShell automation
Run the included tests to verify functionality:
# Test individual tools
npm test
# Manual testing
node dist/index.jsecho '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"screenshot","arguments":{"target":"screen"}}}' | node dist/index.jsecho '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"ui_inspect","arguments":{"target":"browser"}}}' | node dist/index.jsecho '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"file_watcher","arguments":{"action":"start","path":"/path/to/watch","pattern":"*.js"}}}' | node dist/index.jssrc/
βββ index.ts # MCP server entry point
βββ server.ts # Main server implementation
βββ types/ # TypeScript type definitions
βββ tools/ # Individual tool implementations
β βββ screenshot-system.ts
β βββ ui-inspect-simple.ts
β βββ performance-monitor-simple.ts
β βββ file-watcher.ts
βββ utils/ # Utility functions
| Platform | Screenshot | UI Inspect | Performance | File Watch | Screen Control |
|---|---|---|---|---|---|
| Linux | β Full | β Basic | β Full | β Full | β Full |
| macOS | β Full | β Basic | β Full | β Full | β Full |
| Windows | β Full | β Basic | β Full | β Full | β Full |
Linux:
- Screenshots: Uses system commands (
import,gnome-screenshot,scrot, etc.) - Screen Control: Requires
xdotool(sudo apt install xdotool)
macOS:
- Screenshots: Built-in
screencapturecommand - Screen Control: Requires
cliclick(brew install cliclick)
Windows:
- Screenshots: PowerShell with System.Drawing
- Screen Control: Built-in PowerShell automation
Contributions are welcome! Please feel free to submit pull requests, report bugs, or suggest features.
# Clone and install
git clone https://github.com/Antonio476587/zigzag.git
cd zigzag
npm install
# Install platform dependencies
./setup-screen-control.sh # Linux/macOS
# Development mode
npm run dev
# Build
npm run build
# Lint
npm run lint
# Test
npm testMIT License - see LICENSE file for details.
- Built on the Model Context Protocol
- Inspired by the need for AI agents to interact with visual interfaces
- Thanks to the Claude Code team for MCP integration
Linux: Install required screenshot tools:
# Ubuntu/Debian
sudo apt-get install imagemagick scrot
# Fedora
sudo dnf install ImageMagick scrotmacOS: No additional setup required
Windows: Ensure PowerShell execution policy allows scripts
Some metrics require elevated permissions. Run with appropriate privileges if needed.
Check file permissions and ensure the target directory exists and is accessible.
For issues, questions, or feature requests, please:
- Check the troubleshooting section above
- Search existing issues on GitHub
- Create a new issue with detailed information
- npm:
@origindot./zigzag - GitHub: https://github.com/Antonio476587/zigzag
- Documentation: https://github.com/Antonio476587/zigzag#readme
Made with β€οΈ for the AI development community