{
  "markdown": "# XcodeMCPWrapper - mcpbridge-wrapper\n\n<!-- mcp-name: io.github.SoundBlaster/xcode-mcpbridge-wrapper -->\n\n<!-- version-badge:start -->\n[![Version](https://img.shields.io/badge/version-0.4.5-blue.svg)](https://github.com/SoundBlaster/XcodeMCPWrapper/releases/tag/v0.4.5)\n<!-- version-badge:end -->\n[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Coverage](https://img.shields.io/badge/coverage-91.62%25-brightgreen.svg)](./SPECS/ARCHIVE/P5-T14_Code_Coverage/)\n<!-- coverage-sync: keep README and DocC coverage metrics aligned -->\n[![MCP Registry](https://img.shields.io/badge/MCP%20Registry-io.github.SoundBlaster%2Fxcode--mcpbridge--wrapper-blue)](https://registry.modelcontextprotocol.io)\n\nA Python wrapper that makes Xcode 26.3's MCP bridge compatible with Cursor and\nother strict MCP-spec-compliant clients.\n\n## The Problem\n\nXcode's `mcpbridge` returns tool responses in the `content` field but omits the required `structuredContent` field when a tool declares an `outputSchema`. According to the MCP specification, when `outputSchema` is declared, responses **must** include `structuredContent`.\n\n- ✅ Claude Code and Codex CLI work (they have special handling for Apple's responses)\n- ❌ Cursor strictly follows the spec and rejects non-compliant responses\n\n## The Solution\n\n`mcpbridge-wrapper` intercepts responses from `xcrun mcpbridge` and copies the data from `content` into `structuredContent`, making Xcode's MCP tools fully compatible with all MCP clients.\n\n```\n┌─────────────┐    MCP Protocol    ┌──────────────────┐   MCP Protocol   ┌────────────┐    XPC    ┌─────────┐\n│   Cursor    │ ◄────────────────► │ mcpbridge-wrapper│ ◄──────────────► │ mcpbridge  │ ◄───────► │  Xcode  │\n│ (MCP Client)│                    │  (This Project)  │                  │  (Bridge)  │           │  (IDE)  │\n└─────────────┘                    └──────────────────┘                  └────────────┘           └─────────┘\n```\n\n## Quick Start\n\n### Prerequisites\n\n- macOS with Xcode 26.3+\n- Python 3.9+\n- **Xcode Tools MCP Server enabled** (see below)\n\n> ⚠️ **Important:** You MUST enable Xcode Tools MCP in Xcode settings:\n> 1. Open **Xcode** > **Settings** (⌘,)\n> 2. Select **Intelligence** in the sidebar\n> 3. Under **Model Context Protocol**, toggle **Xcode Tools** ON\n>\n> If you see \"Found 0 tools\" in your MCP client logs, this setting is not enabled.\n\n### Cursor Quick Setup\n\nIf you use **Cursor**, no installation is needed — just add this to `~/.cursor/mcp.json`:\n\n**Broker mode (Recommended):**\n\n```json\n{\n  \"mcpServers\": {\n    \"xcode-tools\": {\n      \"command\": \"uvx\",\n      \"args\": [\"--from\", \"mcpbridge-wrapper\", \"mcpbridge-wrapper\", \"--broker\"]\n    }\n  }\n}\n```\n\nWith Web UI dashboard (optional — adds real-time monitoring at http://localhost:8080):\n\n```json\n{\n  \"mcpServers\": {\n    \"xcode-tools\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"--from\",\n        \"mcpbridge-wrapper[webui]\",\n        \"mcpbridge-wrapper\",\n        \"--broker\",\n        \"--web-ui\",\n        \"--web-ui-config\",\n        \"/Users/YOUR_USERNAME/.mcpbridge_wrapper/webui.json\"\n      ]\n    }\n  }\n}\n```\n\n**Direct mode (Alternative):**\n\n```json\n{\n  \"mcpServers\": {\n    \"xcode-tools\": {\n      \"command\": \"uvx\",\n      \"args\": [\"--from\", \"mcpbridge-wrapper\", \"mcpbridge-wrapper\"]\n    }\n  }\n}\n```\n\nIf you upgrade and want to confirm the currently running dashboard process version:\n\n```bash\nPORT=8080\nPID=$(lsof -tiTCP:$PORT -sTCP:LISTEN | head -n1)\nPY=$(ps -p \"$PID\" -o command= | awk '{print $1}')\n\"$PY\" -c 'import importlib.metadata as m; print(m.version(\"mcpbridge-wrapper\"))'\n```\n\nIf needed, do a one-time refresh start:\n\n```bash\nuvx --refresh --from 'mcpbridge-wrapper[webui]' mcpbridge-wrapper --web-ui --web-ui-port 8080\n```\n\nRestart Cursor and you're done. For other clients or installation methods, read on.\n\n### Broker Mode\n\nBroker mode lets multiple short-lived MCP client sessions share one persistent\nupstream bridge session.\n\n- **Why this mode exists:** Apple documents a Coding Intelligence known issue in Xcode 26.4 where external development tools may trigger repeated \"Allow Connection?\" dialogs during normal usage (`170721057`). Reusing one long-lived upstream session via broker mode can reduce reconnect churn that surfaces this prompt pattern. See Apple's official [Xcode 26.4 release notes](https://developer.apple.com/documentation/xcode-release-notes/xcode-26_4-release-notes).\n- Use `--broker` to auto-detect — connect if daemon is alive, spawn otherwise (recommended).\n- Add `--web-ui` (plus optional `--web-ui-config`) when you want the spawned or daemon host to own one shared dashboard endpoint.\n- If you want one explicit daemon owner plus one visible monitoring surface across multiple editors, prefer a dedicated host: start `--broker-daemon --web-ui` once, keep clients on `--broker`, and attach the browser dashboard and/or `--tui` to that host.\n\nQuick migration examples:\n\n```bash\n# Claude Code\nclaude mcp add --transport stdio xcode -- uvx --from mcpbridge-wrapper mcpbridge-wrapper --broker\n\n# Codex CLI\ncodex mcp add xcode -- uvx --from mcpbridge-wrapper mcpbridge-wrapper --broker\n```\n\nAfter upgrading, stop the old singleton daemon once so the next `--broker` client\nstarts the new package version:\n\n```bash\nuvx --from mcpbridge-wrapper mcpbridge-wrapper --broker-stop\n```\n\nFor full start/stop/status commands, Cursor JSON snippets, troubleshooting, and\nrollback to direct mode, see [Broker Mode Guide](docs/broker-mode.md).\n\n#### Multi-Agent Guidance\n\nWhen you run multiple MCP client processes at the same time:\n\n- **Dedicated host frontend workflow (recommended when visibility matters):** start one `--broker-daemon --web-ui` process, keep every editor/client on `--broker`, and attach the browser dashboard and/or `mcpbridge-wrapper --tui` to the same host.\n- **Unified single-config auto-spawn:** configure each client with `--broker --web-ui --web-ui-config <shared-path>` when you want less setup and can accept implicit host ownership.\n- **Runtime expectation:** a dedicated host is the clearest way to control lifecycle; in unified auto-spawn, the first client that must spawn the broker starts the broker host and dashboard and later clients reuse it.\n- **Ownership rule:** only one process can bind a given Web UI `host:port` (for example `127.0.0.1:8080`).\n- **Connection behavior:** when a broker is already running, `--broker` reuses it and does not retrofit dashboard settings onto that existing host.\n- **Fallback behavior:** if dashboard bind fails (port already in use), broker MCP transport continues and only dashboard startup is skipped.\n- **Verification flow:** use `mcpbridge-wrapper --broker-status`, the files under `~/.mcpbridge_wrapper/`, and the shared dashboard/TUI state to verify that both editors are attached to one daemon.\n\nSee [Broker Mode Guide](docs/broker-mode.md#dedicated-host-frontend-workflow), [Web UI Setup Guide](docs/webui-setup.md#multi-agent-web-ui-ownership-model), and [Troubleshooting](docs/troubleshooting.md#how-do-i-confirm-two-editors-share-one-broker-daemon).\n\n### Python Environment Setup (Development)\n\nIf you plan to run `make install`, `pytest`, or other development commands, create and activate a virtual environment first. This avoids Homebrew Python's `externally-managed-environment` (PEP 668) error.\n\n```bash\ncd XcodeMCPWrapper\npython3 -m venv .venv\nsource .venv/bin/activate\npython3 -m pip install --upgrade pip\nmake install\n```\n\nQuick checks:\n\n```bash\nwhich python3\nwhich pip\n```\n\nBoth should point to `.venv/bin/...` while the environment is active.\n\n### Installation\n\n#### Option 1: Using uvx (Recommended - Easiest)\n\nThe fastest way to install is using [uvx](https://github.com/astral-sh/uv) (requires `uv` to be installed):\n\n```bash\n# No manual installation needed - uvx will automatically download and run\nuvx --from mcpbridge-wrapper mcpbridge-wrapper\n```\n\nOr add to your MCP client configuration directly (see configuration sections below).\n\n#### Option 2: Via MCP Registry\n\nIf your MCP client supports the MCP Registry:\n\n**Server name:** `io.github.SoundBlaster/xcode-mcpbridge-wrapper`\n\n```bash\n# Using mcp-publisher CLI\nmcp-publisher install io.github.SoundBlaster/xcode-mcpbridge-wrapper\n```\n\n#### Option 3: Using pip\n\n```bash\npython3 -m pip install mcpbridge-wrapper\n```\n\nThen use `mcpbridge-wrapper` or `xcodemcpwrapper` command.\n\n#### Option 4: Manual Installation (via install script)\n\n```bash\ngit clone https://github.com/SoundBlaster/XcodeMCPWrapper.git\ncd XcodeMCPWrapper\n./scripts/install.sh\n```\n\nThe install script creates a virtual environment, installs the package, and places a wrapper at `~/bin/xcodemcpwrapper`.\n\nIf you plan to use `--web-ui` MCP args, install Web UI extras explicitly:\n\n```bash\n./scripts/install.sh --webui\n```\n\nAdd the following to your `~/.bashrc` or `~/.zshrc`:\n```bash\nexport PATH=\"$HOME/bin:$PATH\"\n```\n\nThen reload:\n```bash\nsource ~/.zshrc\n# or\n. ~/.zshrc\n```\n\n#### Option 5: Local Development (venv)\n\nFor development or if you want to run directly from the cloned repository:\n\n```bash\ngit clone https://github.com/SoundBlaster/XcodeMCPWrapper.git\ncd XcodeMCPWrapper\npython3 -m venv .venv\nsource .venv/bin/activate\nmake install          # or: make install-webui (for Web UI support)\n```\n\nThe entry point is `.venv/bin/mcpbridge-wrapper`. Use the **full absolute path** when configuring MCP clients (see configuration sections below).\n\n### Uninstallation\n\nTo remove xcodemcpwrapper from your system:\n\n```bash\n./scripts/uninstall.sh\n```\n\nOptions:\n- `--dry-run` or `-n`: Show what would be removed without removing\n- `--yes` or `-y`: Skip confirmation prompt\n\n### Configuration\n\n#### Cursor\n\nBroker setup examples are listed first.\n\n**Using uvx in broker mode (Recommended):**\n\n```json\n{\n  \"mcpServers\": {\n    \"xcode-tools\": {\n      \"command\": \"uvx\",\n      \"args\": [\"--from\", \"mcpbridge-wrapper\", \"mcpbridge-wrapper\", \"--broker\"]\n    }\n  }\n}\n```\n\n**Using uvx in broker mode with Web UI (Optional):**\n```json\n{\n  \"mcpServers\": {\n    \"xcode-tools\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"--from\",\n        \"mcpbridge-wrapper[webui]\",\n        \"mcpbridge-wrapper\",\n        \"--broker\",\n        \"--web-ui\",\n        \"--web-ui-config\",\n        \"/Users/YOUR_USERNAME/.mcpbridge_wrapper/webui.json\"\n      ]\n    }\n  }\n}\n```\n\n**Using uvx in direct mode:**\n```json\n{\n  \"mcpServers\": {\n    \"xcode-tools\": {\n      \"command\": \"uvx\",\n      \"args\": [\"--from\", \"mcpbridge-wrapper\", \"mcpbridge-wrapper\"]\n    }\n  }\n}\n```\n\n**Using uvx in direct mode with Web UI (Optional):**\n```json\n{\n  \"mcpServers\": {\n    \"xcode-tools\": {\n      \"command\": \"uvx\",\n      \"args\": [\n        \"--from\",\n        \"mcpbridge-wrapper[webui]\",\n        \"mcpbridge-wrapper\",\n        \"--web-ui\",\n        \"--web-ui-port\",\n        \"8080\"\n      ]\n    }\n  }\n}\n```\n\n**Using manual installation (Direct mode):**\n\n```json\n{\n  \"mcpServers\": {\n    \"xcode-tools\": {\n      \"command\": \"/Users/YOUR_USERNAME/bin/xcodemcpwrapper\",\n      \"args\": []\n    }\n  }\n}\n```\n\n**Using manual installation with Web UI (Direct mode, optional):**\n> Requires installing with `./scripts/install.sh --webui` (or equivalent `.[webui]` dependencies).\n```json\n{\n  \"mcpServers\": {\n    \"xcode-tools\": {\n      \"command\": \"/Users/YOUR_USERNAME/bin/xcodemcpwrapper\",\n      \"args\": [\"--web-ui\", \"--web-ui-port\", \"8080\"]\n    }\n  }\n}\n```\n\n**Using local development (venv, direct mode):**\n```json\n{\n  \"mcpServers\": {\n    \"xcode-tools\": {\n      \"command\": \"/path/to/XcodeMCPWrapper/.venv/bin/mcpbridge-wrapper\"\n    }\n  }\n}\n```\n\n**Using local development with Web UI (Direct mode, optional):**\n```json\n{\n  \"mcpServers\": {\n    \"xcode-tools\": {\n      \"command\": \"/path/to/XcodeMCPWrapper/.venv/bin/mcpbridge-wrapper\",\n      \"args\": [\"--web-ui\", \"--web-ui-port\", \"8080\"]\n    }\n  }\n}\n```\n\n#### Claude Code\n\nBroker setup examples are listed first.\n\n**Using uvx in broker mode (Recommended):**\n\n```bash\nclaude mcp add --transport stdio xcode -- uvx --from mcpbridge-wrapper mcpbridge-wrapper --broker\n```\n\n**Using uvx in broker mode with Web UI (Optional):**\n```bash\nclaude mcp add --transport stdio xcode -- uvx --from 'mcpbridge-wrapper[webui]' mcpbridge-wrapper --broker --web-ui --web-ui-config \"$HOME/.mcpbridge_wrapper/webui.json\"\n```\n\n**Using uvx in direct mode:**\n```bash\nclaude mcp add --transport stdio xcode -- uvx --from mcpbridge-wrapper mcpbridge-wrapper\n```\n\n**Using uvx in direct mode with Web UI (Optional):**\n```bash\nclaude mcp add --transport stdio xcode -- uvx --from 'mcpbridge-wrapper[webui]' mcpbridge-wrapper --web-ui --web-ui-port 8080\n```\n\n**Using manual installation (Direct mode):**\n\n```bash\nclaude mcp add --transport stdio xcode -- ~/bin/xcodemcpwrapper\n```\n\n**Using manual installation with Web UI (Direct mode, optional):**\nRequires installing with `./scripts/install.sh --webui` (or equivalent `.[webui]` dependencies).\n```bash\nclaude mcp add --transport stdio xcode -- ~/bin/xcodemcpwrapper --web-ui --web-ui-port 8080\n```\n\n**Using local development (venv, direct mode):**\n```bash\nclaude mcp add --transport stdio xcode -- /path/to/XcodeMCPWrapper/.venv/bin/mcpbridge-wrapper\n```\n\n**Using local development with Web UI (Direct mode, optional):**\n```bash\nclaude mcp add --transport stdio xcode -- /path/to/XcodeMCPWrapper/.venv/bin/mcpbridge-wrapper --web-ui --web-ui-port 8080\n```\n\n#### Codex CLI\n\nBroker setup examples are listed first.\n\n**Using uvx in broker mode (Recommended):**\n\n```bash\ncodex mcp add xcode -- uvx --from mcpbridge-wrapper mcpbridge-wrapper --broker\n```\n\n**Using uvx in broker mode with Web UI (Optional):**\n```bash\ncodex mcp add xcode -- uvx --from 'mcpbridge-wrapper[webui]' mcpbridge-wrapper --broker --web-ui --web-ui-config \"$HOME/.mcpbridge_wrapper/webui.json\"\n```\n\n**Using uvx in direct mode:**\n```bash\ncodex mcp add xcode -- uvx --from mcpbridge-wrapper mcpbridge-wrapper\n```\n\n**Using uvx in direct mode with Web UI (Optional):**\n```bash\ncodex mcp add xcode -- uvx --from 'mcpbridge-wrapper[webui]' mcpbridge-wrapper --web-ui --web-ui-port 8080\n```\n\n**Using manual installation (Direct mode):**\n\n```bash\ncodex mcp add xcode -- ~/bin/xcodemcpwrapper\n```\n\n**Using manual installation with Web UI (Direct mode, optional):**\nRequires installing with `./scripts/install.sh --webui` (or equivalent `.[webui]` dependencies).\n```bash\ncodex mcp add xcode -- ~/bin/xcodemcpwrapper --web-ui --web-ui-port 8080\n```\n\n**Using local development (venv, direct mode):**\n```bash\ncodex mcp add xcode -- /path/to/XcodeMCPWrapper/.venv/bin/mcpbridge-wrapper\n```\n\n**Using local development with Web UI (Direct mode, optional):**\n```bash\ncodex mcp add xcode -- /path/to/XcodeMCPWrapper/.venv/bin/mcpbridge-wrapper --web-ui --web-ui-port 8080\n```\n\n#### Zed Agent\n\n**Using uvx (Recommended):**\n\nEdit `~/.zed/settings.json`:\n\n```json\n{\n  \"xcode-tools\": {\n    \"command\": \"uvx\",\n    \"args\": [\"--from\", \"mcpbridge-wrapper\", \"mcpbridge-wrapper\"],\n    \"env\": {}\n  }\n}\n```\n\n**Using uvx with Web UI (Optional):**\n```json\n{\n  \"xcode-tools\": {\n    \"command\": \"uvx\",\n    \"args\": [\n      \"--from\",\n      \"mcpbridge-wrapper[webui]\",\n      \"mcpbridge-wrapper\",\n      \"--web-ui\",\n      \"--web-ui-port\",\n      \"8080\"\n    ],\n    \"env\": {}\n  }\n}\n```\n\n**Using manual installation:**\n\n```json\n{\n  \"xcode-tools\": {\n    \"command\": \"/Users/YOUR_USERNAME/bin/xcodemcpwrapper\",\n    \"args\": [],\n    \"env\": {}\n  }\n}\n```\n\n**Using manual installation with Web UI (Optional):**\nRequires installing with `./scripts/install.sh --webui` (or equivalent `.[webui]` dependencies).\n```json\n{\n  \"xcode-tools\": {\n    \"command\": \"/Users/YOUR_USERNAME/bin/xcodemcpwrapper\",\n    \"args\": [\"--web-ui\", \"--web-ui-port\", \"8080\"],\n    \"env\": {}\n  }\n}\n```\n\n**Using local development (venv, direct mode):**\n```json\n{\n  \"xcode-tools\": {\n    \"command\": \"/path/to/XcodeMCPWrapper/.venv/bin/mcpbridge-wrapper\",\n    \"args\": [],\n    \"env\": {}\n  }\n}\n```\n\n**Using local development with Web UI (Direct mode, optional):**\n```json\n{\n  \"xcode-tools\": {\n    \"command\": \"/path/to/XcodeMCPWrapper/.venv/bin/mcpbridge-wrapper\",\n    \"args\": [\"--web-ui\", \"--web-ui-port\", \"8080\"],\n    \"env\": {}\n  }\n}\n```\n\n#### Kimi CLI\n\n**Using uvx (Recommended):**\n\nEdit `~/.kimi/mcp.json`:\n\n```json\n{\n  \"xcode-tools\": {\n    \"command\": \"uvx\",\n    \"args\": [\"--from\", \"mcpbridge-wrapper\", \"mcpbridge-wrapper\"],\n    \"env\": {}\n  }\n}\n```\n\n**Using manual installation:**\n\n```json\n{\n  \"xcode-tools\": {\n    \"command\": \"/Users/YOUR_USERNAME/bin/xcodemcpwrapper\",\n    \"args\": [],\n    \"env\": {}\n  }\n}\n```\n\n## Usage\n\nOnce configured, ask your AI assistant to use Xcode tools:\n\n```\n\"Build my project\"\n\"Run the tests\"\n\"Find all Swift files in the project\"\n\"Show me the build errors\"\n```\n\n## Web UI Dashboard (Optional)\n\nThe wrapper includes an optional Web UI dashboard for real-time monitoring and audit logging:\n\n```bash\n# Start with Web UI\nmake webui\n\n# Or directly\npython -m mcpbridge_wrapper --web-ui --web-ui-port 8080\n```\n\nFeatures:\n- **Real-time metrics**: RPS, latency percentiles (p50, p95, p99), error rates\n- **Tool usage analytics**: Visual charts of most frequently used tools\n- **Audit logging**: Persistent log of all MCP tool calls with export (JSON/CSV)\n- **Request inspector**: Live log stream with filtering\n\nOpen http://localhost:8080 in your browser to view the dashboard.\n\nImportant for multi-agent setups:\n- The dashboard is hosted by one wrapper process, not by Xcode or `mcpbridge`.\n- A single `host:port` can have only one listener; additional processes on the same port skip dashboard startup and continue MCP traffic.\n- For the explicit Phase 6 operator workflow, run one dedicated broker host with `--broker-daemon --web-ui`, then monitor that same host from the browser dashboard and/or `mcpbridge-wrapper --tui`.\n\nSee [Web UI Setup Guide](docs/webui-setup.md) for detailed configuration.\n\n## Known Issues\n\n- **Broker cold-start — Xcode approval timing race (0 tools with green dot):** When the broker daemon starts a new `xcrun mcpbridge` process (on first launch or after a daemon restart), Xcode shows a per-process \"Allow Connection?\" dialog. If your MCP client sends `tools/list` *before* Xcode grants approval, it receives an empty list and **caches it permanently** — showing 0 tools with a green connected indicator and no error message. Each unique binary path (direct wrapper vs broker daemon) triggers a *separate* dialog. After approval the permission persists — no re-approval is needed on subsequent sessions. **Workaround:** watch for the Xcode dialog immediately after enabling broker mode; after clicking Allow, reload the MCP connection in your client (disable → re-enable in settings). See [Troubleshooting: 0 tools after first broker connection](docs/troubleshooting.md#mcp-client-shows-0-tools-green-dot-after-first-broker-connection) for client-specific recovery steps and the diagnostic command.\n- **Singleton broker host behavior:** `--broker` reuses one live daemon per local user, including `uvx --from mcpbridge-wrapper mcpbridge-wrapper --broker` clients. The first client that auto-spawns the daemon determines the Python host identity Xcode sees; for the most stable permission identity, start a dedicated broker host from a fixed path or set `MCPBRIDGE_WRAPPER_BROKER_HOST_CMD` before auto-spawn.\n- **BUG-T5 → FU-P13-T7 (P0):** Empty-content tool results can still violate strict `structuredContent` expectations in strict MCP clients.\n- **BUG-T6 → FU-P13-T8 (P0):** Web UI port collisions can happen when multiple MCP sessions start with the same `--web-ui-port` (for example `8080`), producing `address already in use`.\n- **BUG-T7 → FU-P13-T9 (P0):** `resources/list` and `resources/templates/list` probing may return non-standard error shapes in some client paths.\n- **Codex Desktop resources probe behavior:** Xcode MCP is a tools-focused server. Some Codex Desktop paths may still probe `resources/list` and `resources/templates/list`; `-32601` (\"unknown method\") on those two calls does **not** mean tool connectivity is broken. Validate health with an actual Xcode tool call (for example `XcodeListWindows`).\n- **Codex broker-mode timeout fallback:** If Codex tool calls time out in broker mode, switch to direct mode (remove `--broker`) and validate with `XcodeListWindows`.\n\n### Disclaimer (Codex App)\n\n`mcpbridge-wrapper` normalizes Xcode MCP responses, but it does not control Codex App internals. Codex App transport/session behavior may change independently from Codex CLI and from this wrapper. If App and CLI differ, treat that as client-specific behavior first and verify with exact versions, config, and logs.\n\n## Documentation\n\n- [Installation Guide](docs/installation.md)\n- [Broker Mode Guide](docs/broker-mode.md) - Configuration, migration, rollback, and operations\n- [Web UI Dashboard](docs/webui-setup.md) - Real-time monitoring and audit logging\n- [Cursor Setup](docs/cursor-setup.md)\n- [Claude Code Setup](docs/claude-setup.md)\n- [Codex CLI Setup](docs/codex-setup.md)\n- [Troubleshooting](docs/troubleshooting.md)\n- [Tools Reference](docs/tools-reference.md)\n- [Architecture](docs/architecture.md)\n- [Contributing](CONTRIBUTING.md) - Development guide and quality gates\n\n## Development\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and contribution guidelines.\n\nQuick quality gate check:\n\n```bash\nmake test      # Run tests with coverage\nmake lint      # Run ruff linter\nmake typecheck # Run mypy type checker\n```\n\nOr run all gates:\n\n```bash\nmake test && make lint && make typecheck\n```\n\n## Performance\n\n- **Overhead:** <0.01ms per transformation\n- **Memory:** <10MB footprint\n- **Coverage:** 91.62% test coverage\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## Acknowledgments\n\n- Apple's Xcode team for the MCP bridge functionality\n- The MCP protocol specification\n- The Cursor, Claude, and Codex teams for AI-powered development tools\n",
  "bytes": 21901,
  "sha": "abbe5b4fd19ef4543edb727b2479b7fcab4593fbc7ffa8f977bab4092b31f6a1",
  "repo_slug": "soundblaster/xcodemcpwrapper",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_soundblaster_mcpbridge_wrapper_8db8980e/readme"
}