AppleDocsTool
Apple development tools for Claude Code and Cursor - simulator UI automation, project analysis, build/test, and documentation lookup.
Install
Claude Code Plugin
From GitHub (works now):
/plugin marketplace add briannadoubt/claude-marketplace
/plugin install apple-docs@briannadoubt
From official marketplace (after approval):
/plugin install apple-docs
<details> <summary>Alternative: Local Claude install</summary>
git clone https://github.com/briannadoubt/AppleDocsTool.git
claude plugin install ./AppleDocsTool --scope user
Or MCP-only (no skills):
cd AppleDocsTool && swift build -c release
claude mcp add apple-docs .build/release/apple-docs
</details>
Verify Claude install:
/plugin list # should show apple-docs
Cursor MCP
Cursor project-level MCP config is included at .cursor/mcp.json.
git clone https://github.com/briannadoubt/AppleDocsTool.git
cd AppleDocsTool
swift build
Then in Cursor, open this repository and enable the apple-docs (minimal) or apple-docs-full server from MCP settings.
Cursor skills/rules are included at .cursor/rules/apple-docs-skills.mdc and route tasks to the shell-first workflows in skills/.
Architecture
This tool uses a skills-first approach for efficiency:
| Layer | What | Token Cost | |-------|------|------------| | Skills | Shell commands in skills/ directory | ~0 (just file reads) | | MCP (minimal) | 3 UI automation tools | ~2K tokens | | MCP (full) | All 33 tools | ~30K tokens |
By default, the server exposes only 3 tools that require macOS Accessibility APIs. Everything else can be done with shell commands documented in the skills.
Skills
Claude and Cursor agents discover capabilities from skills/SKILLS.md:
| Skill | Description | Example Commands | |-------|-------------|------------------| | analyze-project | Understand project structure | cat Package.swift, grep -rn "struct" | | build-and-test | Build and test | swift build, swift test | | lookup-docs | Find documentation | Apple docs URLs, GitHub READMEs | | control-simulator | Manage simulators | xcrun simctl boot, xcrun simctl install | | profile-app | Profile performance | xcrun xctrace record | | ui-interact | UI automation | Requires MCP tools |
MCP Tools
Default (Minimal Server)
Only tools that can't be done with shell commands:
| Tool | Description | |------|-------------| | simulator_ui_state | Get screenshot + OCR text with tap coordinates | | simulator_interact | Tap, swipe, type text, press hardware buttons | | simulator_find_text | Find text on screen, get coordinates |
Full Server
For all 33 tools (project symbols, Apple docs, build/test, profiling, etc.):
# Claude: configure with --full flag
claude mcp add apple-docs ~/.mint/bin/apple-docs --args --full
<details> <summary>Full tool list</summary>
Project Analysis
get_project_symbols- Extract types, functions, propertiesget_project_dependencies- List dependencies with versionsget_symbol_documentation- Detailed docs for specific symbolsget_project_summary- Quick project overviewsearch_symbols- Fuzzy search across project and Apple frameworks
Documentation
lookup_apple_api- Apple framework documentationget_dependency_docs- Fetch README from GitHub
Build & Test
swift_build- Build Swift packagesswift_test- Run tests with structured outputswift_run- Run executablesxcodebuild_build- Build Xcode projectsxcodebuild_test- Run Xcode testslist_schemes- List available schemeslist_destinations- List simulators/devices
Profiling
instruments_profile- Profile with any Instruments templatelist_instruments_templates- List available templates
Simulator Control
simctl_list_devices- List simulatorssimctl_list_runtimes- List iOS/tvOS/watchOS versionssimctl_device_control- Boot, shutdown, create, deletesimctl_app_install- Install appssimctl_app_control- Launch, terminate, uninstallsimctl_app_info- Get app infosimctl_screenshot- Capture screenshotssimctl_record_video- Record videosimctl_location- Set GPS locationsimctl_push- Send push notificationssimctl_privacy- Manage permissionssimctl_status_bar- Override status barsimctl_pasteboard- Clipboard accesssimctl_open_url- Open URLs/deep links
UI Automation
simulator_ui_state- Screenshot + OCRsimulator_interact- Tap, swipe, type, buttonssimulator_find_text- Find text coordinates
</details>
Usage Examples
With Skills (Recommended)
Claude reads the skill files and executes shell commands directly:
You: Analyze this Swift project
Claude: [Reads skills/analyze-project/SKILL.md]
[Runs: cat Package.swift]
[Runs: grep -rn "struct\|class" Sources/]
Here's the project structure...
With MCP Tools
For UI automation (the only thing that needs MCP):
You: Tap the Login button in the simulator
Claude: [Calls simulator_find_text(text: "Login")]
Found at (197, 445)
[Calls simulator_interact(action: "tap", x: 197, y: 445)]
Tapped Login button
Requirements
- macOS 13.0+
- Swift 6.0+ (Xcode 16+)
- Claude Code
- Cursor (optional, for MCP client support)
Development
# Build
swift build
# Test
swift test
# Run minimal server
swift run
# Run full server
swift run apple-docs --full
Project Structure
AppleDocsTool/
├── .cursor/
│ ├── mcp.json # Cursor MCP server config
│ └── rules/
│ └── apple-docs-skills.mdc # Cursor skill-routing rule
├── .claude-plugin/
│ └── plugin.json # Plugin manifest
├── .mcp.json # MCP server config
├── Package.swift
├── skills/ # Shell-based workflows
│ ├── SKILLS.md # Skill index
│ ├── analyze-project/
│ ├── build-and-test/
│ ├── control-simulator/
│ ├── lookup-docs/
│ ├── profile-app/
│ └── ui-interact/
└── Sources/
└── AppleDocsTool/
├── Server/
│ ├── MinimalMCPServer.swift # 3 UI tools (default)
│ └── MCPServer.swift # 33 tools (--full)
├── Services/ # Core functionality
└── Models/ # Data types
License
MIT License - see LICENSE for details.




