返回市场
迅捷开发者MCP服务器

迅捷开发者MCP服务器

作者:edgeengineer4 星标更新:2025-06-04

项目介绍

Swift 开发者 MCP 服务器

一个全面的模型上下文协议(MCP)服务器,提供适用于 macOS 和 Linux 环境的 Swift 开发工具、调试功能以及项目管理特性。此服务器使AI助手能够与Swift项目、构建系统及开发工具进行交互。

功能

🔨 构建与测试工具

  • swift_build - 使用配置选项构建Swift项目(调试/发布模式、特定目标、详细输出)
  • swift_test - 运行Swift测试,支持过滤、并行执行控制及详细输出
  • run_target - 执行特定的Swift目标,并可自定义参数

🐛 调试工具

  • debug_start - 启动Swift目标的调试会话
  • debug_set_breakpoint - 设置断点,可选条件
  • debug_step - 单步执行代码(跳过、进入、跳出)
  • debug_continue - 继续执行直到下一个断点
  • debug_inspect_variable - 检查变量并评估表达式

📦 Swift 包管理

  • get_package_info - 获取完整的Swift包信息及其依赖项
  • print_dependency_public_api - 提取并显示任何依赖项的公共API

🔧 Swiftly 工具链管理

  • swiftly_install - 从不同渠道安装Swift工具链
  • swiftly_list - 列出已安装的Swift工具链
  • swiftly_list_available - 列出可安装的Swift版本
  • swiftly_use - 在全局或项目级别之间切换Swift版本
  • swiftly_run - 使用特定的Swift版本运行命令
  • swiftly_uninstall - 移除Swift工具链

📊 资源

  • swift://project/info - 当前项目的结构和信息
  • swift://build/status - 构建状态和历史记录
  • swift://debug/sessions - 活动的调试会话和断点

💡 提示

  • swift_debug_session - 带有目标特定建议的引导式调试会话设置
  • swift_build_analysis - 智能构建错误分析及解决方案建议

安装

先决条件

  1. Swift: 安装Swift 5.9+ 或使用 Swiftly 进行版本管理
  2. macOS 或 Linux: 此服务器支持macOS和Linux环境
  3. Make: 用于方便的构建目标

快速设置

  1. 克隆仓库:

    git clone https://github.com/edgeengineer/swift-developer-mcp-server.git
    cd swift-developer-mcp-server
    
  2. 构建并获取路径(自动复制到剪贴板):

    make path
    

    这将:

    • ✅ 以发布模式构建服务器
    • ✅ 显示可执行文件路径
    • ✅ 将路径复制到剪贴板
    • ✅ 显示流行AI客户端的配置示例

其他 Make 目标

make build    # 以发布模式构建服务器
make clean    # 清理构建产物
make install  # 安装到 /usr/local/bin
make help     # 显示所有可用的目标

配置AI客户端

Cursor

添加到你的Cursor设置(.cursor-settings/settings.json):

{
  "mcp": {
    "servers": {
      "swift-developer": {
        "command": "PASTE_PATH_FROM_CLIPBOARD_HERE",
        "args": [],
        "env": {}
      }
    }
  }
}

Windsurf

添加到你的Windsurf配置(.windsurf/mcp_servers.json):

{
  "servers": {
    "swift-developer": {
      "command": "PASTE_PATH_FROM_CLIPBOARD_HERE",
      "args": [],
      "env": {}
    }
  }
}

Claude Desktop

添加到你的Claude Desktop配置:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/claude/claude_desktop_config.json
{
  "mcpServers": {
    "swift-developer": {
      "command": "PASTE_PATH_FROM_CLIPBOARD_HERE",
      "args": [],
      "env": {}
    }
  }
}

Claude Code(终端应用)

添加到你的Claude Code配置(在终端应用中):

claude mcp add swift-developer PASTE_PATH_FROM_CLIPBOARD_HERE

Claude Code(VS Code扩展)

添加到你的VS Code设置(.vscode/settings.json):

{
  "claude-dev.mcpServers": {
    "swift-developer": {
      "command": "PASTE_PATH_FROM_CLIPBOARD_HERE",
      "args": [],
      "env": {}
    }
  }
}

💡 小贴士:运行 make path 可获得每个客户端的预设配置示例!

使用示例

构建一个Swift项目

使用swift_build工具以发布模式并带有详细输出构建当前项目。

运行测试

使用swift_test工具并带有详细输出并行运行所有测试。

启动调试会话

使用swift_debug_session提示为"MyApp"目标设置调试,重点关注"ViewController.swift"文件。

管理Swift版本

