settings — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited settings (Hook) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Like Playwright, but for native macOS applications. Control any Mac app with natural language through Claude - perfect for developing and testing Mac applications with AI assistance.
This is an MCP (Model Context Protocol) server that gives Claude the ability to see and interact with any macOS application - just like Playwright does for web browsers, but for native Mac apps.
Perfect for:
git clone https://github.com/mb-dev/macos-ui-automation-mcp.git
cd macos-ui-automation-mcp
uv sync⚠️ Critical: Enable accessibility for your parent application:
System Settings → Privacy & Security → AccessibilitySystem Settings → Privacy & Security → AccessibilitySystem Settings → Privacy & Security → AccessibilityThe parent app needs permission because it's the one actually executing the MCP server.
Add to your Claude Code MCP settings:
{
"mcpServers": {
"macos-ui-automation": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/macos-ui-automation-mcp",
"run",
"macos-ui-automation-mcp"
]
}
}
}Now you can ask Claude things like:
| Tool | Description | Use Case |
|---|---|---|
find_elements | Find UI elements using JSONPath | "Show me all text fields" |
find_elements_in_app | Search within a specific app | "Find buttons in Safari" |
click_by_accessibility_id | Click using accessibility actions | "Click the submit button" |
click_at_position | Click at screen coordinates | "Click at position (100, 200)" |
type_text_to_element_by_selector | Type text into elements | "Type 'hello' into the search field" |
get_app_overview | Overview of running applications | "What apps are currently running?" |
list_running_applications | List all running apps | "Show me all open applications" |
check_accessibility_permissions | Verify setup is correct | "Is accessibility properly configured?" |
Find elements using powerful JSONPath queries:
# All buttons in any app
$..[?(@.role=='AXButton')]
# Buttons with specific text
$..[?(@.title=='Submit')]
# All text fields that are enabled
$..[?(@.role=='AXTextField' && @.enabled==true)]
# Elements with accessibility identifiers
$..[?(@.ax_identifier=='loginButton')]
# Elements in a specific app
$.processes[?(@.name=='Calculator')]..[?(@.role=='AXButton')]This tool shines when developing and testing Mac applications:
"Test my login flow:
1. Find the username field and type 'testuser'
2. Find the password field and type 'password123'
3. Click the login button
4. Verify a success message appears""Check my settings window:
- Are all buttons properly labeled?
- Are there any text fields without accessibility identifiers?
- Click the screenshot button to capture the current state""Audit my app for accessibility:
- Find all interactive elements without accessibility labels
- Check if keyboard navigation works properly
- Identify any elements that might be hard to use"We don't provide built-in screenshot functionality, but you can easily add it to your Mac app! Check out our complete Swift implementation example based on a real-world app.
Key points:
ScreenCaptureKit (macOS 14+) for high-quality capturesUsage with Playwright MCP:
"Click the screenshot button to capture the current window"The MCP will find your button by accessibility ID and trigger the screenshot!
For contributors and advanced users:
# Clone and install
git clone https://github.com/mb-dev/macos-ui-automation-mcp.git
cd macos-ui-automation-mcp
uv sync --dev
# Run tests
uv run python -m pytest tests/ -v
# Check code quality
uv run ruff check src/ tests/ mcp_server_wrapper.py
uv run ruff format
# Test the MCP server
uv run macos-ui-automation-mcpI have limited time to fix issues, so here's the deal:
I'm happy to review PRs and provide guidance, but I can't promise quick fixes for reported issues. The codebase is well-tested and documented, so dive in! 🚀
Built with:
System Settings → Privacy & Security → Screen Recordingfind_elements_in_app)MIT License - feel free to use this in your projects!
Just like Playwright revolutionized web testing by providing a simple API to control browsers, this tool does the same for native macOS applications. Instead of writing complex GUI automation scripts, just tell Claude what you want to test or automate in natural language.
Perfect for the age of AI-assisted development! 🤖
Need help? Check the examples/ folder or open an issue. Better yet, submit a PR! 😄
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.