返回市场
MCP代码服务器

MCP代码服务器

作者:everettjf8 星标更新:2025-03-22

项目介绍

MCPXcode

!!! 此项目正在积极开发中,可能会出现意外问题

简介

MCPXcode 是一个开源实现,用于在 Xcode 中集成 模型上下文协议 (MCP)。它通过提供一种结构化的协议来实现在 Xcode 环境中的上下文交换和工具执行,从而实现 Xcode 和 AI 助手之间的无缝集成。

根据 MCP 规范,该项目创建了一个桥梁,连接 Xcode 的开发环境与 AI 工具,通过上下文理解和可编程交互增强开发者的工作流程。它封装了常见的命令行工具(如 xcrunxctrace),并利用 macOS 辅助功能来实现 Xcode 操作的 AI 辅助自动化。

屏幕截图

<p align="center"> <img src="assets/screenshot01.png" width="49%" /> <img src="assets/screenshot02.png" width="49%" /> </p>

安装


# 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# 克隆仓库
git clone https://github.com/everettjf/MCPXcode.git
cd MCPXcode
source .venv/bin/activate
uv add "mcp[cli]"

配置

{
  "mcpServers": {
    "MCPXcode": {
      "command": "uv", # 可以使用完整路径
      "args": [
        "--directory",
        "<Path>/MCPXcode", # 更改为您的完整路径
        "run",
        "main.py"
      ]
    }
  }
}

特性

当前 MCP 工具集成

  • xcrun 工具扩展

    • 常见 xcrun 命令的上下文感知接口
    • 结构化输出格式,便于 AI 消费
    • 语义错误处理和诊断报告
  • xctrace 工具扩展

    • 对 iOS/macOS 应用程序进行上下文增强的性能分析和跟踪
    • 结构化性能指标收集,供 AI 分析
    • 带有语义上下文的跟踪数据处理

计划扩展

  • 辅助功能工具扩展

    • 在 Xcode 内部的上下文感知 UI 交互
    • 构建、运行和测试操作的语义触发器
    • 结构化的项目导航能力
    • 从 Xcode UI 提取增强的上下文
  • MCP HTTP 服务器

    • 通过 HTTP 实现完整的 MCP 规范兼容性
    • 标准化的工具执行协议
    • 保存上下文的构建事件 webhook
    • 与 AI 驱动的 CI/CD 管道无缝集成
  • MCP 客户端库

    • 实现 MCP 规范的语言特定 SDK
    • 简化 AI 助手与 Xcode 之间的上下文交换

工具文档

模拟器控制工具

工具描述示例提示
list_devices列出所有可用的模拟器设备及其详细信息"显示所有可用的 iOS 模拟器设备及其状态。"
boot_device启动由其 UDID 标识的特定模拟器设备"启动具有 UDID A1B2C3D4-E5F6-7890-1234-567890ABCDEF 的 iPhone 14 Pro 模拟器。"
shutdown_device关闭正在运行的模拟器设备"关闭具有 UDID A1B2C3D4-E5F6-7890-1234-567890ABCDEF 的当前运行的 iPhone 模拟器。"
install_app在模拟器设备上安装应用程序"在 iPhone 14 模拟器上安装位于路径 /Users/username/MyApp.app 的应用。"
launch_app在模拟器设备上启动已安装的应用程序"在 iPhone 14 模拟器上启动具有捆绑 ID com.example.myapp 的应用。"

SDK 工具

工具描述示例提示
get_sdk_path获取当前 SDK 的路径"当前 iOS SDK 的路径是什么?"
get_sdk_version获取当前 SDK 的版本"我正在使用的 iOS SDK 版本是多少?"
get_sdk_platform_path获取当前 SDK 的平台路径"iOS 平台文件位于何处?"
find_developer_tool查找特定开发工具的路径"Xcode 工具链中的 'lldb' 二进制文件位于何处?"
run_tool_with_sdk使用特定 SDK 运行开发工具"使用 iOS SDK 运行 'clang' 工具编译我的源文件。"

