XcodeBazelMCP

117 tools. 80 can modify or destroy data without limits.

5 destructive tools with no built-in limits. Policy required.

Last updated:

80 can modify or destroy data
37 read-only
117 tools total

Community server · catalogue entry verified 12/06/2026

How to control XcodeBazelMCP ↓

What XcodeBazelMCP exposes to your agents

Read (37) Write / Execute (75) Destructive / Financial (5)
Critical Risk

The most dangerous XcodeBazelMCP tools

80 of XcodeBazelMCP's 117 tools can modify, destroy, or commit something on every call — and an agent calls them with no built-in limits.

How to control XcodeBazelMCP

PolicyLayer is an MCP gateway — it sits between your AI agents and XcodeBazelMCP, and nothing reaches the server without passing your rules. These are the rules we recommend:

Deny destructive operations
{
  "bazel_ios_agent_debug_log_clear": {
    "deny_if": [
      {
        "conditions": [],
        "on_deny": "Blocked by default. Requires approval."
      }
    ]
  }
}

Destructive tools should never be available to autonomous agents without human approval.

Rate limit write operations
{
  "bazel_scaffold": {
    "limits": [
      {
        "counter": "bazel_scaffold_per_hour",
        "window": "hour",
        "max": 30,
        "scope": "grant"
      }
    ]
  }
}

Prevents bulk unintended modifications from agents caught in loops.

Cap read operations
{
  "bazel_ios_last_command": {
    "limits": [
      {
        "counter": "bazel_ios_last_command_per_minute",
        "window": "minute",
        "max": 60,
        "scope": "grant"
      }
    ]
  }
}

Controls API costs and prevents retry loops from exhausting upstream rate limits.

  1. Create a free account and register XcodeBazelMCP — nothing to install.
  2. Add these rules — paste them, or build them visually. Tune the limits to your setup.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
ENFORCE POLICY ON XCODEBAZELMCP →

Free to start. No card required.

All 117 XcodeBazelMCP tools

