内容
# SwiftCoderMCP
一套全面的 Swift 编码 MCP(模型上下文协议)服务器,包含 50 多种工具,用于创建脚本、快捷方式、组件、应用程序,并通过 AI 助手管理 Swift 项目。
## 🚀 特性
- **项目脚手架**:使用模板创建 Swift 软件包、应用程序、组件和宏
- **代码生成**:生成结构体、枚举、协议、SwiftUI 视图和测试
- **软件包管理**:管理 SPM 依赖项、更新和冲突
- **构建自动化**:构建、测试和存档,具有高级选项
- **组件开发**:创建 WidgetKit 扩展和 Live Activities
- **宏开发**:构建 Swift 宏,支持完整调试
- **代码重构**:重命名符号、提取方法、格式化代码
- **脚本编写**:创建 CLI 工具、Swift 脚本和快捷方式集成
- **测试**:生成单元测试、快照测试和性能基准
## 📦 安装
### 先决条件
- Swift 5.9+ (`swift --version`)
- Git
- 用于 Swift 软件包管理器的网络访问
> **树莓派 4 支持:** 只要安装了兼容的 Swift 工具链,该项目设计为可在 Linux ARM64(包括树莓派 OS 64 位版)上运行。
---
### 树莓派 4(推荐流程)
1. **使用 64 位操作系统镜像**(树莓派 OS 64 位 Bookworm 或 Ubuntu Server 22.04/24.04 ARM64)。
2. **安装 Swift**,适用于 Linux ARM64,参考官方 Swift 下载说明:
- https://www.swift.org/download/
3. **验证工具链**:
```bash
swift --version
```
4. **克隆并构建**:
```bash
git clone <your-fork-or-repo-url>
cd SwiftCoderMCP
./build.sh
```
5. **安装二进制文件**:
```bash
sudo cp .build/release/swift-coder-mcp /usr/local/bin/
```
6. **运行诊断**:
```bash
./diagnose.sh
swift-coder-mcp --version
```
---
### macOS / Linux 从源代码构建
```bash
git clone <your-fork-or-repo-url>
cd SwiftCoderMCP
./build.sh
sudo cp .build/release/swift-coder-mcp /usr/local/bin/
```
### 可选安装脚本
如果您已经构建了二进制文件,可以使用以下命令安装:
```bash
./install.sh --build
```
### 树莓派 4 故障排除提示
- 如果构建内存紧张,请降低并行度:
```bash
swift build -c release -j 2
```
- 确保您的 shell 可以找到 Swift (`which swift`) 和已安装的二进制文件 (`which swift-coder-mcp`)。
- 如果依赖项无法解析,请重新运行:
```bash
swift package resolve
```
## 🛠️ 可用工具(50+)
### 项目管理
- `create_swift_package` - 创建新的 Swift 软件包
- `scaffold_project` - 生成完整的项目结构
- `add_target` - 向现有软件包添加目标
- `analyze_project` - 分析项目结构和依赖项
- `setup_xcode_project` - 配置 Xcode 项目设置
### 代码生成
- `generate_struct` - 生成具有 Codable/Equatable 的结构体
- `generate_enum` - 生成具有关联值的枚举
- `generate_protocol` - 生成具有要求的协议
- `generate_extension` - 生成扩展
- `generate_swiftui_view` - 生成具有预览的 SwiftUI 视图
- `generate_test_cases` - 生成 XCTest/Swift Testing 测试
- `generate_mock` - 生成模拟实现
### 软件包管理
- `add_dependency` - 添加软件包依赖项
- `remove_dependency` - 删除依赖项
- `update_dependencies` - 更新到最新版本
- `resolve_dependencies` - 解析而不更新
- `show_dependencies` - 显示依赖项树
- `edit_package` - 修改 Package.swift
- `clean_package` - 清理构建工件
### 构建和测试
- `build_target` - 构建具有配置选项
- `run_executable` - 构建和运行可执行文件
- `test_package` - 运行具有覆盖率的测试
- `archive_build` - 创建分发存档
- `benchmark_build` - 性能基准构建
- `check_compatibility` - 检查 API 兼容性
### 组件开发
- `create_widget_extension` - 创建 WidgetKit 扩展
- `create_intent_configuration` - 可配置组件
- `create_live_activity` - 动态岛/锁屏活动
- `generate_widget_preview` - Xcode 预览代码
- `create_app_clip` - 具有关联域的 App Clip
### 宏开发
- `create_macro_package` - 完整的宏软件包结构
- `generate_macro_expansion_test` - 测试宏扩展
- `debug_macro_expansion` - 调试宏问题
- `create_macro_diagnostic` - 诊断消息和修复
- `analyze_swift_syntax` - SwiftSyntax AST 分析
### 重构
- `rename_symbol` - 跨代码库重命名
- `extract_method` - 提取到新方法
- `extract_variable` - 提取到变量
- `organize_imports` - 排序和组织导入
- `format_code` - 使用 swift-format 格式化
- `migrate_to_swift6` - Swift 6 迁移辅助
### 脚本编写和 CLI
- `create_swift_script` - 可执行的 Swift 脚本
- `create_shortcut_intent` - 快捷方式应用集成
- `create_cli_tool` - ArgumentParser CLI 工具
- `create_automation_script` - macOS 自动化
- `bundle_script` - 捆绑为独立可执行文件
### 模板
- `apply_template` - 使用预定义模板
- `create_template` - 创建自定义模板
- `list_templates` - 列出可用模板
- `customize_template` - 修改模板
### 依赖项
- `analyze_dependencies` - 完整的依赖项分析
- `check_vulnerabilities` - 安全漏洞检查
- `suggest_updates` - 更新建议
- `generate_dependency_report` - 多种格式的报告
### 测试
- `generate_unit_tests` - XCTest/Swift Testing 测试
- `generate_snapshot_tests` - 快照测试设置
- `generate_performance_tests` - 性能基准
- `analyze_test_coverage` - 覆盖率分析
## 💡 示例用法
### 创建新的 iOS 应用
```json
{
"tool": "scaffold_project",
"arguments": {
"name": "MyApp",
"path": "/Users/dev/projects",
"template": "ios-app",
"features": ["swiftui", "widget"]
}
}
```
### 生成 SwiftUI 视图
```json
{
"tool": "generate_swiftui_view",
"arguments": {
"name": "UserProfileView",
"stateVariables": [
{"name": "user", "type": "User", "initialValue": "User()"}
],
"body": "VStack { Text(user.name) }"
}
}
```
### 创建 CLI 工具
```json
{
"tool": "create_cli_tool",
"arguments": {
"name": "FileFinder",
"path": "/Users/dev/tools",
"arguments": [
{"name": "pattern", "type": "String", "help": "搜索模式"}
],
"flags": [
{"name": "recursive", "help": "递归搜索"}
]
}
}
```
### 添加依赖项
```json
{
"tool": "add_dependency",
"arguments": {
"packagePath": "/Users/dev/MyProject",
"url": "https://github.com/Alamofire/Alamofire",
"version": "5.8.0",
"products": ["Alamofire"]
}
}
```
## 🔧 配置
### Claude Desktop
添加到 `claude_desktop_config.json`:
```json
{
"mcpServers": {
"swift-coder": {
"command": "/usr/local/bin/swift-coder-mcp",
"args": [],
"env": {
"SWIFT_CODER_TEMPLATES": "~/.swift-coder-mcp/templates"
}
}
}
}
```
### Cursor
添加到 `.cursor/mcp.json`:
```json
{
"servers": [
{
"name": "swift-coder",
"command": "/usr/local/bin/swift-coder-mcp"
}
]
}
```
## 📚 文档
- [安装指南](INSTALLATION_GUIDE.md)
- [快速入门](QUICKSTART.md)
- [API 参考](API_REFERENCE.md)
- [示例](EXAMPLES.md)
## 🤝 贡献
1. 分叉仓库
2. 创建功能分支
3. 进行更改
4. 添加测试
5. 提交拉取请求
## 📄 许可证
MIT 许可证 - 请参阅 [LICENSE](LICENSE) 文件
## 🙏 致谢
- [Swift ArgumentParser](https://github.com/apple/swift-argument-parser)
- [SwiftSyntax](https://github.com/apple/swift-syntax)
- [MCP Swift SDK](https://github.com/modelcontextprotocol/swift-sdk)