返回市场
Xcode项目-MCP服务器

Xcode项目-MCP服务器

作者:giginet102 星标更新:2025-07-01

项目介绍

xcodeproj-mcp-server

GitHub Workflow Status (with event) Swift 6.1 Xcode 16.4 SwiftPM Platforms License

这是一个使用Swift操作Xcode项目文件(.xcodeproj)的Model Context Protocol (MCP)服务器。

为所有目标添加后构建阶段

概述

xcodeproj-mcp-server是一个MCP服务器,提供了用于编程操作Xcode项目文件的工具。它利用了tuist/xcodeproj库进行可靠的项目文件操作,并使用swift-sdk实现了模型上下文协议。

该服务器使AI助手和其他MCP客户端能够:

  • 创建新的Xcode项目
  • 管理目标、文件和构建配置
  • 检查项目结构,包括组和层次结构
  • 修改构建设置
  • 添加依赖项和框架
  • 自动化常见的Xcode项目任务

使用场景

项目创建与设置

  • 从零开始创建项目:生成具有自定义配置、包标识符和组织设置的新Xcode项目,无需打开Xcode
  • 多目标项目搭建:设置包含多个应用、框架、测试和扩展的复杂项目,在一个自动化工作流中完成

开发工作流程自动化

  • 向目标添加新文件:在创建新的Swift文件后,自动将其添加到适当的源文件编译目标中
  • 添加文件夹引用:将外部资源文件夹或资产目录作为同步文件夹引用包含在项目中,自动反映任何文件系统更改
  • 添加构建阶段:将代码格式化器、linters或自定义构建脚本集成到目标中(例如,SwiftLint、SwiftFormat执行阶段)
  • 创建框架和应用扩展:快速搭建新的框架目标或应用扩展以模块化你的代码库

项目配置管理

  • 自动设置Info.plist:通过编程方式配置不同目标的Info.plist设置、权限和供应配置文件
  • 构建配置管理:设置不同的构建配置,带有适当的编译器标志、包标识符和部署目标
  • 依赖管理:添加系统框架、链接库并配置目标依赖项,无需手动导航Xcode

如何为Claude Desktop和Claude Code设置

先决条件

  • Docker
  • macOS(用于运行Xcode项目)

使用Docker安装

从GitHub容器注册表拉取预构建的Docker镜像:

docker pull ghcr.io/giginet/xcodeproj-mcp-server

配置Claude Code

# 使用Docker添加MCP服务器
$ claude mcp add xcodeproj -- docker run --rm -i -v $PWD:/workspace ghcr.io/giginet/xcodeproj-mcp-server /workspace

我们需要将当前工作目录($PWD)挂载到容器内的/workspace。这允许服务器访问你的Xcode项目。

配置Claude Desktop

在你的Claude Desktop配置文件中添加以下内容:

macOS~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "xcodeproj": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-v",
        "${workspaceFolder}:/workspace",
        "ghcr.io/giginet/xcodeproj-mcp-server",
        "/workspace"
      ]
    }
  }
}

路径安全

MCP服务器现在支持限制文件操作到特定的基础目录。当你提供命令行参数中的基础路径时:

  • 所有project_path和文件路径参数都将相对于此基础路径解析
  • 绝对路径会被验证以确保它们位于基础目录内
  • 尝试访问基础目录外的文件将导致错误

这在运行服务器于Docker容器或其他沙箱环境中特别有用。

可用工具

项目管理

  • create_xcodeproj - 创建一个新的Xcode项目

    • 参数:project_name, path, organization_name, bundle_identifier
  • list_targets - 列出项目中的所有目标

    • 参数:project_path
  • list_build_configurations - 列出所有构建配置

  • 参数:project_path

  • list_files - 列出特定目标中的所有文件

    • 参数:project_path, target_name
  • list_groups - 列出项目中的所有组及其层级路径,可选地按目标过滤

    • 参数:project_path, target_name(可选)

文件操作

  • add_file - 向项目添加文件

    • 参数:project_path, file_path, target_name, group_path
  • remove_file - 从项目中移除文件

    • 参数:project_path, file_path
  • move_file - 在项目内部移动或重命名文件

    • 参数:project_path, source_path, destination_path
  • add_synchronized_folder - 向项目添加同步文件夹引用

    • 参数:project_path, folder_path, group_name, target_name
  • create_group - 在项目导航器中创建新的组

    • 参数:project_path, group_name, parent_group_path

目标管理

  • add_target - 创建新的目标

    • 参数:project_path, target_name, type, platform, bundle_identifier
  • remove_target - 移除现有目标

    • 参数:project_path, target_name
  • duplicate_target - 复制现有目标

    • 参数:project_path, source_target_name, new_target_name
  • add_dependency - 在目标之间添加依赖关系

    • 参数:project_path, target_name, dependency_name

构建配置

  • get_build_settings - 获取目标的构建设置

    • 参数:project_path, target_name, configuration_name
  • set_build_setting - 修改构建设置

    • 参数:project_path, target_name, setting_name, value, configuration_name
  • add_framework - 添加框架依赖项

    • 参数:project_path, target_name, framework_name, embed
  • add_build_phase - 添加自定义构建阶段

    • 参数:project_path, target_name, phase_type, name, script

Swift包管理

  • add_swift_package - 向项目添加Swift包依赖项

    • 参数:project_path, package_url, requirement, target_name, product_name
  • list_swift_packages - 列出项目中的所有Swift包依赖项

    • 参数:project_path
  • remove_swift_package - 从项目中移除Swift包依赖项

    • 参数:project_path, package_url, remove_from_targets

许可证

该项目采用MIT许可证。