EXECUTE 69 tools
Execute bazel_ios_agent_debug_repro One-shot Cursor debug repro: clear host log → build_and_run with AGENT_DEBUG_ launchEnv → optional log capture Execute bazel_ios_lldb_breakpoint Set a breakpoint by file+line, symbol name, or delete/list breakpoints. Execute bazel_ios_privacy Grant, revoke, or reset privacy permissions for an app on a simulator. Execute bazel_daemon_start Start or ensure the per-workspace background daemon is running. The daemon keeps stateful operations (log capt Execute bazel_daemon_stop Stop the per-workspace background daemon and clean up all active stateful operations. Execute bazel_ios_build Build a Bazel target with iOS-oriented defaults for simulator/device builds. Execute bazel_ios_build_and_run Build a Bazel iOS app, install it on a simulator or physical device, and launch it. One-shot build-run cycle. Execute bazel_ios_device_build_and_run Build a Bazel iOS app for device (arm64), install it on a connected device, and launch it. Execute bazel_ios_device_launch_app Launch an installed app on a connected physical iOS device by bundle identifier. Execute bazel_ios_device_log_start Start capturing logs from a connected physical iOS device. Tries pymobiledevice3 first (iOS 17+ via CoreDevice Execute bazel_ios_device_log_stop Stop an active device log capture and return captured output. Execute bazel_ios_device_stop_app Terminate a running app on a connected physical iOS device by bundle identifier. Execute bazel_ios_discover_targets Discover Bazel iOS app, unit/UI test, and build-test targets using bazel query. Execute bazel_ios_launch_app Launch an installed app on an iOS simulator by bundle identifier. Execute bazel_ios_lldb_command Run an arbitrary LLDB command. Use for advanced debugging not covered by other tools. Execute bazel_ios_log_capture_start Start capturing device logs from a booted simulator. Returns a capture ID. Execute bazel_ios_log_capture_stop Stop a running log capture and return captured logs. Execute bazel_ios_stop_app Terminate a running app on a booted simulator by bundle identifier. Execute bazel_ios_video_record_start Start recording video from a booted simulator. Returns a recording ID to stop later. Execute bazel_ios_video_record_stop Stop an active video recording and finalize the file. Execute bazel_macos_build Build a Bazel macOS target (macos_application, macos_bundle, macos_command_line_application, etc.). Execute bazel_macos_clean Clean Bazel macOS build outputs. Equivalent to bazel_ios_clean but scoped for macOS context. Execute bazel_macos_coverage Run Bazel macOS test with coverage collection and lcov output. Execute bazel_macos_launch Launch a previously built macOS application by its bundle path or target label. Execute bazel_macos_run Build and launch a Bazel macOS application locally via Execute bazel_macos_stop Terminate a running macOS application by bundle ID or process name. Execute bazel_tvos_build Build a Bazel tvOS target (tvos_application, tvos_extension, etc.). Execute bazel_tvos_run Build and launch a Bazel tvOS application via Execute bazel_visionos_build Build a Bazel visionOS target (visionos_application, etc.). Execute bazel_visionos_run Build and launch a Bazel visionOS application via Execute bazel_watchos_build Build a Bazel watchOS target (watchos_application, watchos_extension, etc.). Execute bazel_watchos_run Build and launch a Bazel watchOS application via Execute swift_package_build Build a Swift package using Execute swift_package_run Build and run an executable target in a Swift package using Execute bazel_ios_device_pair Pair with a physical iOS device for development. Execute bazel_ios_device_test Run Bazel iOS tests on a connected physical device. Builds with arm64 and runs via Execute bazel_ios_lldb_detach Detach LLDB from a process and end the debug session. Execute bazel_ios_lldb_expression Evaluate an expression in the current frame context (e.g. print a variable, call a method). Execute bazel_ios_lldb_step Step through code: over (next line), into (enter function), or out (finish function). Execute bazel_ios_lldb_threads List all threads or select a specific thread/frame for inspection. Execute bazel_ios_lldb_variables Inspect local variables, arguments, or all frame variables at the current stop point. Execute bazel_ios_pinch Simulate a pinch (zoom) gesture on the simulator. Execute bazel_ios_shutdown_simulator Shutdown a running iOS simulator. Execute bazel_ios_test Run a Bazel iOS test target with simulator and test-output defaults. Execute bazel_ios_test_coverage Run a Bazel iOS test target and collect code coverage data (lcov format). Execute bazel_macos_test Run a Bazel macOS unit test target (macos_unit_test). Execute bazel_tvos_test Run a Bazel tvOS unit test target (tvos_unit_test). Execute bazel_visionos_test Run a Bazel visionOS unit test target (visionos_unit_test). Execute bazel_watchos_test Run a Bazel watchOS unit test target (watchos_unit_test). Execute swift_package_test Run tests in a Swift package using Execute bazel_ios_boot_simulator Boot an iOS simulator device. Execute bazel_ios_device_install_app Install a previously built .app bundle onto a connected physical iOS device. Execute bazel_ios_double_tap Simulate a double-tap at screen coordinates on the simulator. Execute bazel_ios_drag Simulate a drag gesture from one point to another on the simulator. Execute bazel_ios_install_app Install a previously built .app bundle onto an iOS simulator. Execute bazel_ios_key_press Send a key press event to the simulator (e.g. Return, Escape, Home). Execute bazel_ios_lldb_attach Attach LLDB debugger to a running process by PID or process name. Returns a session ID for subsequent debug co Execute bazel_ios_long_press Simulate a long press at screen coordinates on the simulator. Execute bazel_ios_open_simulator Open Simulator.app and optionally bring a specific device to the foreground. Execute bazel_ios_open_url Open a URL on a booted simulator (deep links, universal links, web URLs). Execute bazel_ios_push_notification Send a simulated push notification to an app on a booted simulator. Execute bazel_ios_set_simulator_appearance Set the simulator UI appearance to light or dark mode. Execute bazel_ios_set_simulator_location Set the simulated GPS location on a booted simulator. Execute bazel_ios_set_status_bar Override the simulator status bar (time, battery, network, etc.). Useful for consistent screenshots. Execute bazel_ios_swipe Simulate a swipe gesture on the simulator. Execute bazel_ios_tap Simulate a tap at screen coordinates on the simulator. Execute bazel_ios_type_text Type text into the focused field on the simulator. Execute bazel_upgrade Upgrade XcodeBazelMCP to the latest version. Auto-detects install method (npm, Homebrew, source). Execute swift_package_resolve Resolve and fetch Swift package dependencies (
READ 37 tools
Read bazel_ios_last_command Return the most recent command run by this MCP server, including output and exit code. Read bazel_ios_target_info Show Bazel build-file information for a target. Read bazel_check_update Check if a newer version of XcodeBazelMCP is available. Read bazel_daemon_status Check whether the per-workspace daemon is running and list active background operations. Read bazel_ios_accessibility_snapshot Capture the accessibility element tree of the current simulator screen. Useful for finding tap targets and ver Read bazel_ios_agent_debug_log_pull Pull agent-debug.ndjson from a simulator app data container (Documents/agent-debug.ndjson) via simctl get_app_ Read bazel_ios_agent_debug_log_read Read and parse an agent debug NDJSON log. Returns structured entries grouped by hypothesisId/runId with status Read bazel_ios_bsp_status Inspect sourcekit-bazel-bsp setup files and likely setup targets in the workspace. Read bazel_ios_deps Query direct dependencies of a Bazel target. Read bazel_ios_device_get_app_path Return the .app bundle path for a previously built Bazel device target. Read bazel_ios_device_info Get detailed information about a connected physical iOS device (model, OS, capacity, etc.). Read bazel_ios_device_list_pairs List all paired physical iOS devices. Read bazel_ios_device_screenshot Take a screenshot of a connected physical iOS device screen. Read bazel_ios_get_app_path Return the .app bundle path for a previously built Bazel target. Read bazel_ios_get_bundle_id Extract CFBundleIdentifier from a built .app bundle. Read bazel_ios_health Check local Bazel, Xcode, simulator, and workspace readiness for iOS Bazel builds. Read bazel_ios_list_devices List connected physical iOS devices via devicectl. Read bazel_ios_list_profiles List available named profiles from the config file. Read bazel_ios_list_simulators List available iOS Simulator devices from simctl. Read bazel_ios_lldb_backtrace Get the call stack (backtrace) for the current or specified thread. Read bazel_ios_lldb_sessions List active LLDB debug sessions. Read bazel_ios_query Run a read-only bazel query in the configured workspace. Read bazel_ios_rdeps Query reverse dependencies — which targets depend on the given target. Read bazel_ios_screenshot Capture a screenshot from a booted simulator and save to a file. Read bazel_ios_show_defaults Show current session defaults, active profile, and config file settings. Read bazel_ios_ui_dump Get the current UI state of a booted simulator (appearance, increase contrast). Read bazel_list_workflows List all available workflow categories, their tools, and whether they are currently enabled. Use this to disco Read bazel_macos_app_path Locate the .app bundle for a macOS Bazel target in bazel-bin. Read bazel_macos_bundle_id Read the CFBundleIdentifier from a macOS .app bundle. Read bazel_macos_discover_targets Discover Bazel macOS application and unit test targets using bazel query. Read bazel_macos_log Stream system logs on macOS, optionally filtered by process. Read bazel_macos_screenshot Take a screenshot of the macOS desktop via Read bazel_scaffold_list_templates List available project scaffold templates. Read bazel_tvos_discover_targets Discover Bazel tvOS application and unit test targets. Read bazel_visionos_discover_targets Discover Bazel visionOS application and unit test targets. Read bazel_watchos_discover_targets Discover Bazel watchOS application and unit test targets. Read swift_package_dump Dump the Swift package manifest as JSON (

Related servers

Other MCP servers with similar tools — same risk classification, starter policies for each.

Questions about XcodeBazelMCP

Can an AI agent delete data through the XcodeBazel MCP server? +

Yes. The XcodeBazelMCP server exposes 5 destructive tools including bazel_ios_agent_debug_log_clear, bazel_ios_clean, bazel_ios_erase_simulator. These permanently remove resources with no undo. PolicyLayer blocks destructive tools by default so they never reach the upstream server.

How do I prevent bulk modifications through XcodeBazelMCP? +

The XcodeBazelMCP server has 6 write tools including bazel_scaffold, bazel_toggle_workflow, swift_package_init. Set a rate limit in your policy -- for example, 10 calls per hour prevents an agent from making more than 10 modifications per hour. PolicyLayer enforces this at the gateway, before calls reach XcodeBazelMCP.

How many tools does the XcodeBazel MCP server expose? +

117 tools across 4 categories: Destructive, Execute, Read, Write. 37 are read-only. 80 can modify, create, or delete data.

How do I enforce a policy on XcodeBazelMCP? +

Register the XcodeBazel MCP server in PolicyLayer, apply the suggested rules above (adjust the limits to your use case), and point your AI client at the PolicyLayer proxy URL instead of the server directly. Your agents keep the same tools; PolicyLayer evaluates every call against policy before it executes. Nothing to install, live in minutes.

Enforce policy on every XcodeBazelMCP tool call.

Deterministic rules across all 117 XcodeBazelMCP tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Free to start. No card required.

117 XcodeBazelMCP tools catalogued and risk-classified — across an index of 43,000+ MCP servers.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.