Skip to content

Commit cedf565

Browse files
committed
docs: add badges, config snippets, issue templates, and CONTRIBUTING.md
- CI/lint/license/Go Report Card badges in README - One-click install badges for VS Code, VS Code Insiders, and Cursor - Config snippets for Claude Desktop, Claude Code, VS Code, and Cursor - GitHub issue templates for bug reports and feature requests - CONTRIBUTING.md with development setup and guidelines - Added iwdp_status tool to README tools table - Synced marketplace.json version to 0.2.4
1 parent 6f74620 commit cedf565

5 files changed

Lines changed: 164 additions & 11 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "iwdp-mcp",
3-
"version": "0.2.1",
3+
"version": "0.2.4",
44
"description": "iOS Safari debugging via ios-webkit-debug-proxy — MCP server with full WebKit Inspector Protocol support",
55
"owner": {
66
"name": "nnemirovsky"
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Bug Report
2+
description: Report a bug or unexpected behavior
3+
labels: [bug]
4+
body:
5+
- type: textarea
6+
id: description
7+
attributes:
8+
label: Description
9+
description: What happened? What did you expect?
10+
validations:
11+
required: true
12+
- type: textarea
13+
id: steps
14+
attributes:
15+
label: Steps to Reproduce
16+
description: How can we reproduce the issue?
17+
- type: textarea
18+
id: environment
19+
attributes:
20+
label: Environment
21+
description: |
22+
- OS and version
23+
- iOS version
24+
- iwdp-mcp version (`iwdp-mcp --version` or `iwdp-cli --version`)
25+
- ios-webkit-debug-proxy version
26+
- Client (Claude Code, VS Code, Cursor, CLI)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Feature Request
2+
description: Suggest a new feature or improvement
3+
labels: [enhancement]
4+
body:
5+
- type: textarea
6+
id: description
7+
attributes:
8+
label: Description
9+
description: What feature would you like? What problem does it solve?
10+
validations:
11+
required: true
12+
- type: textarea
13+
id: alternatives
14+
attributes:
15+
label: Alternatives Considered
16+
description: Any workarounds or alternative approaches you've considered?

CONTRIBUTING.md

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# Contributing to iwdp-mcp
2+
3+
Thanks for your interest in contributing!
4+
5+
## Development Setup
6+
7+
```bash
8+
# Clone and build
9+
git clone https://github.com/nnemirovsky/iwdp-mcp.git
10+
cd iwdp-mcp
11+
make build
12+
13+
# Install ios-webkit-debug-proxy (macOS)
14+
brew install ios-webkit-debug-proxy
15+
```
16+
17+
## Before Submitting a PR
18+
19+
```bash
20+
make fmt # gofumpt formatting
21+
make lint # golangci-lint
22+
make test # all unit tests
23+
```
24+
25+
## Testing
26+
27+
- **Unit tests** (`make test`) — no device needed, uses mock WebSocket server
28+
- **E2E tests** (`make test-e2e`) — builds binaries, tests CLI + MCP server JSON-RPC
29+
- **Integration tests** (`make test-integration`) — requires `ios_webkit_debug_proxy` binary
30+
- **Simulator tests** (`make test-simulator`) — boots iOS Simulator, tests all tools against real Safari
31+
32+
## Commit Messages
33+
34+
Use [Conventional Commits](https://www.conventionalcommits.org/):
35+
36+
```
37+
feat: add heap snapshot collection
38+
fix: prevent concurrent WebSocket write panic
39+
refactor: extract URL parsing into DevicePort helper
40+
test: add table-driven tests for proxy port parsing
41+
```
42+
43+
## Branch Names
44+
45+
Prefix branches with the change type:
46+
47+
```
48+
feat/heap-snapshots
49+
fix/concurrent-write
50+
refactor/proxy-port-parsing
51+
```
52+
53+
## Architecture
54+
55+
- `internal/webkit/` — WebKit Inspector Protocol client (WebSocket + Target routing)
56+
- `internal/tools/` — Tool implementations shared by MCP server and CLI
57+
- `internal/proxy/` — iwdp process detection and management
58+
- `cmd/iwdp-mcp/` — MCP server binary (stdio transport)
59+
- `cmd/iwdp-cli/` — CLI binary
60+
61+
All WebKit protocol communication goes through `webkit.Client`. Tools return structured results; formatting is done by the caller (MCP or CLI).
62+
63+
## License
64+
65+
By contributing, you agree that your contributions will be licensed under the MIT License.

README.md

Lines changed: 56 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
# iwdp-mcp
22

3+
[![CI](https://github.com/nnemirovsky/iwdp-mcp/actions/workflows/test.yml/badge.svg)](https://github.com/nnemirovsky/iwdp-mcp/actions/workflows/test.yml)
4+
[![Lint](https://github.com/nnemirovsky/iwdp-mcp/actions/workflows/lint.yml/badge.svg)](https://github.com/nnemirovsky/iwdp-mcp/actions/workflows/lint.yml)
5+
[![Go Report Card](https://goreportcard.com/badge/github.com/nnemirovsky/iwdp-mcp)](https://goreportcard.com/report/github.com/nnemirovsky/iwdp-mcp)
6+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7+
8+
[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect/mcp/install?name=iwdp-mcp&config=%7B%22command%22%3A%22iwdp-mcp%22%7D)
9+
[![Install in VS Code Insiders](https://img.shields.io/badge/VS_Code_Insiders-Install_Server-24bfa5?style=flat-square&logo=visualstudiocode&logoColor=white)](https://insiders.vscode.dev/redirect/mcp/install?name=iwdp-mcp&config=%7B%22command%22%3A%22iwdp-mcp%22%7D&quality=insiders)
10+
[![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=iwdp-mcp&config=eyJjb21tYW5kIjoiaXdkcC1tY3AifQ==)
11+
312
MCP server + CLI for debugging iOS Safari via [ios-webkit-debug-proxy](https://github.com/google/ios-webkit-debug-proxy).
413

514
Speaks **WebKit Inspector Protocol** natively — full access to all 27 WebKit Inspector domains, including httpOnly cookies, network interception, heap snapshots, and more.
615

716
## Installation
817

9-
### Claude Code Plugin (recommended)
10-
11-
Inside Claude Code, run:
12-
13-
```
14-
/plugin marketplace add nnemirovsky/iwdp-mcp
15-
/plugin install iwdp-mcp
16-
```
17-
1818
### Go Install
1919

2020
```bash
@@ -75,7 +75,26 @@ iwdp-cli cookies
7575

7676
### MCP Server
7777

78-
Add to your Claude Code config (`.mcp.json`):
78+
<details>
79+
<summary><strong>Claude Desktop</strong></summary>
80+
81+
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
82+
83+
```json
84+
{
85+
"mcpServers": {
86+
"iwdp-mcp": {
87+
"command": "iwdp-mcp"
88+
}
89+
}
90+
}
91+
```
92+
</details>
93+
94+
<details>
95+
<summary><strong>Claude Code</strong></summary>
96+
97+
Add to your project's `.mcp.json`:
7998

8099
```json
81100
{
@@ -87,6 +106,32 @@ Add to your Claude Code config (`.mcp.json`):
87106
}
88107
```
89108

109+
Or install as a Claude Code plugin:
110+
111+
```
112+
/plugin marketplace add nnemirovsky/iwdp-mcp
113+
/plugin install iwdp-mcp
114+
```
115+
</details>
116+
117+
<details>
118+
<summary><strong>VS Code / Cursor</strong></summary>
119+
120+
Add to `.vscode/mcp.json` in your workspace:
121+
122+
```json
123+
{
124+
"servers": {
125+
"iwdp-mcp": {
126+
"command": "iwdp-mcp"
127+
}
128+
}
129+
}
130+
```
131+
132+
Or click the install badges at the top of this README.
133+
</details>
134+
90135
### Claude Code Prompts
91136

92137
Once the MCP server is configured, you can ask Claude Code things like:
@@ -132,6 +177,7 @@ Set a breakpoint in main.js and step through it
132177
### Core
133178
| Tool | Description |
134179
|------|-------------|
180+
| `iwdp_status` | Check/auto-start ios-webkit-debug-proxy |
135181
| `list_devices` | List connected iOS devices (HTTP GET :9221) |
136182
| `list_pages` | List Safari tabs (HTTP GET :9222+) |
137183
| `select_page` | Connect to a specific tab |

0 commit comments

Comments
 (0)