使用swiftly_list查看已安装的Swift版本,然后使用swiftly_use切换到Swift 5.9。

提取依赖项API

使用print_dependency_public_api并指定依赖项名称"Alamofire"来查看Alamofire依赖项的公共API。

获取项目信息

访问swift://project/info资源以查看当前项目的结构和Package.swift内容。

开发

项目结构

swift-developer-mcp-server/
├── Package.swift                 # Swift包管理器配置
├── Makefile                     # 构建自动化和便利目标
├── Sources/
│   ├── main.swift               # 服务器入口点和MCP处理器设置
│   ├── Utilities.swift          # 常用类型和辅助函数
│   ├── BuildTestTools.swift     # Swift构建和测试工具
│   ├── DebugTools.swift         # 调试会话管理和工具
│   ├── PackageInfoTools.swift   # Swift包信息工具
│   ├── SwiftlyTools.swift       # Swiftly工具链管理
│   ├── Resources.swift          # MCP资源(项目信息、构建状态等)
│   └── Prompts.swift            # MCP提示(调试会话、构建分析)
└── README.md                    # 本文件

添加新工具

  1. 在适当的模块文件中定义工具结构:
    • BuildTestTools.swift 用于构建和测试功能
    • DebugTools.swift 用于调试功能
    • PackageInfoTools.swift 用于包管理
    • SwiftlyTools.swift 用于工具链管理
    • 如需其他类别,请创建新的模块
  2. 将工具添加到 main.swift 中的 ListTools 处理程序
  3. 将工具的处理方法添加到 CallTool 的switch语句中
  4. 重新构建服务器

测试

你可以通过手动运行服务器并发送JSON-RPC消息来测试服务器:

swift run SwiftDeveloperMCPServer

然后通过标准输入发送初始化和工具调用消息。

要求

  • macOS 13.0+Linux(Ubuntu 20.04+,或其他支持Swift的发行版)
  • Swift 5.9+
  • Make(用于构建目标)
  • Xcode命令行工具(仅限macOS)

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 如适用,添加测试
  5. 提交拉取请求

许可证

该项目根据Apache 2.0许可证授权。详情见LICENSE文件。

故障排除

常见问题

  1. “命令未找到”

    • 运行 make path 以重建并获取正确的路径
    • 确保AI客户端配置中的路径与输出匹配
  2. “权限被拒绝”:确保可执行文件具有适当的权限:

    chmod +x .build/release/SwiftDeveloperMCPServer
    # 或简单地运行 'make path',这会自动处理
    
  3. Swift版本冲突:如果有多个安装,使用 swiftly 来管理Swift版本。

  4. 构建失败

    • 确保你拥有最新版本的Xcode命令行工具(macOS):
      xcode-select --install
      
    • 如果出现构建错误,make path 命令将显示详细的构建错误信息
  5. 配置问题make path 命令提供了所有支持的AI客户端的预设配置示例。

调试服务器

要调试服务器本身,可以在 main.swift 文件中添加日志,或者使用详细输出运行它:

swift run -v SwiftDeveloperMCPServer

使用ExampleLib进行测试

该仓库包括 ExampleLib/,这是一个带有异步斐波那契计算的完整Swift包,非常适合测试MCP服务器的调试能力。

构建和运行ExampleLib

导航到ExampleLib目录并使用标准Swift命令:

cd ExampleLib

# 构建库和可执行文件
swift build

# 运行演示应用程序
swift run ExampleApp

# 运行测试
swift test

使用MCP服务器调试工具测试

ExampleLib项目提供了测试MCP服务器调试功能的绝佳场所。以下是测试完整调试工作流程的方法:

1. 基础构建和测试

使用MCP服务器工具进行构建和测试:

使用swift_build工具:
- 目标: "ExampleApp" 
- 项目路径: "/path/to/swift-developer-mcp-server/ExampleLib"
- 配置: "debug"
- 详细输出: true

使用swift_test工具:
- 项目路径: "/path/to/swift-developer-mcp-server/ExampleLib"
- 详细输出: true

2. 调试会话设置

启动ExampleApp的调试会话:

使用debug_start工具:
- 目标: "ExampleApp"
- 项目路径: "/path/to/swift-developer-mcp-server/ExampleLib"
- 参数: [] (可选)

这将:

  • 构建ExampleApp目标
  • 启动LLDB会话
  • 加载可执行文件进行调试

3. 设置断点

在斐波那契计算的关键位置设置断点:

使用debug_set_breakpoint工具:
- 文件路径: "/path/to/ExampleLib/Sources/ExampleApp/main.swift"
- 行号: 89 (在performanceTest函数内)
- 会话ID: "your_session_id"

