Purpose
iwdp-mcp is used to debug iOS Safari from an AI agent. The project description notes that previously there was no tool that allowed an AI assistant to interact with Safari on a real iPhone; Chrome DevTools MCP uses the CDP protocol, which is incompatible with WebKit. This project bridges that gap through ios-webkit-debug-proxy, enabling an AI assistant to connect to Safari on a real iOS device for debugging.
Main capabilities
The project provides more than 100 tools, covering all 27 WebKit Inspector Protocol domains, with the MCP server and CLI fully equivalent in functionality. Specifically, these include:
- Navigation and screenshots
- DOM inspection: get_outer_html, get_attributes, get_event_listeners, highlight_node, etc.
- CSS: get_matched_styles, get_computed_style, set_style_text, force_pseudo_state, etc.
- Network interception: network_enable, list_network_requests, get_response_body, set_request_interception, intercept_continue, intercept_with_response, set_emulated_conditions, set_resource_caching_disabled
- Storage and Cookies: get_cookies (supports httpOnly and secure), set_cookie, delete_cookie, get_local_storage, get_session_storage, list_indexed_databases, get_indexed_db_data
- JavaScript debugging: debugger_enable, set_breakpoint, pause, resume, step_over, step_into, step_out, get_script_source, evaluate_on_call_frame, set_pause_on_exceptions
- Performance and profiling: timeline_start/stop, memory_start/stop_tracking, heap_snapshot, cpu_start/stop_profiling, script_start/stop_profiling
- Other: Animation, Canvas, LayerTree, Workers, Audit, Security (TLS certificates), and element interaction (click, fill, type_text)
The project specifically notes that httpOnly Cookies are not visible to document.cookie, and this tool can read them through the protocol; testing on real devices can uncover iOS-specific defects that simulators miss.
Usage
The project provides multiple installation and configuration paths:
- Claude Code plugin (recommended): run the installation command within Claude Code
- Precompiled binaries: download from GitHub Releases
- Build from source
- Install as a plugin (recommended)
- Add to the project's .mcp.json
- Add to ~/Library/Application Support/Claude/claude_desktop_config.json
- Via the installation badge at the top of the README, or add to .vscode/mcp.json
- Via the Cursor installation badge, or add to .cursor/mcp.json
- Add to ~/.codeium/windsurf/mcp_config.json
- Add to ~/.codex/config.toml
- Add to ~/.gemini/antigravity/mcp_config.json
- JetBrains: Settings → Tools → AI Assistant → Model Context Protocol (MCP) → Add, or add the corresponding JSON configuration
For Linux and other platforms, the project points to the ios-webkit-debug-proxy installation guide.
How it works: ios-webkit-debug-proxy exposes port 9221 (lists all connected devices) and port 9222+ (an incrementing port per device, listing its Safari tabs); each tab provides the WebSocket URL of the WebKit Inspector Protocol. iwdp-mcp connects to these WebSocket endpoints and exposes over 100 tools.
Use cases
- Debug iOS Safari on a real iPhone with an AI assistant
- Inspect DOM, CSS, network requests, storage, and cookies (including httpOnly)
- Perform JavaScript breakpoint debugging, heap snapshots, and performance profiling
- Discover iOS-specific defects on real devices that emulators miss
- Use with MCP-compatible clients such as Claude Code, VS Code, Cursor, Windsurf, Codex CLI, Antigravity, and JetBrains
Limitations
- Depends on ios-webkit-debug-proxy, which must be installed separately
- E2E tests require macOS and Xcode, with ios-webkit-debug-proxy installed; GitHub Actions macos-latest runners come with Xcode and iOS Simulator runtimes preinstalled
- Unit tests use a mock WebSocket server (internal/webkit/testutil/) that simulates the WebKit Inspector Protocol
- The project is MIT licensed; ios-webkit-debug-proxy is a separate project under the BSD-3-Clause license, and this tool connects to it at runtime via HTTP/WebSocket without bundling its code
No other specific features, fees, prices, platforms, or results information is currently provided.