适用于Swift项目的生产就绪模型上下文协议(MCP)服务器。企业级双传输架构,具备全面的分析能力。
Swift代码质量、架构指导和性能优化的终极工具。
专为需要可靠、快速且智能项目分析的专业Swift开发者设计,这些分析可以无缝集成到他们的工作流程中。
./swift-mcp.sh - 构建、配置、测试在30秒内完成./swift-mcp.sh解决90%的问题// Swift 6合规性分析器
✅ 自动检测并发问题
✅ 建议actor隔离模式
✅ 自动修复常见的async/await错误
✅ 防止数据竞争发生
// 架构模式分析
✅ 识别MVVM、VIPER、TCA模式
✅ 检测庞大的视图控制器
✅ 建议关注点分离
✅ 推荐依赖注入
// 性能优化
✅ 查找主线程阻塞操作
✅ 建议高效的算法
✅ 识别潜在的内存泄漏
✅ 推荐缓存策略
# 一站式脚本 - 构建、配置、测试一切
./swift-mcp.sh
# 或运行特定功能:
./swift-mcp.sh build # 只构建
./swift-mcp.sh stdio # 运行持久STDIO模式
./swift-mcp.sh test # 测试功能
# 构建生产二进制文件
swift build --configuration release
# 验证安装
./.build/release/swift-mcp-server --help
# 自动VS Code配置
./swift-mcp.sh vscode # 自动设置VS Code配置
# 手动VS Code MCP配置:
{
"mcp.servers": {
"swift-mcp-server": {
"command": "/path/to/swift-mcp-server/.build/release/swift-mcp-server",
"args": ["--transport", "stdio", "${workspaceFolder}"],
"env": {"SWIFT_MCP_MODE": "vscode"}
}
}
}
# 运行服务器不关闭(用于多次请求)
./swift-mcp.sh stdio
# 生产HTTP服务器
swift-mcp-server --config http-config.json --transport http --port 9000
list_symbols - 查找所有函数、类、协议和变量find_references - 定位符号在整个代码库中的使用位置analyze_architecture - 检测模式、依赖关系和代码组织generate_documentation - 自动生成全面文档analyze_project - 全面项目健康和结构分析swift-mcp-server/
├── 📄 README.md # 主要文档(您在这里)
├── CONFIG_GUIDE.md # 高级配置指南
├── 📦 Package.swift # Swift包定义
├── 🛠️ 管理/
│ └── swift-mcp.sh # ⚡ 一站式管理脚本
├── ⚙️ 配置/
│ ├── vscode-mcp-config.json # VS Code MCP扩展设置
│ ├── stdio-config.json # STDIO传输配置
│ └── http-config.json # HTTP服务器配置
└── 💻 Sources/
├── SwiftMCPServer/ # 主应用程序入口点
├── SwiftMCPCore/ # 核心MCP协议实现
└── ModernConcurrency/ # Swift 6并发工具
退出码64(已修复✅)
# 现在通过支持位置参数解决了此问题
# VS Code MCP扩展传递工作区作为位置参数
swift-mcp-server /path/to/workspace # 完美运行
权限问题
./swift-mcp.sh # 自动修复所有问题
SourceKit-LSP未找到
./swift-mcp.sh health # 验证SourceKit-LSP安装
VS Code集成
./swift-mcp.sh vscode # 设置VS Code MCP配置
详见EXIT_CODE_64_FIX.md进行详细故障排除。
当前状态:具备生产就绪基础的战略增强路线图。
参阅CONTRIBUTING.md了解开发指南。
git clone https://github.com/your-username/swift-mcp-server.git
cd swift-mcp-server
./swift-mcp.sh # 为开发设置一切
swift test # 运行测试套件
find_symbols - 使用智能过滤搜索Swift符号find_references - 查找符号的所有引用get_definition - 导航到符号定义analyze_project - 完整项目分析和指标generate_documentation - 自动生成项目文档analyze_architecture - 架构模式检测swift-mcp-server --help
# 关键选项:
--transport <mode> # http, stdio(默认:http)
--workspace <path> # Swift项目路径
--config <file> # JSON配置文件
--port-min <min> # 自动端口选择范围
--port-max <max> # 自动端口选择范围
--log-level <level> # 日志详细程度
--json-logs # 结构化JSON输出
创建config.json用于高级部署:
{
"mcpServer": {
"transport": {
"type": "http",
"host": "0.0.0.0",
"portRange": {"min": 9000, "max": 9010}
}
},
"performance": {
"maxConcurrentTasks": 10,
"taskTimeoutSeconds": 30.0
}
}
analyze_project - 完整项目分析带指标find_symbols - 高级符号搜索和过滤find_references - 符号引用跟踪get_definition - 符号定义查找analyze_architecture - 模式检测(MVC、MVVM、VIPER)analyze_pop_usage - 协议导向编程评估generate_documentation - 自动API文档生成format_document - Swift代码格式化get_hover_info - 符号信息和文档# 列出可用工具
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{"method": "tools/list", "params": {}}'
# 分析项目结构
curl -X POST http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "analyze_project",
"arguments": {"project_path": "/path/to/project"}
}
}'
Sources/
├── SwiftMCPServer/ # 主应用程序入口点
│ └── SwiftMCPApp.swift # CLI界面与双传输
├── SwiftMCPCore/ # 核心MCP服务器实现
│ ├── MCPServer.swift # HTTP传输服务器
│ ├── StdioTransport.swift # VS Code的STDIO传输
│ ├── ServerConfiguration.swift # 企业配置
│ └── SwiftLanguageServer.swift # Swift分析引擎
└── ModernConcurrency/ # 高级并发特性
├── FCITaskManager.swift # 任务管理和协调
└── FCIModernThreadSafety.swift # 线程安全工具
# 调试构建
swift build
# 发布构建并优化
swift build --configuration release
# 运行测试
swift test
// 统一的MCP核心服务多种传输模式
SwiftMCPCore/
├── MCPServer.swift // HTTP JSON-RPC服务器
├── StdioTransport.swift // VS Code STDIO集成
├── MCPProtocolHandler.swift // 协议合规层
└── ServerConfiguration.swift // 企业配置
// 专业Swift项目分析
SwiftMCPCore/
├── SwiftLanguageServer.swift // SourceKit-LSP集成
├── SymbolSearchEngine.swift // 高级符号搜索
├── ProjectAnalyzer.swift // 架构模式检测
├── ArchitectureAnalyzer.swift // MVVM/VIPER/TCA分析
└── iOSFrameworkAnalyzer.swift // UIKit/SwiftUI分析
// 兼容Swift 6的并发模式
ModernConcurrency/
├── FCITaskManager.swift // 异步任务协调
├── FCIModernThreadSafety.swift // 基于actor的安全性
└── FCIModernContinuationManager.swift // 继续处理
{
"mcpServer": {
"transport": {
"type": "http",
"host": "0.0.0.0",
"portRange": {"min": 9000, "max": 9010}
},
"performance": {
"maxConcurrentTasks": 10,
"taskTimeoutSeconds": 30.0
},
"logging": {
"level": "info",
"format": "json",
"enableMetrics": true
}
}
}
{
"mcp.servers": {
"swift-mcp-server": {
"command": "/path/to/.build/release/swift-mcp-server",
"args": ["--transport", "stdio", "${workspaceFolder}"],
"env": {
"SWIFT_MCP_MODE": "vscode",
"LOG_LEVEL": "info"
}
}
}
}
# 克隆并设置开发环境
git clone https://github.com/your-username/swift-mcp-server.git
cd swift-mcp-server
./swift-mcp.sh # 完整开发设置
# 开发工作流
swift build # 调试构建
swift test # 运行测试套件
./swift-mcp.sh test # 测试服务器功能
swift build # 调试构建
swift test # 运行测试套件
swift build --configuration release # 生产构建
# 全面测试
./swift-mcp.sh test # 功能全面测试
swift test # 单元测试
# 手动测试
./.build/release/swift-mcp-server --help
./.build/release/swift-mcp-server --workspace . --transport http
lsof -i :8080
swift-mcp-server --port-min 8080 --port-max 8090
### 路径问题
#### 项目路径未被识别
```bash
# 验证路径存在且可访问
ls -la /path/to/your/swift/project
# 检查是否有Package.swift
find /path/to/project -name "Package.swift" -type f
# 使用绝对路径
swift-mcp-server --workspace "$(pwd)/path/to/project"
# 检查工作区权限
chmod -R 755 /path/to/your/project
# 验证SourceKit-LSP安装
which sourcekit-lsp
# 预期:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/sourcekit-lsp
# 如果未找到,请安装Xcode命令行工具
xcode-select --install
# 设置正确的Xcode路径
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
# 解决包依赖项
swift package resolve
# 更新依赖项
swift package update
# 清理并重新构建
swift package clean && swift build
# 安装VS Code MCP扩展
code --install-extension your-mcp-extension
# 检查VS Code配置
cat ~/.vscode/settings.json | grep mcp
# 配置更改后重启VS Code
# 安装UV包管理器(Serena所需)
curl -LsSf https://astral.sh/uv/install.sh | sh
# 安装Serena MCP
uvx --from git+https://github.com/oraios/serena serena start-mcp-server
# 验证Serena安装
serena --version
{
"mcp.servers": {
"swift-mcp-server": {
"command": "/absolute/path/to/sw