xcodeproj mcp服务器
 

一个模型上下文协议(MCP)服务器,用于使用Swift操纵Xcode项目文件(.xcodeproj)。
Adding Post Build Phase for all targets
概述
此服务器使AI助手和其他MCP客户端能够:
- 创建新的Xcode项目
- 管理目标、文件和构建配置
- 检查项目结构,包括组和层次结构
- 修改构建设置
- 添加依赖关系和框架
- 自动化常见的Xcode项目任务
用例
项目创建和设置
- 从头开始创建项目:在不打开Xcode的情况下,使用自定义配置、捆绑标识符和组织设置生成新的Xcode项目
- 多目标工程脚手架:在单个自动化工作流中设置具有多个应用程序、框架、测试和扩展的复杂项目
开发工作流自动化
- 向目标添加新文件:创建新的Swift文件后,自动将其添加到相应目标的源文件中进行编译
- 添加文件夹引用:将外部资源文件夹或资产目录作为同步文件夹引用包含在项目中,自动反映任何文件系统更改
- 添加构建阶段:将代码格式化程序、linter或自定义构建脚本集成到您的目标中(例如,SwiftLint、SwiftFormat执行阶段)
- 创建框架和应用程序扩展:快速构建新的框架目标或应用程序扩展,以模块化您的代码库
- 添加小部件扩展:自动创建和嵌入具有适当配置的iOS主屏幕小部件的小部件扩展目标
项目配置管理
- 自动化Info.plist设置:以编程方式配置不同目标的Info.plist设置、权限和配置文件
- 构建配置管理:使用适当的编译器标志、捆绑标识符和部署目标设置不同的构建配置
- 依赖管理:添加系统框架、链接库和配置目标依赖项,无需手动Xcode导航
如何设置Claude Desktop和Claude Code
先决条件
- 码头工人
- macOS(用于运行Xcode项目)
使用Docker安装
从GitHub容器注册表中提取预构建的Docker镜像:
docker pull ghcr.io/giginet/xcodeproj-mcp-serverClaude代码的配置
claude mcp add xcodeproj -- docker run --pull=always --rm -i -v $PWD:/workspace ghcr.io/giginet/xcodeproj-mcp-server:latest /workspace我们需要挂载当前的工作目录($PWD)to /workspace 在容器内。这允许服务器访问您的Xcode项目。
推荐设置
启用 ENABLE_TOOL_SEARCH 在 .claude/settings.json 激活动态MCP工具加载。这可以防止未使用的MCP工具消耗上下文。
{
"env": {
"ENABLE_TOOL_SEARCH": "1"
}
}Claude桌面配置
将以下内容添加到您的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
应用扩展管理
add_app_extension-添加应用扩展目标并将其嵌入到宿主应用中
- 参数: project_path, extension_name, extension_type, host_target_name, bundle_identifier, platform (可选), deployment_target (可选) - 支持的扩展类型: widget, notification_service, notification_content, share, today, action, file_provider, intents, intents_ui, keyboard, photo_editing, document_provider, custom
remove_app_extension-从宿主应用中删除应用扩展目标及其嵌入
- 参数: project_path, extension_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许可证获得许可。
