MCPXcode
*!!!此项目正在积极开发中,因此可能会出现意外问题*
引言
MCPXcode是 模型上下文协议(MCP) 对于Xcode。它通过为Xcode环境中的上下文交换和工具执行提供结构化协议,实现了Xcode和AI助手之间的无缝集成。
遵循MCP规范,该项目在Xcode的开发环境和AI工具之间建立了一座桥梁,通过上下文理解和可编程交互来增强开发人员的工作流程。它封装了常见的命令行工具(xcrun, xctrace)并利用macOS的可访问性功能,实现Xcode操作的AI辅助自动化。
截图
安装
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone the repository
git clone https://github.com/everettjf/MCPXcode.git
cd MCPXcode
source .venv/bin/activate
uv add "mcp[cli]"配置
{
"mcpServers": {
"MCPXcode": {
"command": "uv", # may use full path
"args": [
"--directory",
"
/MCPXcode", # change to your full path
"run",
"main.py"
]
}
}
}特性
当前MCP工具集成
- xcrun工具扩展
- 用于常见xcrun命令的上下文感知接口 - 用于AI消费的结构化输出格式 - 语义错误处理和诊断报告
- xctrace工具扩展
- iOS/macOS应用程序的上下文增强分析和跟踪 - 用于AI分析的结构化性能指标收集 - 使用语义上下文进行跟踪数据处理
计划扩展
- 辅助功能工具扩展
- Xcode中的上下文感知UI交互 - 构建、运行和测试操作的语义触发器 - 结构化项目导航功能 - 从Xcode UI中增强上下文提取
- MCP HTTP服务器
- 通过HTTP完全符合MCP规范 - 标准化工具执行协议 - 为构建事件保留上下文的webhooks - 与AI驱动的CI/CD管道无缝集成
- MCP客户端库
- 实现MCP规范的特定语言SDK - 简化了AI助手和Xcode之间的上下文交换
工具文档
模拟器控制工具
| 工具 | 描述 | 示例提示 |
|---|---|---|
list_devices | 列出所有可用的模拟器设备及其详细信息 | “显示所有可用的iOS模拟器设备及其状态。” |
boot_device | 启动由UDID标识的特定模拟器设备 | “使用UDID A1B2C3D4-E5F6-7890-1234-567890ABCDEF启动iPhone 14 Pro模拟器。” |
shutdown_device | 关闭正在运行的模拟器设备 | “使用UDID A1B2C3D4-E5F6-7890-1234-567890ABCDEF关闭当前正在运行的iPhone模拟器。” |
install_app | 在模拟器设备上安装应用程序 | “在iPhone 14模拟器上的路径/Users/username/MyApp.app上安装该应用程序。” |
launch_app | 在模拟器设备上启动已安装的应用程序 | “在iPhone 14模拟器上启动捆绑包ID为com.example.myapp的应用程序。” |
SDK工具
| 工具 | 描述 | 示例提示 |
|---|---|---|
get_sdk_path | 获取当前SDK的路径 | “当前iOS SDK的路径是什么?” |
get_sdk_version | 获取当前SDK的版本 | “我使用的是哪个版本的iOS SDK?” |
get_sdk_platform_path | 获取当前SDK的平台路径 | “iOS平台文件在哪里?” |
find_developer_tool | 查找特定开发工具的路径 | “Xcode工具链中的'lldb'二进制文件在哪里?” |
run_tool_with_sdk | 使用特定SDK运行开发工具 | “使用iOS SDK运行‘clang’工具来编译我的源文件。” |
xcrun工具
| 工具 | 描述 | 示例提示 |
|---|---|---|
xcrun_list_sdks | 列出所有可用的SDK并提供详细信息 | “显示我可以构建的所有可用SDK。” |
xcrun_list_schemes | 列出指定Xcode项目中的所有方案 | “我的MyApp.xcodeproj项目中的构建方案是什么?” |
xcrun_build | 使用指定的方案和配置构建Xcode项目 | “使用iPhone模拟器的调试配置构建我的MyApp.xcodeproj项目。” |
xcrun_validate_app | 在提交到app Store之前验证应用程序 | “在提交到应用商店之前验证我的MyApp.ipa文件。” |
xcrun_upload_app | 将应用程序上传到app Store Connect | “将我经过验证的MyApp.ipa文件上传到app app Store Connect进行审核。” |
xcrun_swift_symbols | 从二进制文件中提取Swift符号 | “提取并显示我应用程序二进制文件中的所有Swift符号。” |
xcrun_otool_headers | 显示二进制文件的Mach-O头 | “显示我应用程序二进制文件的马赫-O头。” |
xcrun_otool_libraries | 显示二进制文件的链接库 | “我的应用程序的二进制链接针对哪些库?” |
xcrun_nm_symbols | 在二进制文件中显示符号 | “显示应用程序二进制文件中的所有符号。” |
xctrace工具
| 工具 | 描述 | 示例提示 |
|---|---|---|
xctrace_devices | 列出可用于跟踪的设备 | “显示我可以运行性能跟踪的所有设备。” |
xctrace_templates | 列出可用于跟踪的模板 | “哪些跟踪模板可用于性能分析?” |
xctrace_record | 使用指定模板记录应用程序性能 | “使用时间分析器模板记录我的应用程序的性能跟踪。” |
xctrace_record_advanced | 使用高级选项记录应用程序性能 | “使用自定义模板选项记录性能跟踪,并设置环境变量DEBUG=1。” |
xctrace_attach_process | 附加到正在运行的进程进行跟踪 | “将性能跟踪器附加到进程ID为12345的正在运行的应用程序。” |
xctrace_export | 将跟踪数据导出为指定格式 | “将我的trace.trace文件导出为JSON格式进行分析。” |
xctrace_diagnose | 诊断跟踪存档中的问题 | “分析我的跟踪文件是否存在任何性能问题。” |
xctrace_document | 为模板生成文档 | “为分配模板创建文档,以便我了解其指标。” |
xctrace_analyze | 分析跟踪文件并生成性能报告 | “从我的时间分析器跟踪文件生成性能报告。” |
xctrace_compare | 比较两个跟踪文件并生成比较报告 | “比较我的应用程序1.0版和2.0版的跟踪文件之间的性能。” |
项目路线图
第一阶段:MCP核心实施(2025年第二季度)
- ✅ 项目基本结构
- ⬜ 具有上下文处理功能的基本xcrun命令的工具扩展
- ⬜ 用于基本xctrace功能和上下文处理的工具扩展
- ⬜ 符合MCP的CLI接口
第二阶段:MCP服务器实施(2025年第三季度)
- ⬜ 全MCP规范HTTP服务器
- ⬜ 上下文感知身份验证和安全
- ⬜ 结构化上下文交换协议
- ⬜ 可扩展的工具注册表架构
第三阶段:MCP无障碍扩展(2025年第四季度)
- ⬜ macOS可访问性与语义上下文的集成
- ⬜ 上下文感知的Xcode UI自动化
- ⬜ 语义事件监控和上下文反应
第四阶段:高级MCP功能(2026年第一季度)
- ⬜ 符合MCP的Python客户端库
- ⬜ 与AI驱动的CI/CD工具进行上下文感知集成
- ⬜ 语义上下文监控仪表板
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
贡献
欢迎投稿!请随时提交拉取请求。
