项目简介

XC-MCP(XCode CLI Model Context Protocol)是一个智能代理服务器,旨在优化LLM(大型语言模型)与Xcode命令行工具的交互。通过将Xcode、'xcodebuild'和'simctl'的复杂输出进行摘要、缓存和结构化,XC-MCP显著减少了LLM处理上下文所需的token数量,并提供了更智能、更可靠的开发辅助功能。它作为LLM客户端和本地Xcode环境之间的桥梁,提供了一套标准化的工具和提示模板。

主要功能点

  • 智能CLI封装: 为'xcodebuild'和'simctl'提供高级封装,输出更简洁、结构化。
  • 上下文摘要: 自动将冗长输出(如构建日志、模拟器列表)提炼为LLM友好的精简摘要,减少token消耗。
  • 智能缓存: 缓存项目信息、模拟器列表和历史操作结果,加速重复查询,并学习用户偏好。
  • 性能追踪: 记录构建时间、模拟器启动时间等,提供性能洞察和优化建议。
  • 持久化状态 (可选): 支持将缓存数据持久化到文件系统,使知识在服务器重启后依然可用。
  • 标准化工具接口: 通过JSON-RPC协议提供一系列工具,允许LLM以标准化方式调用Xcode功能。
  • 预定义提示模板: 提供针对特定开发工作流(如iOS调试)的Prompt模板,指导LLM进行有效交互。

安装步骤

  1. 前提条件:
    • macOS操作系统
    • 已安装Xcode Command Line Tools(可通过运行'xcode-select --install'安装)
    • Node.js(推荐LTS版本)和npm/yarn
  2. 克隆仓库: 'git clone https://github.com/ericvoltolin/xc-mcp.git'
  3. 进入目录: 'cd xc-mcp'
  4. 安装依赖: 'npm install' 或 'yarn install'
  5. 编译项目: 'npm run build' 或 'yarn build'
  6. 启动服务器: 'npm start' 或 'node dist/index.js'
    • 服务器将在标准输入/输出(stdio)上运行,等待MCP客户端连接。

服务器配置 (MCP客户端使用)

MCP客户端需要以下JSON配置信息来连接到XC-MCP服务器。此配置通常在客户端应用程序中设置,而不是在XC-MCP服务器本身:

{
  "name": "XcodeCLI MCP Server",
  "command": "node",
  "args": ["/path/to/your/xc-mcp/dist/index.js"],
  "description": "XC-MCP是一个基于Model Context Protocol的服务器,用于智能摘要和结构化Xcode命令行工具的输出,以便LLM客户端高效理解和调用。它提供了Xcode构建、清理、版本查询、SDK列表、模拟器管理以及缓存控制等一系列工具,并支持可选的持久化状态管理。",
  "tools": [
    "xcodebuild-version",
    "xcodebuild-list",
    "xcodebuild-showsdks",
    "xcodebuild-build",
    "xcodebuild-clean",
    "xcodebuild-get-details",
    "simctl-list",
    "simctl-get-details",
    "simctl-boot",
    "simctl-shutdown",
    "list-cached-responses",
    "cache-get-stats",
    "cache-get-config",
    "cache-set-config",
    "cache-clear",
    "persistence-enable",
    "persistence-disable",
    "persistence-status"
  ],
  "prompts": [
    "debug-workflow"
  ]
}
  • 'command': 启动XC-MCP服务器的可执行文件。
  • 'args': 启动XC-MCP服务器所需的命令行参数,通常是编译后的入口文件路径。请替换'/path/to/your/xc-mcp/dist/index.js'为你的实际安装路径。

基本使用方法

一旦XC-MCP服务器启动,兼容的MCP客户端(如为LLM设计的Xcode助手)即可通过JSON-RPC协议与之通信。客户端可以通过调用服务器注册的工具和Prompt来执行Xcode相关任务。

  • 示例:获取Xcode版本信息(客户端调用) MCP客户端将发送一个JSON-RPC请求,调用'xcodebuild-version'工具:
    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "tool_code/xcodebuild-version",
      "params": {
        "sdk": "iphoneos",
        "outputFormat": "json"
      }
    }
    服务器将执行命令,返回结构化的JSON响应。
  • 示例:列出可用模拟器(客户端调用) MCP客户端调用'simctl-list'工具,默认返回简洁摘要:
    {
      "jsonrpc": "2.0",
      "id": 2,
      "method": "tool_code/simctl-list",
      "params": {
        "deviceType": "iPhone"
      }
    }
    服务器将返回过滤后的模拟器摘要及一个'cacheId',客户端可使用该'cacheId'通过'simctl-get-details'获取完整信息。

信息

分类

开发者工具