项目简介
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应用程序及其窗口信息,方便进行精确的自动化操作。
安装步骤
-
系统要求:
- 您需要一台运行 macOS 的电脑。
- Xcode 必须已安装在您的系统上。
- Python 3.8+ 必须已安装。
-
安装 'uv' 包管理器: 在您的终端中运行以下命令,以确保安装了 'uv' (一个快速的Python包安装器):
which uv || brew install uv -
配置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通知(这是默认行为)。
- 限制可访问文件夹 ('XCODEMCP_ALLOWED_FOLDERS' 环境变量或 '--allowed' 参数):
-
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结果或通知。
信息
分类
开发者工具