Xcode-MCP代码助手添加福利群:解决AI开发者的「MCP实战痛点」一个提供全面Xcode集成的MCP(模型上下文协议)服务器,专为AI助手设计。该服务器使AI代理能够与Xcode项目交互、管理iOS模拟器,并执行各种Xcode相关任务,同时具备增强的错误处理能力并支持多种项目类型。
使用包含的安装脚本自动完成安装和配置过程:
# 使脚本可执行
chmod +x setup.sh
# 运行安装脚本
./setup.sh

安装脚本的功能:
环境验证:
依赖项安装:
npm install安装所有必需的Node.js包npm run build编译TypeScript代码配置设置:
.env文件Claude Desktop集成(可选):
何时使用安装脚本:
脚本将通过清晰的提示和有用的反馈指导您完成配置过程。
何时使用手动安装:
按照以下步骤进行手动安装:
克隆仓库:
git clone https://github.com/r-huijts/xcode-mcp-server.git
cd xcode-mcp-server

验证前提条件(必须已安装):
安装依赖项:
npm install
构建项目:
npm run build
创建配置文件:
# 选项A:从示例配置开始
cp .env.example .env
# 选项B:创建最小配置
echo "PROJECTS_BASE_DIR=/path/to/your/projects" > .env
echo "DEBUG=false" >> .env

编辑.env文件以设置您的首选配置。
对于Claude Desktop集成(可选):
~/Library/Application Support/Claude/claude_desktop_config.json{
"mcpServers": {
"xcode": {
"command": "node",
"args": ["/path/to/xcode-mcp-server/dist/index.js"]
}
}
}

常见安装问题:
构建错误:
node_modules并重新运行npm installnpx tsc --noEmit检查TypeScript错误缺少依赖项:
npm installxcode-select --install权限问题:
sudo gem install cocoapods配置问题:
.env文件格式正确且路径有效PROJECTS_BASE_DIR指向现有目录Claude Desktop集成:
index.js的正确位置npm start
对于带有自动重启的开发模式:
npm run dev
您可以通过两种方式配置服务器:
在.env文件中使用环境变量:
PROJECTS_BASE_DIR=/path/to/your/projects DEBUG=true ALLOWED_PATHS=/path/to/additional/allowed/directory PORT=8080
使用命令行参数:
npm start -- --projects-dir=/path/to/your/projects --port=8080
PROJECTS_BASE_DIR / --projects-dir:项目的基础目录(必需)ALLOWED_PATHS / --allowed-paths:允许访问的附加目录(逗号分隔)PORT / --port:服务器运行的端口(默认:3000)DEBUG / --debug:启用调试日志(默认:false)LOG_LEVEL / --log-level:设置日志级别(默认:info)该服务器实现了模型上下文协议(MCP),使其与支持此协议的多种AI助手兼容。要连接:
http://localhost:3000)有关所有可用工具及其使用的全面概述,请参阅工具概述。
有关详细的使用示例和最佳实践,请参阅用户指南。
// 创建新的iOS应用项目
await tools.create_xcode_project({
name: "MyAwesomeApp",
template: "ios-app",
outputDirectory: "~/Projects",
organizationName: "My Organization",
organizationIdentifier: "com.myorganization",
language: "swift",
includeTests: true,
setAsActive: true
});
// 添加Swift包依赖项
await tools.add_swift_package({
url: "https://github.com/Alamofire/Alamofire.git",
version: "from: 5.0.0"
});

// 使用特定编码读取文件
const fileContent = await tools.read_file({
filePath: "MyAwesomeApp/AppDelegate.swift",
encoding: "utf-8"
});
// 写入文件
await tools.write_file({
path: "MyAwesomeApp/NewFile.swift",
content: "import Foundation\n\nclass NewClass {}\n",
createIfMissing: true
});
// 在文件中搜索文本
const searchResults = await tools.search_in_files({
directory: "MyAwesomeApp",
pattern: "*.swift",
searchText: "class",
isRegex: false
});

// 构建项目
await tools.build_project({
scheme: "MyAwesomeApp",
configuration: "Debug"
});
// 运行测试
await tools.test_project({
scheme: "MyAwesomeApp",
testPlan: "MyAwesomeAppTests"
});

xcode-mcp-server/ ├── src/ │ ├── index.ts # 入口点 │ ├── server.ts # MCP服务器实现 │ ├── types/ # 类型定义 │ │ └── index.ts # 核心类型定义 │ ├── utils/ # 实用函数 │ │ ├── errors.js # 错误处理类 │ │ ├── pathManager.ts # 路径验证和管理 │ │ ├── project.js # 项目实用工具 │ │ └── simulator.js # 模拟器实用工具 │ └── tools/ # 工具实现 │ ├── project/ # 项目管理工具 │ │ └── index.ts # 项目创建、检测、文件添加 │ ├── file/ # 文件操作工具 │ │ └── index.ts # 文件读取、写入、搜索 │ ├── build/ # 构建和测试工具 │ │ └── index.ts # 构建、测试、分析 │ ├── cocoapods/ # CocoaPods集成 │ │ └── index.ts # Pod安装和管理 │ ├── spm/ # Swift包管理器工具 │ │ └── index.ts # 包管理和文档生成 │ ├── simulator/ # iOS模拟器工具 │ │ └── index.ts # 模拟器控制和交互 │ └── xcode/ # Xcode实用工具 │ └── index.ts # Xcode版本管理、资源工具 ├── docs/ # 文档 │ ├── tools-overview.md # 全面工具文档 │ └── user-guide.md # 使用示例和最佳实践 ├── tests/ # 测试 └── dist/ # 编译后的代码(生成)
Xcode MCP服务器使用模型上下文协议为AI模型提供与Xcode项目交互的标准化接口。服务器架构设计包含几个关键组件:
服务器实现:处理工具注册和请求处理的主MCP服务器。
路径管理:通过验证所有路径是否在允许的目录中来确保安全的文件访问。
项目管理:检测、加载和管理不同类型的Xcode项目:
目录状态:维护活动目录上下文以进行相对路径解析。
工具注册表:将工具组织到不同Xcode操作的逻辑类别中。
AI助手向MCP服务器发送工具执行请求。
服务器验证请求参数和权限。
调用适当的工具处理程序并传递验证后的参数。
工具执行请求的操作,通常使用原生Xcode命令。
结果被格式化并返回给AI助手。
全面的错误处理提供有意义的反馈以进行故障排除。
服务器智能处理不同类型的项目:
这种架构允许AI助手无缝地与任何类型的Xcode项目一起工作,同时保持安全性并提供详细的反馈。
欢迎贡献!请随时提交Pull Request。
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)要向服务器添加新工具:
src/tools/目录中确定适当的类别index.ts文件中注册工具npm start -- --debug此项目根据MIT许可证授权 - 有关详细信息,请参阅LICENSE文件。