Skip to content

[Bug]: UI automation tools unavailable when installed via Smithery (bundled axe not found) #163

@anorth2

Description

@anorth2

Bug Description

NOTE

Everything below this is generated with Claude Code. It looks correct on review but please flag if anything is wrong.

AI GENERATED

Description

When XcodeBuildMCP is installed via Smithery, the UI automation tools (describe_ui, tap, swipe, etc.) fail with the error:

Bundled axe tool not found. UI automation features are not available.

This is likely an installation issue with the npm package.
Please reinstall xcodebuildmcp or report this issue.

Environment

  • XcodeBuildMCP version: 1.15.1
  • Installation method: Smithery
  • macOS version: Darwin 25.1.0 (arm64)
  • axe version: v1.2.1 (installed via Homebrew at /opt/homebrew/bin/axe)

Root Cause Analysis

The server looks for the bundled axe binary at a path relative to the entry point:

// From index.cjs (minified)
O7 = path.join(dirname(dirname(process.argv[1])), "bundled", "axe")

When installed via Smithery, the cached installation at ~/.smithery/cache/servers/cameroncooke/xcodebuildmcp/current/ only contains:

  • index.cjs
  • manifest.json
  • .metadata.json

The bundled/ directory with native binaries is not included in the Smithery cache.

Doctor Output Contradiction

Running doctor shows a contradiction:

Dependencies

  • axe: ✅ v1.2.1 # System install detected

UI Automation (axe)

  • Available: ❌ No # Bundled binary not found
  • UI Automation Supported: ❌ No

Workaround

Creating a symlink from the expected bundled location to the system-installed axe resolves the issue:

mkdir -p ~/.smithery/cache/servers/cameroncooke/xcodebuildmcp/bundled
ln -sf /opt/homebrew/bin/axe ~/.smithery/cache/servers/cameroncooke/xcodebuildmcp/bundled/axe

Suggested Fix

Consider one of these approaches:

  1. Fallback to system axe: If the bundled binary isn't found, check if axe is available in PATH and use that instead
  2. Smithery packaging: Ensure the Smithery package includes the bundled binaries
  3. Documentation: Add a note about this limitation when using Smithery installation

Option 1 seems most robust since users who install via Homebrew (brew tap cameroncooke/axe && brew install axe) would have a working system binary available.

Debug Output

Unneeded, fix is covered in the body.

Editor/Client

Claude Code

MCP Server Version

1.15.1

LLM

4.5 Opus

MCP Configuration

Steps to Reproduce

use the describe_ui tool

Expected Behavior

It should have been able to use the tool.

Actual Behavior

Instead the tool failed due to a linking error with the axe executable.

Error Messages

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingstale

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions