npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ios-control-mcp

v0.3.4

Published

iOS Simulator automation MCP server

Readme

ios-control-mcp

npm version License: MIT macOS 13+

한국어

An MCP (Model Context Protocol) server for automating iOS simulators and real iOS devices. Enables LLMs like Claude to interact with iOS devices.

https://github.com/user-attachments/assets/4284357b-6b6e-4e6a-a81c-e5976052be51

Quick Start

Get started in 30 seconds:

  1. Add to your MCP client config:

    {
      "mcpServers": {
        "ios-control": {
          "command": "npx",
          "args": ["-y", "ios-control-mcp"]
        }
      }
    }
  2. Ask Claude: "Take a screenshot of the iOS simulator"

That's it! Claude can now control iOS simulators. See Installation for detailed setup instructions.

Features

Device Management

  • list_devices - List connected iOS devices (simulators and physical devices)
  • select_device - Select device to control by UDID

Screen Information

  • get_ui_snapshot - Get UI element tree of all foreground apps
  • screenshot - Take a screenshot of the current screen

UI Interactions

  • tap - Tap a UI element by its label
  • type_text - Type text (optionally into a specific element)
  • swipe - Swipe in a direction
  • drag - Drag from one element to another by their labels

App & Device Control

  • launch_app - Launch an app by its bundle ID
  • press_button - Press a hardware button (home, volumeUp, volumeDown)

Requirements

  • macOS 13 or later
  • Xcode (with iOS Simulator)
  • Node.js 18 or later
  • For physical devices: Apple Developer Team ID (free or paid)

Installation

Using Simulator (Default)

Simulators work out of the box without additional setup.

Standard config - Works with most MCP clients:

{
  "mcpServers": {
    "ios-control": {
      "command": "npx",
      "args": [
        "-y",
        "ios-control-mcp"
      ]
    }
  }
}
claude mcp add ios-control -- npx -y ios-control-mcp

For physical devices, add the Team ID environment variable:

claude mcp add ios-control -e IOS_CONTROL_TEAM_ID=YOUR_TEAM_ID -- npx -y ios-control-mcp

Follow the MCP installation guide using the standard config above.

Go to Cursor SettingsMCPAdd new MCP Server. Set a name and enter npx -y ios-control-mcp as the command type.

Install via VS Code CLI:

code --add-mcp '{"name":"ios-control","command":"npx","args":["-y","ios-control-mcp"]}'

Or follow the MCP installation guide using the standard config above.

Follow the Windsurf MCP documentation using the standard config above.

Using Physical iOS Devices

Using physical iOS devices requires an Apple Developer Team ID. A free Apple ID works too.

1. Find Your Team ID

Run this command in Terminal to find your Team ID:

security find-identity -v -p codesigning

Example output:

1) ABCDEF1234567890... "Apple Development: [email protected] (XXXXXXXXXX)"

The 10-character string in parentheses (e.g., XXXXXXXXXX) is your Team ID.

Don't have a Team ID? Open any project in Xcode, sign in with your Apple ID, and build to a device once. This will automatically generate a Team ID.

2. Add Team ID to MCP Configuration

{
  "mcpServers": {
    "ios-control": {
      "command": "npx",
      "args": ["-y", "ios-control-mcp"],
      "env": {
        "IOS_CONTROL_TEAM_ID": "YOUR_TEAM_ID"
      }
    }
  }
}

3. Prepare Your Device

  1. Enable Developer Mode: Settings → Privacy & Security → Developer Mode → Enable (iOS 16+)
  2. Connect via USB: Connect your device to Mac via USB and tap "Trust" when prompted
  3. First run: After the app is installed, if you see "Untrusted Developer" warning, go to Settings → General → VPN & Device Management and trust the developer app

Usage Examples

Here are some things you can ask Claude:

Screenshots & UI inspection:

"Take a screenshot of the current screen" "Show me the UI snapshot"

App navigation:

"Open the Settings app" "Launch Safari"

UI interactions:

"Tap the 'Sign In' button" "Type '[email protected]' in the email field" "Swipe up"

License

MIT