Skip to main content
Glama
XC-MCP: XCode CLI wrapper

XC-MCP: XCode CLI wrapper

by conorluddy

Manage Notifications and Photos

idb-library
DestructiveIdempotent

Manage iOS simulator delivered notifications and photos: list or clear notifications by bundle ID, or permanently delete all simulator photos with confirmation.

Instructions

idb-library

Manage delivered notifications and the simulator photo library.

operation: notification-list | notification-clear | photos-clear. udid is optional. Notification operations require bundleId. List output defaults to 25 entries; limit controls the cap. photos-clear requires confirm: true and permanently deletes all simulator photos. Requires idb 1.7+; unsupported commands return errors with upgrade guidance.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "operation": "<operation>"
    },
    "name": "idb-library"
  }
}

Input Schema

NameRequiredDescriptionDefault
udidNo
limitNo
confirmNo
bundleIdNo
operationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv5.0.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the description is not the only source of the safety profile. It nonetheless adds real value beyond them: photos-clear 'permanently deletes all simulator photos' (scope of destruction), list output defaults to 25 with limit controlling the cap, and an idb 1.7+ version prerequisite with upgrade-guidance errors. Return-field detail is still absent, but the behavior disclosure is above the annotation baseline.

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

Conciseness4/5

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

Front-loaded purpose followed by terse, high-density constraint lines; nothing is padded. The only waste is the '# idb-library' heading that merely restates the tool name.

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

Completeness4/5

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

For a five-parameter, no-output-schema tool spanning three distinct operations, the description covers operation selection, per-operation required inputs, destructive scope, default output size, and version requirements. It is nearly sufficient; only the shape of notification-list output and udid semantics remain unstated.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must carry all parameter meaning, and it largely does: udid is optional, bundleId is required for notification operations, limit has a default of 25 and acts as a cap, confirm must be true for photos-clear, and operation is an enumerated choice. The only gap is that udid's meaning (target simulator selection) is never spelled out.

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

Purpose4/5

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

The description opens with a concrete verb and resource pair ('Manage delivered notifications and the simulator photo library') and enumerates the three supported operations, so an agent knows exactly what capability this exposes. It stops short of naming a sibling (e.g., simctl-addmedia for adding media, simctl-push for sending pushes), so the boundary with adjacent photo/notification tools must be inferred.

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

Usage Guidelines4/5

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

Per-operation routing is clear: 'udid is optional', notification operations need bundleId, and photos-clear requires confirm: true. What is missing is an explicit when-not-to-use or an alternative named among the ~80 siblings, but the operation-to-precondition mapping gives solid actionable context.

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