Xcode项目服务器

一个强大的Xcode集成AI助手模型上下文协议服务器,提供完整的项目生命周期管理,从创建到部署。

  • by proofmath-owner
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 proofmath-owner/xcode-mcp

使用说明

Xcode MCP服务器🚀

一个强大而全面的模型上下文协议(MCP)服务器,用于Xcode与AI助手的集成。此增强版本提供了从创建到部署的完整项目生命周期管理。

🌟 v2.0中的新增功能

  • 完全支持TypeScript:完全的类型安全性和更好的开发人员体验
  • 真正的Swift包管理:实际添加、删除和管理包
  • 项目创建:从头开始生成完整、有效的Xcode项目
  • 增强工具:40多种工具,适用于iOS开发的各个方面
  • 更好的错误处理:详细的、可操作的错误消息
  • 性能优化:通过缓存和并行处理加快执行速度

✨ 特性

🔨 建设与项目管理

  • 创建项目:生成具有适当结构的完整Xcode项目
  • 构建项目:使用自定义配置和目标进行编译
  • 清洁文物:删除构建产品和派生数据
  • 管理方案:列出、创建和管理生成方案
  • 存档和导出:创建档案并导出IPAs
  • 代码签名:管理证书和配置文件

📱 模拟器控制

  • 全生命周期:创建、启动、关闭和删除模拟器
  • 应用程序管理:安装、启动和卸载应用程序
  • 媒体捕获:截取屏幕截图并录制视频
  • 设备管理:重置为出厂设置,管理多个设备
  • 高级控制:自定义运行时选择、状态管理

🧹 Swift开发工具

  • 代码分析:SwiftLint集成自动校正功能
  • 代码格式化:具有自定义配置的SwiftFormat
  • 测试执行:运行具有覆盖率报告的单元测试
  • 文件生成:从模板创建Swift文件
  • 包创建:初始化新的Swift包
  • 文档:从代码生成文档

📦 依赖管理

  • Swift软件包:添加、删除、列出和更新包
  • 版本控制:指定确切的版本、分支或范围
  • 相关性分析:检测CocoaPods、Carthage和SPM
  • 包分辨率:自动版本解析

🛠️ 安装

先决条件

  • Node.js 18+
  • Xcode 15+(从App Store安装)
  • Xcode命令行工具:
    xcode-select --install
    

可选工具

要获得完整功能,请安装以下附加工具:

# SwiftLint for code analysis
brew install swiftlint

# SwiftFormat for code formatting
brew install swiftformat

# Jazzy for documentation generation
gem install jazzy

安装Xcode MCP

# Clone the repository
git clone https://github.com/yourusername/xcode-mcp.git
cd xcode-mcp

# Install dependencies
npm install

# Build the project
npm run build

# Run tests
npm test

⚙️ 配置

克劳德桌面

添加到您的Claude Desktop配置中: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "xcode": {
      "command": "node",
      "args": ["/path/to/xcode-mcp/build/index.js"],
      "env": {
        "LOG_LEVEL": "1"
      }
    }
  }
}

其他MCP客户端

# Run the server directly
node /path/to/xcode-mcp/build/index.js

📚 使用示例

创建新的iOS应用程序

User: "Create a new iOS app called MyAwesomeApp with SwiftUI"
Claude: *creates complete Xcode project with SwiftUI template*

构建和测试

User: "Build the project and run tests"
Claude: *builds project, runs tests, shows results with coverage*

管理模拟器

User: "Create an iPhone 15 Pro simulator and take a screenshot"
Claude: *creates simulator, boots it, captures screenshot*

添加依赖关系

User: "Add Alamofire package to my project"
Claude: *adds Swift Package with proper version resolution*

🔧 可用工具

构建工具

工具 说明
build_project 使用选项构建Xcode项目
clean_project 清理构建工件
archive_project 创建存档以供分发
manage_signing 配置代码签名

模拟器工具

工具 说明
list_simulators 显示可用模拟器
boot_simulator 启动模拟器
install_app 在模拟器上安装应用程序
capture_screenshot 拍摄模拟器截图
record_video 记录模拟器屏幕

Swift工具

工具 说明
analyze_swift_code 运行SwiftLint分析
format_swift_code 使用SwiftFormat格式化
run_swift_tests 执行单元测试
create_swift_file 生成Swift文件

项目工具

工具 说明
create_xcode_project 创建新的Xcode项目
analyze_project_structure 分析项目依赖关系
add_swift_package 添加Swift包
list_swift_packages 显示已安装的软件包

📊 演出

  • 缓存:智能缓存减少了冗余操作
  • 并行处理:同时建立多个目标
  • 优化解析:快速分析构建输出
  • 最低开销:与xcodebuild直接集成

🔍 故障排除

找不到Xcode

# Verify Xcode installation
xcode-select -p

# Set Xcode path if needed
sudo xcode-select -s /Applications/Xcode.app

SwiftLint/SwiftFormat缺失

# Install via Homebrew
brew install swiftlint swiftformat

权限问题

# Reset permissions
sudo xcode-select --reset

构建失败

  1. 干净的衍生数据: clean_project 工具
  2. 重置包缓存: swift package reset
  3. 检查方案设置: list_schemes 工具

🧪 测试

# Run all tests
npm test

# Run with coverage
npm run test:coverage

# Watch mode
npm run test:watch

# Lint code
npm run lint

# Format code
npm run format

📈 监控

启用详细日志记录:

{
  "env": {
    "LOG_LEVEL": "0"  // 0=DEBUG, 1=INFO, 2=WARN, 3=ERROR
  }
}

🤝 贡献

欢迎投稿!请看 贡献.md 作为指导方针。

开发设置

# Install dev dependencies
npm install

# Run in watch mode
npm run watch

# Run linter
npm run lint:fix

📝 许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

🙏 致谢

  • MCP SDK团队为优秀的框架
  • Xcode团队提供全面的CLI工具
  • SwiftLint和SwiftFormat社区
  • 所有贡献者和测试人员

📞 支持


由以下材料制成❤️ 适用于使用AI助手的iOS开发人员