Xcode UI集成服务

一个通过AppleScript提供Xcode UI集成的MCP服务器,支持VS Code、GitHub Copilot等MCP客户端,实现构建集成、方案管理和构建诊断功能。

  • by GyroJoe
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 GyroJoe/xcode-ui-mcp

使用说明

Xcode UI MCP

通过AppleScript提供Xcode UI集成的MCP(模型上下文协议)服务器。适用于VS Code、GitHub Copilot和其他MCP客户端。

注: 此代码由GitHub Copilot生成。

特性

  • 构建集成:通过AppleScript构建触发器,实时更新进度、监控状态并获取错误/警告
  • 方案管理:列出Xcode方案并在它们之间切换
  • 构建诊断:从构建中检索结构化错误和警告信息

安装

uv sync

用法

在中配置 .vscode/mcp.json:

{
  "mcpServers": {
    "xcode-ui": {
      "command": "/opt/homebrew/bin/uv",
      "args": [
        "run",
        "mcp",
        "run",
        "src/server.py"
      ],
      "cwd": "/path/to/xcode-ui-mcp"
    }
  }
}

发展

在开发模式下运行服务器:

uv run mcp dev src/server.py

可用工具

方案管理

  • list_schemes() -在工作区中获取所有可用的Xcode方案
  • get_active_scheme() -获取当前活动的方案名称
  • set_active_scheme(scheme_name: str) -切换到其他方案

构建操作

  • build_scheme() -触发构建并通过实时更新监控进度
    • 报告构建状态更改
    • 显示出现的新错误
    • 定期更新警告计数
    • 返回最终构建结果

构建诊断

  • get_build_status() -检查构建完成情况并获取计数
    • 退货: {completed: bool, status: str, errors: int, warnings: int}
  • get_build_errors(max_errors: int = None) -获取结构化错误信息
    • 每个错误包括:文件路径、行、列、消息
  • get_build_warnings(max_warnings: int = 20) -获取结构化警告信息
    • 每个警告包括:文件路径、行、列、消息

实现细节

  • 使用AppleScript与Xcode通信
  • 具有状态轮询的非阻塞构建执行
  • 自定义分隔符解析以处理错误/警告消息中的逗号
  • 妥善处理丢失的文件路径和行号