xcrun 工具

工具描述示例提示
xcrun_list_sdks列出所有可用的 SDK 及其详细信息"展示我可以构建的所有可用 SDK。"
xcrun_list_schemes列出指定 Xcode 项目的所有方案"我的 MyApp.xcodeproj 项目中有哪些构建方案?"
xcrun_build使用指定方案和配置构建 Xcode 项目"使用 Debug 配置为 iPhone 模拟器构建我的 MyApp.xcodeproj 项目。"
xcrun_validate_app在提交到 App Store 之前验证应用"在我将 MyApp.ipa 文件提交到 App Store 之前验证它。"
xcrun_upload_app将应用上传到 App Store Connect"将我已验证的 MyApp.ipa 文件上传到 App Store Connect 进行审核。"
xcrun_swift_symbols从二进制文件中提取 Swift 符号"从我的应用的二进制文件中提取并显示所有 Swift 符号。"
xcrun_otool_headers显示二进制文件的 Mach-O 头"显示我应用的二进制文件的 Mach-O 头。"
xcrun_otool_libraries显示二进制文件链接的库"我的应用的二进制文件链接了哪些库?"
xcrun_nm_symbols显示二进制文件中的符号"显示我应用的二进制文件中的所有符号。"

xctrace 工具

工具描述示例提示
xctrace_devices列出可用于跟踪的设备"显示我可以运行性能跟踪的所有设备。"
xctrace_templates列出可用于跟踪的模板"有哪些性能剖析模板可用?"
xctrace_record使用指定模板记录应用性能"使用 Time Profiler 模板记录我应用的性能跟踪。"
xctrace_record_advanced使用高级选项记录应用性能"使用自定义模板选项记录性能跟踪,并设置环境变量 DEBUG=1。"
xctrace_attach_process附加到正在运行的过程进行跟踪"将性能追踪器附加到具有进程 ID 12345 的正在运行的应用。"
xctrace_export将跟踪数据导出为指定格式"将我的 trace.trace 文件导出为 JSON 格式进行分析。"
xctrace_diagnose诊断跟踪存档的问题"分析我的跟踪文件是否存在任何性能问题或问题。"
xctrace_document为模板生成文档"为 Allocations 模板生成文档,以便我能理解其指标。"
xctrace_analyze分析跟踪文件并生成性能报告"从我的时间剖析器跟踪文件生成性能报告。"
xctrace_compare比较两个跟踪文件并生成比较报告"比较来自我应用 1.0 版和 2.0 版的跟踪文件之间的性能。"

项目路线图

第一阶段:MCP 核心实现 (2025年第二季度)

  • ✅ 基本项目结构
  • ⬜ 具备上下文处理的必要 xcrun 命令工具扩展
  • ⬜ 具备上下文处理的基本 xctrace 功能工具扩展
  • ⬜ 符合 MCP 规范的 CLI 接口

第二阶段:MCP 服务器实现 (2025年第三季度)

  • ⬜ 符合 MCP 规范的 HTTP 服务器
  • ⬜ 上下文感知的身份验证和安全性
  • ⬜ 结构化的上下文交换协议
  • ⬜ 可扩展的工具注册架构

第三阶段:MCP 辅助功能扩展 (2025年第四季度)

  • ⬜ macOS 辅助功能集成,带有语义上下文
  • ⬜ 上下文感知的 Xcode UI 自动化
  • ⬜ 语义事件监控和上下文反应

第四阶段:高级 MCP 功能 (2026年第一季度)

  • ⬜ 符合 MCP 规范的 Python 客户端库
  • ⬜ 上下文感知的 AI 驱动 CI/CD 工具集成
  • ⬜ 语义上下文监控仪表盘

许可证

此项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。

贡献

欢迎贡献!请随时提交 Pull Request。