项目简介

Xcode MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端应用,旨在让AI助手能够直接控制和与Apple的集成开发环境Xcode进行交互。它使得AI能够执行发现项目、构建应用、运行测试、调试错误、管理iOS模拟器以及截取屏幕等开发任务,极大地简化了AI驱动的Apple平台开发工作流。

主要功能点

  • 项目和文件发现: 智能查找并浏览您的Xcode项目('.xcodeproj')和工作区('.xcworkspace')文件以及其中的源文件。
  • 构建与运行: 自动化编译并启动iOS、macOS、tvOS和watchOS应用程序。确保构建过程与用户在Xcode中手动操作一致。
  • 执行和监控测试: 运行项目中的单元测试和UI测试,并获取详细的测试结果报告。
  • 调试构建失败: 在构建失败时,自动检索并呈现详细的编译错误和警告信息,帮助AI快速定位问题。
  • 捕获控制台输出: 获取运行中应用程序的实时控制台日志输出,支持正则表达式过滤和行数限制。
  • 屏幕截图: 能够截取Xcode窗口、iOS模拟器以及其他macOS应用程序窗口的屏幕截图,用于可视化反馈。
  • 模拟器管理: 列出所有已启动的iOS、iPadOS、tvOS和watchOS模拟器,并提供其UDID和操作系统版本信息。
  • 应用和窗口列表: 列出所有正在运行的macOS应用程序及其窗口信息,方便进行精确的自动化操作。

安装步骤

  1. 系统要求:

    • 您需要一台运行 macOS 的电脑。
    • Xcode 必须已安装在您的系统上。
    • Python 3.8+ 必须已安装。
  2. 安装 'uv' 包管理器: 在您的终端中运行以下命令,以确保安装了 'uv' (一个快速的Python包安装器):

    which uv || brew install uv
  3. 配置MCP客户端: 根据您使用的MCP客户端(例如:Claude Code、Claude Desktop、Cursor AI)的文档,按照以下“服务器配置”部分提供的信息进行设置。

服务器配置

您的MCP客户端需要配置如何启动Xcode MCP服务器。以下是您需要提供给MCP客户端的关键信息。请不要直接复制粘贴以下JSON代码块到您的MCP客户端配置文件,而是根据您的MCP客户端界面或文档,将这些信息填入相应的字段。

  • 服务器名称 (Server Name): 'xcode-mcp-server'

  • 启动命令 (Command): 'uvx'

  • 命令参数 (Arguments): 'xcode-mcp-server'

  • 可选参数和环境变量配置说明: 这些参数和环境变量可以进一步定制服务器的行为或安全性。

    • 限制可访问文件夹 ('XCODEMCP_ALLOWED_FOLDERS' 环境变量或 '--allowed' 参数):
      • 作用: 控制MCP服务器可以访问的本地文件系统路径,增强安全性。
      • 配置方式:
        • 可以通过设置 'XCODEMCP_ALLOWED_FOLDERS' 环境变量来指定,多个路径之间使用冒号 ':' 分隔。例如:'/Users/yourname/MyProject:/Users/yourname/Documents/source'。
        • 也可以在启动命令参数中添加 '--allowed /path/to/folder',可以重复使用 '--allowed' 参数来指定多个文件夹。
      • 默认行为: 如果未指定,服务器将默认允许访问您的 '$HOME' 用户主目录。
      • 路径要求: 所有路径必须是绝对路径(以 '/' 开头),不能包含 '..' 组件,并且必须是已存在的目录。
    • 构建输出控制 ('--no-build-warnings' 或 '--always-include-build-warnings' 参数):
      • 作用: 控制 'build_project' 工具返回的构建日志中是否包含警告信息。
      • '--no-build-warnings': 仅显示错误,排除警告。
      • '--always-include-build-warnings': 始终显示警告(这是默认行为,除非被 '--no-build-warnings' 覆盖)。
    • 通知控制 ('--show-notifications' 或 '--hide-notifications' 参数):
      • 作用: 控制macOS系统通知的显示。这些通知会在MCP服务器执行操作时(例如“构建成功”、“运行应用”)弹出。
      • '--show-notifications': 启用macOS通知。
      • '--hide-notifications': 禁用macOS通知(这是默认行为)。
  • JSON配置参考示例 (仅作参考,请根据您的MCP客户端文档进行配置):

    {
        "mcpServers": {
            "xcode-mcp-server": {
                "command": "uvx",
                "args": [
                    "xcode-mcp-server",
                    // 例如:添加启动参数
                    // "--show-notifications",
                    // "--no-build-warnings"
                ],
                "env": {
                    // 例如:设置允许访问的文件夹环境变量
                    // "XCODEMCP_ALLOWED_FOLDERS": "/Users/yourname/Projects:/Users/yourname/Code"
                }
            }
        }
    }

基本使用方法

配置完成后,您可以在AI助手中直接通过自然语言与Xcode MCP服务器进行交互,让AI执行各种Xcode开发任务。以下是一些使用示例:

  • 查找项目: "在我的主目录下寻找所有Xcode项目。"
  • 构建项目: "构建 '/Users/yourname/MyProject/MyProject.xcodeproj' 这个项目。"
  • 运行测试: "运行当前项目的测试,并显示所有失败的测试案例。"
  • 获取构建错误: "这个项目有哪些构建错误和警告?"
  • 查看目录结构: "显示 '/Users/yourname/MyProject' 的目录结构,深度为3。"
  • 截取屏幕: "截取Xcode窗口的屏幕。" 或 "截取UDID为 'YOUR_SIMULATOR_UDID' 的iOS模拟器屏幕。"
  • 列出模拟器: "列出所有已启动的iOS模拟器。"
  • 启动应用 (无人值守): "在Xcode中启动 '/Users/yourname/MyApp/MyApp.xcodeproj',无需等待其完成。"
  • 启动应用 (带交互): "启动 '/Users/yourname/MyApp/MyApp.xcodeproj',我需要与它交互,完成后请提醒我。"

MCP服务器将通过JSON-RPC协议接收这些请求,并返回相应的JSON结果或通知。

信息

分类

开发者工具