Xcode MCP服务器

一个MCP服务器,允许AI助手控制和与Xcode交互进行Apple平台开发。

  • by drewster99
  • Python
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 drewster99/xcode-mcp-server

使用说明

Drew的Xcode MCP服务器(drews Xcode MCP)

MCP(模型上下文协议)服务器,使AI助手能够控制Xcode并与之交互,以进行Apple平台开发。

重命名自 xcode-mcp-server. 与几个无关的项目共享 名称——Xcode本身现在提供了一个内置的MCP服务器——这个项目现在 drews-xcode-mcp. 现有设置继续工作: 旧的PyPI名称是 兼容性包转发到此包,所有设置都会继续。 方便时,更新MCP配置以运行 drews-xcode-mcp.如果你 服务器密钥/名称是旧的默认值 xcode-mcp-server,我们建议重命名它 到 drews-xcode-mcp 也一样——记得更新任何工具权限列表 引用旧工具名称(mcp__xcode-mcp-server__* 成为 mcp__drews-xcode-mcp__*).如果您选择了自定义密钥,请保留它和工具 权限不受影响。

它做什么

此服务器允许AI助手(如Claude、Cursor或其他MCP客户端):

  • 发现和导航 Xcode项目和源文件
  • 构建并运行 iOS、macOS、tvOS和watchOS应用程序
  • 执行和监控测试 详细结果
  • 调试构建失败 通过检索错误和警告
  • 捕获控制台输出 从运行的应用程序
  • 截图 Xcode窗口和iOS模拟器
  • 管理模拟器 并查看其状态

AI可以执行完整的开发工作流程——从查找项目到构建项目、运行测试、调试失败和捕获结果。

需求

  • macOS -此服务器仅适用于macOS
  • Xcode -必须安装Xcode
  • Python 3.10+ -用于运行服务器(如果您的系统Python较旧,uvx将自动获取兼容的Python)

安全

服务器实现了基于路径的安全性,以控制哪些目录是可访问的:

  • 有限制: 集 XCODEMCP_ALLOWED_FOLDERS=/path1:/path2:/path3 限制对特定目录的访问
  • 违约: 如果未指定,则允许访问您的主目录($HOME)

安全要求:

  • 所有路径必须是绝对的(以 /)
  • 不 .. 允许的路径组件
  • 所有路径都必须存在并且是目录

设置

首先,确保 uv 已安装(以下所有方法都需要):

which uv || brew install uv

1.克劳德代码(推荐)

claude mcp add --scope user --transport stdio -- drews-xcode-mcp `which uvx` drews-xcode-mcp

要运行特定版本,请使用:

# Example: How to run v1.3.0b6
claude mcp add --scope user --transport stdio -- drews-xcode-mcp `which uvx` drews-xcode-mcp==1.3.0b6

就是这样!Claude Code会自动处理其余部分。

2.克劳德桌面

编辑您的Claude Desktop配置文件(~/Library/Application Support/Claude/claude_desktop_config.json):

{
    "mcpServers": {
        "drews-xcode-mcp": {
            "command": "uvx",
            "args": [
                "drews-xcode-mcp"
            ]
        }
    }
}

如果您只想允许drews xcode mcp访问某些项目或文件夹,请添加 env 选项,用冒号分隔的绝对文件夹路径列表,如下所示:

{
    "mcpServers": {
        "drews-xcode-mcp": {
            "command": "uvx",
            "args": [
                "drews-xcode-mcp"
            ],
            "env": {
                "XCODEMCP_ALLOWED_FOLDERS": "/Users/andrew/my_project:/Users/andrew/Documents/source"
            }
        }
    }
}

3.光标AI

在光标中:设置→ 工具和集成→ + 新建MCP服务器

或编辑 ~/.cursor/mcp.json 直接:

{
    "mcpServers": {
        "drews-xcode-mcp": {
            "command": "uvx",
            "args": ["drews-xcode-mcp"]
        }
    }
}

可选: 使用添加文件夹限制 env 部分(格式与上述Claude Desktop相同)。

用法

配置后,只需让您的AI助手帮助完成Xcode任务:

  • “在我的主目录中查找所有Xcode项目”
  • “在/path/to/MyProject.xcodeproj中构建项目”
  • “运行此项目的测试,并向我显示任何失败”
  • “此项目中的构建错误是什么?”
  • “显示此项目的目录结构”
  • “截取Xcode窗口的屏幕截图”

大多数工具都使用路径 .xcodeproj 或 .xcworkspace 或者具有用于浏览和导航的常规目录路径。

高级配置

命令行参数

直接运行服务器(用于开发或自定义设置)时,可以使用以下选项:

构建输出控制:

  • --no-build-warnings -仅显示错误,排除警告
  • --always-include-build-warnings -始终显示警告(默认)

通知:

  • --show-notifications -启用macOS操作通知
  • --hide-notifications -禁用通知(默认)

访问控制:

  • --allowed /path -添加允许的文件夹(可以重复)

例子:

drews-xcode-mcp --no-build-warnings --show-notifications --allowed ~/Projects

注: 使用MCP客户端(Claude、Cursor)时,请通过 env 请改为客户端配置文件中的部分。

发展

服务器使用FastMCP构建,并使用AppleScript与Xcode通信。

本地测试

MCP检验员测试:

export XCODEMCP_ALLOWED_FOLDERS=~/Projects
mcp dev drews_xcode_mcp/__main__.py

这将打开一个检查器界面,您可以在其中直接测试工具。以引号字符串形式提供路径: "/Users/you/Projects/MyApp.xcodeproj"

局限性

  • AppleScript语法可能需要针对特定的Xcode版本进行调整
  • 有些操作需要先在Xcode中打开项目