使用debug_set_breakpoint工具:
- 文件路径: "/path/to/ExampleLib/Sources/ExampleLib/FibonacciCalculator.swift" 
- 行号: 37 (在calculate方法内)
- 会话ID: "your_session_id"

4. 运行和单步执行代码

# 开始执行
使用debug_continue工具:
- 会话ID: "your_session_id"

# 当断点触发时单步执行代码
使用debug_step工具:
- 会话ID: "your_session_id"
- 单步类型: "over" (或 "into", "out")

5. 检查变量和Actor状态

FibonacciCalculator是一个actor,非常适合测试异步调试:

# 检查计算器actor
使用debug_inspect_variable工具:
- 会话ID: "your_session_id"
- 变量名: "calculator"

# 检查特定值
使用debug_inspect_variable工具:
- 会话ID: "your_session_id"
- 变量名: "result"

# 评估表达式
使用debug_inspect_variable工具:
- 会话ID: "your_session_id"
- 表达式: "await calculator.getCalculationCount()"

6. 测试并发操作

ExampleLib包含并发斐波那契计算,非常适合测试异步操作的调试:

# 在并发计算方法中设置断点
使用debug_set_breakpoint工具:
- 文件路径: "/path/to/ExampleLib/Sources/ExampleLib/FibonacciCalculator.swift"
- 行号: 57 (在calculateMultiple方法内)
- 会话ID: "your_session_id"

# 检查并发任务状态
使用debug_inspect_variable工具:
- 会话ID: "your_session_id"
- 变量名: "tasks"

7. 缓存行为分析

测试异步actor中的缓存行为:

# 为缓存命中设置条件断点
使用debug_set_breakpoint工具:
- 文件路径: "/path/to/ExampleLib/Sources/ExampleLib/FibonacciCalculator.swift"
- 行号: 19 (缓存命中检查)
- 条件: "cached != nil"
- 会话ID: "your_session_id"

# 检查缓存状态
使用debug_inspect_variable工具:
- 会话ID: "your_session_id"
- 表达式: "await calculator.getCacheState()"

8. 测试Swift测试框架

ExampleLib使用Swift测试框架。测试调试测试执行:

# 构建并运行测试,带调试
使用debug_start工具:
- 目标: "ExampleLibTests"
- 项目路径: "/path/to/ExampleLib"

# 在测试方法中设置断点
使用debug_set_breakpoint工具:
- 文件路径: "/path/to/ExampleLib/Tests/ExampleLibTests/FibonacciCalculatorTests.swift"
- 行号: 15 (在testBasicCalculations内)
- 会话ID: "your_session_id"

9. 调试性能测试

测试性能测试函数的调试:

# 在性能测试中设置断点
使用debug_set_breakpoint工具:
- 文件路径: "/path/to/ExampleLib/Sources/ExampleApp/main.swift"
- 行号: 95 (在performanceTest内)
- 会话ID: "your_session_id"

# 检查计时变量
使用debug_inspect_variable工具:
- 会话ID: "your_session_id"
- 变量名: "totalTime"

10. 会话清理

完成调试后始终清理调试会话:

使用debug_terminate工具:
- 会话ID: "your_session_id"

预期调试场景

ExampleLib提供了这些调试场景:

  1. Actor状态检查:调试异步actor状态和并发访问
  2. 缓存行为:实时观察缓存命中/未命中
  3. 递归计算:逐步执行递归斐波那契计算
  4. 并发操作:调试多个同时计算
  5. 错误处理:测试错误条件的调试
  6. 性能瓶颈:识别慢速计算路径
  7. 测试执行:调试Swift测试框架测试

调试输出示例

当调试ExampleLib时,你应该看到:

调试会话成功启动。
会话ID: debug_12345678-1234-1234-1234-123456789abc
目标: ExampleApp
可执行文件: /path/to/ExampleLib/.build/debug/ExampleApp

断点成功设置。
文件: /path/to/ExampleLib/Sources/ExampleApp/main.swift
行号: 89

调试执行继续。
会话: debug_12345678-1234-1234-1234-123456789abc
命令: process launch
正在运行: true

变量检查结果。
会话: debug_12345678-1234-1234-1234-123456789abc
目标: calculator

这种综合测试方法验证了:

  • 实际的LLDB集成
  • Swift actor调试
  • 并发代码调试
  • 断点管理
  • 变量检查
  • 会话生命周期管理

支持

对于问题和功能请求,请在GitHub仓库上打开一个issue。