# Xcode MCP server

> Connects external MCP clients like Cursor and Claude Code to Xcode tools through Apple's xcrun mcpbridge, repairing malformed tool responses.

- Repository: https://github.com/SoundBlaster/XcodeMCPWrapper
- Page: https://hostedmcp.org/servers/soundblaster/xcodemcpwrapper
- Transport: stdio
- Stars: 20
- License: MIT
- Latest version: 0.1.6

## Install

### Claude Code

```sh
claude mcp add xcodemcpwrapper -- uvx mcpbridge-wrapper
```

### Cursor (`~/.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "xcodemcpwrapper": {
      "command": "uvx",
      "args": [
        "mcpbridge-wrapper"
      ]
    }
  }
}
```

### VS Code (`.vscode/mcp.json`)

```json
{
  "servers": {
    "xcodemcpwrapper": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcpbridge-wrapper"
      ]
    }
  }
}
```

### VS Code CLI

```sh
code --add-mcp '{"name":"xcodemcpwrapper","type":"stdio","command":"uvx","args":["mcpbridge-wrapper"]}'
```

### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "xcodemcpwrapper": {
      "command": "uvx",
      "args": [
        "mcpbridge-wrapper"
      ]
    }
  }
}
```

### Codex

```sh
codex mcp add xcodemcpwrapper -- uvx mcpbridge-wrapper
```

### Codex config.toml (`~/.codex/config.toml`)

```toml
[mcp_servers.xcodemcpwrapper]
command = "uvx"
args = ["mcpbridge-wrapper"]
```

### Gemini CLI

```sh
gemini mcp add -s user xcodemcpwrapper uvx -- mcpbridge-wrapper
```

### Gemini settings.json (`~/.gemini/settings.json`)

```json
{
  "mcpServers": {
    "xcodemcpwrapper": {
      "command": "uvx",
      "args": [
        "mcpbridge-wrapper"
      ]
    }
  }
}
```

## FAQ

### What does the Xcode MCP bridge wrapper do?

It connects external MCP clients to Xcode through Apple's xcrun mcpbridge and repairs tool responses that declare an outputSchema but omit structuredContent.

### Which Xcode versions are supported?

Xcode 26.3 or newer on macOS, with Xcode 27.0 handshake and tool discovery verified.

### How do I add the Xcode MCP server to Cursor?

Add an entry to ~/.cursor/mcp.json using uvx with the mcpbridge-wrapper package and the --broker flag.

### What is broker mode?

Broker mode runs a shared per-user daemon so several clients reuse one persistent Xcode connection, reducing repeated connection prompts.

### Why does an Xcode tool call say the agent is not approved?

Use XcodeOpenWorkspace with the path of an existing project or workspace to request access, approve the prompt in Xcode, then retry.
