axiom-xcode-mcp-setup by charleswiltgen/axiom
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-xcode-mcp-setup如果此开关未开启,xcrun mcpbridge 可以连接但不会返回任何工具。
claude mcp add --transport stdio xcode -- xcrun mcpbridge
验证:claude mcp list 应显示 xcode 服务器。
codex mcp add xcode -- xcrun mcpbridge
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
在项目根目录创建或编辑 .cursor/mcp.json:
{
"mcpServers": {
"xcode": {
"command": "xcrun",
"args": ["mcpbridge"]
}
}
}
Cursor 特定说明:Cursor 是一个严格的 MCP 客户端。当工具声明 outputSchema 时,Xcode 的 mcpbridge 会省略 structuredContent,这违反了 MCP 规范。如果 Cursor 拒绝响应,请使用 XcodeMCPWrapper 作为代理:
{
"mcpServers": {
"xcode": {
"command": "/path/to/XcodeMCPWrapper",
"args": []
}
}
}
创建或编辑 .vscode/mcp.json:
{
"servers": {
"xcode": {
"type": "stdio",
"command": "xcrun",
"args": ["mcpbridge"]
}
}
}
gemini mcp add xcode -- xcrun mcpbridge
配置完成后,调用 XcodeListWindows(无参数)。您应该看到:
tabIdentifier: <uuid>, workspacePath: /path/to/YourProject.xcodeproj
如果看到空列表,请确保 Xcode 中已打开一个项目。
当 MCP 客户端首次连接时,Xcode 会显示一个 权限对话框:
基于 PID 的批准:权限是按进程授予的。如果客户端重启(新的 PID),您将再次看到对话框。这是预期行为。
当运行多个 Xcode 实例时:
mcpbridge 使用以下回退策略自动选择:
xcode-select 匹配的那个设置 MCP_XCODE_PID 以定位特定实例:
# 查找 Xcode PID
pgrep -x Xcode
# Claude Code 使用特定 PID
claude mcp add --transport stdio xcode -- env MCP_XCODE_PID=12345 xcrun mcpbridge
MCP_XCODE_SESSION_ID 为工具会话提供一个稳定的 UUID,对于跨重连跟踪交互非常有用。
digraph troubleshoot {
rankdir=TB;
"Connection failed?" [shape=diamond];
"tools/list empty?" [shape=diamond];
"Wrong project?" [shape=diamond];
"Repeated permission prompts?" [shape=diamond];
"Client rejects responses?" [shape=diamond];
"Check Xcode running + toggle on" [shape=box];
"Open a project in Xcode" [shape=box];
"Use MCP_XCODE_PID or check tab targeting" [shape=box];
"Expected: PID changes on restart" [shape=box];
"Use XcodeMCPWrapper proxy" [shape=box];
"Connection failed?" -> "Check Xcode running + toggle on" [label="refused/timeout"];
"Connection failed?" -> "tools/list empty?" [label="connects OK"];
"tools/list empty?" -> "Open a project in Xcode" [label="no tools"];
"tools/list empty?" -> "Wrong project?" [label="tools listed"];
"Wrong project?" -> "Use MCP_XCODE_PID or check tab targeting" [label="yes"];
"Wrong project?" -> "Repeated permission prompts?" [label="no"];
"Repeated permission prompts?" -> "Expected: PID changes on restart" [label="yes"];
"Repeated permission prompts?" -> "Client rejects responses?" [label="no"];
"Client rejects responses?" -> "Use XcodeMCPWrapper proxy" [label="strict client (Cursor)"];
}
| 症状 | 原因 | 解决方法 |
|---|---|---|
| "Connection refused" | Xcode 未运行或 MCP 开关未开启 | 启动 Xcode,在 设置 > 智能 中启用 MCP |
| tools/list 返回空 | 未打开项目,或权限未授予 | 在 Xcode 中打开一个项目,检查权限对话框 |
| 工具定位到错误项目 | 多个 Xcode 窗口,错误的标签页 | 调用 XcodeListWindows,使用正确的 tabIdentifier |
| 重复出现权限提示 | 客户端重启(新的 PID) | 预期行为 — 每次都需要批准 |
| Cursor/严格客户端错误 | 响应中缺少 structuredContent | 使用 XcodeMCPWrapper 作为代理 |
| "No such command: mcpbridge" | Xcode 版本 < 26.3 | 更新到 Xcode 26.3+ |
| 工具调用缓慢/卡住 | 大型项目正在索引 | 等待 Xcode 索引完成 |
Xcode 也为其内置助手支持 MCP 服务器。配置文件位于:
~/Library/Developer/Xcode/CodingAssistant/codex
~/Library/Developer/Xcode/CodingAssistant/ClaudeAgentConfig
这些用于配置 Xcode 的 内部 助手,与外部 MCP 客户端设置是分开的。
文档 : /xcode/mcp-server
技能 : axiom-xcode-mcp-tools, axiom-xcode-mcp-ref
每周安装量
49
仓库
GitHub 星标
601
首次出现
2026年2月16日
安全审计
安装于
opencode47
codex46
gemini-cli46
github-copilot45
kimi-cli45
amp45
Without this toggle, xcrun mcpbridge connects but returns no tools.
claude mcp add --transport stdio xcode -- xcrun mcpbridge
Verify: claude mcp list should show xcode server.
codex mcp add xcode -- xcrun mcpbridge
Create or edit .cursor/mcp.json in your project root:
{
"mcpServers": {
"xcode": {
"command": "xcrun",
"args": ["mcpbridge"]
}
}
}
Cursor-specific note : Cursor is a strict MCP client. Xcode's mcpbridge omits structuredContent when tools declare outputSchema, which violates the MCP spec. If Cursor rejects responses, use XcodeMCPWrapper as a proxy:
{
"mcpServers": {
"xcode": {
"command": "/path/to/XcodeMCPWrapper",
"args": []
}
}
}
Create or edit .vscode/mcp.json:
{
"servers": {
"xcode": {
"type": "stdio",
"command": "xcrun",
"args": ["mcpbridge"]
}
}
}
gemini mcp add xcode -- xcrun mcpbridge
After configuration, call XcodeListWindows (no parameters). You should see:
tabIdentifier: <uuid>, workspacePath: /path/to/YourProject.xcodeproj
If you see an empty list, ensure a project is open in Xcode.
When an MCP client first connects, Xcode shows a permission dialog :
PID-based approval : Permission is granted per-process. If the client restarts (new PID), you'll see the dialog again. This is expected behavior.
When multiple Xcode instances are running:
mcpbridge auto-selects using this fallback:
xcode-selectSet MCP_XCODE_PID to target a specific instance:
# Find Xcode PIDs
pgrep -x Xcode
# Claude Code with specific PID
claude mcp add --transport stdio xcode -- env MCP_XCODE_PID=12345 xcrun mcpbridge
MCP_XCODE_SESSION_ID provides a stable UUID for tool sessions, useful when tracking interactions across reconnections.
digraph troubleshoot {
rankdir=TB;
"Connection failed?" [shape=diamond];
"tools/list empty?" [shape=diamond];
"Wrong project?" [shape=diamond];
"Repeated permission prompts?" [shape=diamond];
"Client rejects responses?" [shape=diamond];
"Check Xcode running + toggle on" [shape=box];
"Open a project in Xcode" [shape=box];
"Use MCP_XCODE_PID or check tab targeting" [shape=box];
"Expected: PID changes on restart" [shape=box];
"Use XcodeMCPWrapper proxy" [shape=box];
"Connection failed?" -> "Check Xcode running + toggle on" [label="refused/timeout"];
"Connection failed?" -> "tools/list empty?" [label="connects OK"];
"tools/list empty?" -> "Open a project in Xcode" [label="no tools"];
"tools/list empty?" -> "Wrong project?" [label="tools listed"];
"Wrong project?" -> "Use MCP_XCODE_PID or check tab targeting" [label="yes"];
"Wrong project?" -> "Repeated permission prompts?" [label="no"];
"Repeated permission prompts?" -> "Expected: PID changes on restart" [label="yes"];
"Repeated permission prompts?" -> "Client rejects responses?" [label="no"];
"Client rejects responses?" -> "Use XcodeMCPWrapper proxy" [label="strict client (Cursor)"];
}
| Symptom | Cause | Fix |
|---|---|---|
| "Connection refused" | Xcode not running or MCP toggle off | Launch Xcode, enable MCP in Settings > Intelligence |
| tools/list returns empty | No project open, or permission not granted | Open a project, check for permission dialog in Xcode |
| Tools target wrong project | Multiple Xcode windows, wrong tab | Call XcodeListWindows, use correct tabIdentifier |
| Repeated permission prompts | Client restarted (new PID) | Expected behavior — approve each time |
| Cursor/strict client errors | Missing structuredContent in response | Use XcodeMCPWrapper as proxy |
| "No such command: mcpbridge" |
Xcode also supports MCP servers for its built-in assistants. Config files live at:
~/Library/Developer/Xcode/CodingAssistant/codex
~/Library/Developer/Xcode/CodingAssistant/ClaudeAgentConfig
These are for configuring Xcode's internal assistant, separate from external MCP client setup.
Docs : /xcode/mcp-server
Skills : axiom-xcode-mcp-tools, axiom-xcode-mcp-ref
Weekly Installs
49
Repository
GitHub Stars
601
First Seen
Feb 16, 2026
Security Audits
Gen Agent Trust HubWarnSocketPassSnykPass
Installed on
opencode47
codex46
gemini-cli46
github-copilot45
kimi-cli45
amp45
Skills CLI 使用指南:AI Agent 技能包管理器安装与管理教程
46,600 周安装
| Xcode < 26.3 |
| Update to Xcode 26.3+ |
| Slow/hanging tool calls | Large project indexing | Wait for Xcode indexing to complete |