ToolTrust
B15/100
conorluddy

conorluddy-xc-mcp

mcp3.2.0

@conorluddy

XCode CLI MCP: Convenience wrapper for Xcode CLI tools & iOS Simulator. Progressive disclosure of tool responses to reduce context usage. Use --mini param for build-only with tiny context footprint.

By conorluddy | 161 findings | Scanned 6/22/2026 | tooltrust-scanner/v0.3.19 | 82

1 High35 Low125 Info

Risk Summary

Safe With Normal Controls

Dep Visibility is the main signal, but overall risk remains within an acceptable range.

Potential impact: This finding indicates the tool should be reviewed before it is trusted.

Recommended action: No high-risk findings were detected in this scan, but you should still apply least-privilege defaults and rescan after changes.

Suggested policy: keep this tool behind manual approval, do not allow unattended runs, and re-scan after narrowing risky permissions.

Security Findings (161)

  • HighAS-012

    ๐Ÿ”„Tool Drift

    Tool set changed silently at v3.2.0: 45 tool(s) added, 5 tool(s) removed without a version bump.

    + 45 added

    accessibility-auditcache-clearcache-get-configcache-get-statscache-set-confighang-get-detailshang-listhang-starthang-stopidb-installidb-launchidb-terminateidb-uninstalllocalization-auditpersistence-disablepersistence-enablepersistence-statussimctl-addmediasimctl-appearancesimctl-bootsimctl-clonesimctl-containersimctl-createsimctl-deletesimctl-erasesimctl-installsimctl-launchsimctl-locationsimctl-pbcopysimctl-privacysimctl-renamesimctl-shutdownsimctl-status-barsimctl-stream-logssimctl-suggestsimctl-terminatesimctl-uninstalltest-record-reporttest-record-stepvisual-diffworkflow-build-and-runxcode-model-inspectxcodebuild-inspect-schemexcodebuild-showsdksxcodebuild-validate-capabilities

    โˆ’ 5 removed

    cacheidb-apppersistencesimctl-appsimctl-device

    Fix: The set of tools exposed by this server changed between scans of the same version โ€” a sign the package was silently updated without a version bump. Audit the changelog and all tool definitions before trusting this server. Pin to a specific commit hash rather than a floating version tag.

  • LowAS-011

    โ„น๏ธMissing Rate-Limit / Timeout ร—33

    tool performs network or execution operations but declares no rate-limit, timeout, or retry configuration

    xcodebuild-versionxcodebuild-listxcodebuild-cleanxcodebuild-testxcodebuild-get-detailsxcodebuild-showsdkscache-get-statscache-get-configcache-set-configcache-clearpersistence-enablepersistence-disablepersistence-statusrtfmsimctl-get-detailssimctl-health-checksimctl-launchsimctl-terminatesimctl-openurlsimctl-pushsimctl-pbcopysimctl-privacysimctl-status-barsimctl-stream-logsidb-ui-tapidb-ui-inputidb-ui-gestureidb-ui-describeaccessibility-quality-checkaccessibility-auditworkflow-tap-elementsimctl-appearancexcode-model-inspect

    Fix: Declare explicit rate-limit, timeout, and retry configuration for all network and execution tools. Implement exponential back-off and surface resource state to the calling agent.

  • LowAS-002

    โš ๏ธExcessive Permissions ร—2

    input schema exposes 13 properties (threshold: 10)

    idb-ui-tap

    input schema exposes 11 properties (threshold: 10)

    idb-ui-gesture

    Fix: Tool requests broad permissions (exec/fs/network). Validate input parameters using Enums where possible, and restrict file system operations to explicit allowed directories.

  • InfoAS-002

    โš ๏ธExcessive Permissions ร—54

    declared capabilities: code/command execution, database access

    xcodebuild-versionxcodebuild-showsdksidb-ui-describeaccessibility-quality-checkworkflow-tap-element

    declared capabilities: code/command execution, filesystem access

    xcodebuild-listxcodebuild-cleanxcodebuild-testpersistence-statusidb-ui-gesture

    declared capabilities: filesystem access

    xcodebuild-buildxcodebuild-inspect-schemexcodebuild-validate-capabilitiessimctl-createsimctl-deletesimctl-installsimctl-iosimctl-addmediasimctl-suggestidb-installtest-record-reportlocalization-auditvisual-diff

    declared capabilities: code/command execution

    xcodebuild-get-detailscache-get-statscache-get-configcache-set-configcache-clearsimctl-get-detailssimctl-health-checkidb-ui-tapidb-ui-input

    declared capabilities: code/command execution, filesystem access, HTTP requests

    persistence-enablepersistence-disable

    declared capabilities: network access, filesystem access

    rtfmsimctl-pbcopyxcode-model-inspect

    declared capabilities: code/command execution, network access, environment variables

    simctl-launch

    declared capabilities: code/command execution, HTTP requests

    simctl-terminatesimctl-appearance

    declared capabilities: filesystem access, database access

    simctl-get-app-containerscreenshotsimctl-container

    declared capabilities: network access, database access

    simctl-openurl

    declared capabilities: network access, filesystem access, HTTP requests

    simctl-push

    declared capabilities: HTTP requests

    simctl-privacy

    declared capabilities: network access

    simctl-status-barsimctl-stream-logsaccessibility-audit

    declared capabilities: database access

    idb-ui-find-element

    declared capabilities: environment variables

    idb-launch

    declared capabilities: filesystem access, environment variables

    workflow-fresh-installworkflow-build-and-runtest-record-step

    Fix: Tool requests broad permissions (exec/fs/network). Validate input parameters using Enums where possible, and restrict file system operations to explicit allowed directories.

  • InfoAS-014

    โ„น๏ธDependency Inventory Unavailable ร—70

    No metadata.dependencies or repo_url were exposed by this MCP server, and no local project manifest could be inferred from the launch command.

    xcodebuild-versionxcodebuild-listxcodebuild-buildxcodebuild-cleanxcodebuild-testxcodebuild-get-detailsxcodebuild-showsdksxcodebuild-inspect-schemexcodebuild-validate-capabilitiessimctl-listcache-get-statscache-get-configcache-set-configcache-clearpersistence-enablepersistence-disablepersistence-statusrtfmsimctl-get-detailssimctl-bootsimctl-shutdownsimctl-createsimctl-deletesimctl-erasesimctl-clonesimctl-renamesimctl-health-checksimctl-installsimctl-uninstallsimctl-launchsimctl-terminatesimctl-get-app-containersimctl-openurlsimctl-iosimctl-pushscreenshotsimctl-addmediasimctl-pbcopysimctl-privacysimctl-status-barsimctl-stream-logssimctl-suggestsimctl-containeridb-targetsidb-ui-tapidb-ui-inputidb-ui-gestureidb-ui-describeidb-ui-find-elementaccessibility-quality-checkaccessibility-auditidb-list-appsidb-installidb-uninstallidb-launchidb-terminateworkflow-tap-elementworkflow-fresh-installworkflow-build-and-runtest-record-steptest-record-reportsimctl-appearancesimctl-locationlocalization-auditxcode-model-inspectvisual-diffhang-starthang-stophang-get-detailshang-list

    Fix: Review and remediate the identified issue.

  • InfoAS-010

    ๐Ÿ”‘Insecure Secret Handling

    hang-stop:input parameter "budgetTokens" accepts a credential (informational; not evidence of insecure handling)

    Fix: Avoid accepting raw credentials as input parameters. Use secret managers (e.g. 1Password CLI, AWS Secrets Manager) and ensure credentials are never logged or stored in agent traces.

Scan this tool yourself

Reproduce this audit locally, integrate into CI, or let your agent audit its own tools.

Install once, then scan any MCP server:

$ curl -sfL https://raw.githubusercontent.com/AgentSafe-AI/tooltrust-scanner/main/install.sh | bash
$ tooltrust-scanner scan --server "npx -y conorluddy-xc-mcp"

Adjust the package name if your npm registry name differs from the tool ID. View source

Add badge to your README

Copy this Markdown to show your ToolTrust grade on GitHub.

[![ToolTrust Grade B](https://raw.githubusercontent.com/AgentSafe-AI/tooltrust-directory/main/docs/badges/grade-b.svg)](https://github.com/AgentSafe-AI/tooltrust-directory)