Xcode AI集成工具

MCPXcode是一个开源的Xcode AI集成工具,通过Model Context Protocol (MCP)实现Xcode与AI助手之间的无缝集成,提供上下文交换和工具执行的结构化协议,增强开发者工作流程。

  • by everettjf
  • Python
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 everettjf/mcpxcode

使用说明

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",
        "<Path>/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许可证获得许可-有关详细信息,请参阅许可证文件。

贡献

欢迎投稿!请随时提交拉取请求。