Skip to main content
Glama

mcp-idb

Facebook の iOS Development Bridge (idb) 用の MCP サーバー統合。

概要

このパッケージは、MCP (Model Context Protocol)と Facebook のidb (iOS Development Bridge)間の統合を提供し、MCP を介した iOS デバイス管理とテスト実行の自動化を可能にします。

サーバーを起動します。

npx -y @noahlozevski/mcp-idb

Related MCP server: iOS simulators MCP

前提条件

idbのインストール

idb をインストールするには:

brew tap facebook/fb
brew install idb-companion

# verify installation
idb

詳細については、公式 idb GitHub リポジトリをご覧ください。

構成

mcp-config.json セットアップ

MCP 構成で idb を使用するには、 mcp-config.jsonに次のコードを追加します。

{
  "mcpServers": {
    "idb": {
      "command": "npx",
      "args": ["-y", "@noahlozevski/idb"]
    }
  }
}

使用例には次のようなものがあります:

  • 自動テスト開発

  • スクリーンショットのテスト

  • 自動インタラクション(「画面上のホームボタンをタップ」)

  • アプリケーションのインストール/削除

発達

コードのフォーマット

このプロジェクトでは、コードのフォーマットにPrettierを使用しています。コードをフォーマットするには、以下の手順に従ってください。

npm run format        # Format all files

フォーマット設定は、プロジェクトのルートにある.prettierrcにあります。

トラブルシューティング

よくある問題と解決策:

  1. idbコンパニオンが見つかりません: Homebrew経由でidb-companionがインストールされていることを確認してください

  2. デバイスが検出されません: iOS デバイスが次の状態であることを確認してください:

    • USB経由で接続

    • コンピューター上で信頼される

    • 開発者モードが有効になっています

貢献

このパッケージに変更を加える場合は、標準の MCP 貢献ガイドラインに従ってください。

ライセンス

このプロジェクトは、Mobile Control Plane (MCP) の一部であり、Amazon の内部ライセンス ポリシーに従います。

Available Tools

1 tool
idbD
ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesThe IDB command to execute (e.g., list-apps, screenshot, etc.). - For a full list of commands, run 'idb help'. - For help with a specific command, run 'idb <command> --help'. To interact with the device (simulator): IMPORTANT: Always try using the 'idb ui describe-all' command to identify buttons before dispatching UI actions. If that doesn't work, try using the following commands: - **Tap** - **Command:** 'idb ui tap X Y [--duration DURATION]' - **Description:** Simulates a tap at the given screen coordinates. Optionally, you can set the tap's duration. - **Swipe** - **Command:** 'idb ui swipe X_START Y_START X_END Y_END [--delta STEP_SIZE]' - **Description:** Simulates a swipe gesture from the start point to the end point. By default, the swipe moves in steps of 10 points; use '--delta' to change the step size. - **Press a Button** - **Command:** 'idb ui button {APPLE_PAY, HOME, LOCK, SIDE_BUTTON, SIRI} [--duration DURATION]' - **Description:** Simulates pressing a specified hardware button. The press duration can be adjusted with the '--duration' flag. - **Inputting Text** - **Command:** 'idb ui text "some text"' - **Description:** Types the provided text string into the target device. - **Key Events** - **Single Key:** 'idb ui key KEYCODE [--duration DURATION]' - **Key Sequence:** 'idb ui key-sequence KEYCODE1 KEYCODE2 ...' - **Description:** Simulates key press events. Use the single key command for one key press (with an optional duration) or the key sequence command for multiple sequential key events. **Frame and Coordinates in idb ui describe-all:** The output from 'idb ui describe-all' provides detailed layout information for each UI element. Each element includes a 'frame' object with: - **x and y:** The coordinates of the element's top-left corner relative to the device screen. - **width and height:** The dimensions of the element. Additionally, an 'AXFrame' string presents this data in a human-readable format like '{{x, y}, {width, height}}'. These values allow you to determine an element's position—commonly by calculating its center (x + width/2, y + height/2) for precise interactions. For instance, in the sample output, the "More, tab, 4 of 4" button has a frame starting at x=330, y=876.33 with a width of 110 and height of 45.67. A tap command such as 'idb ui tap 375 880' (which targets near the element's center) successfully triggers the button.
optionsNoOptional arguments for the IDB command

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • First observedidb

TDQS

D1.7/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The tool 'idb' stands alone with no other tools to confuse it with, making disambiguation perfect by default.

Naming Consistency5/5

A single tool inherently has perfect naming consistency, as there are no other tools to compare it against. The name 'idb' is a standalone identifier with no pattern deviations or mixing of conventions.

Tool Count2/5

A single tool with no description makes it difficult to assess the server's purpose, but one tool is generally too few for meaningful functionality unless it's a trivial utility. Without context, this feels insufficient for most domains, suggesting a mismatch in scope.

Completeness1/5

With only one tool and no description, it's impossible to infer the domain or assess coverage. There are likely significant gaps, as a single tool cannot provide CRUD/lifecycle coverage for any non-trivial purpose, making the surface severely incomplete.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers