Back to MCP directory
publicPublicdnsLocal runtime

mcp-xcode-diagnostics

Xcode构建日志诊断MCP插件

article

README

🚀 Xcode 诊断 MCP 插件

此插件用于从 Xcode 构建日志中提取和查看错误与警告信息。它能连接到 Xcode 构建系统,提取、解析并展示 Swift 项目的诊断信息,助力 AI 助手快速识别代码问题,无需手动搜索构建日志。

🚀 快速开始

在使用此插件前,需确保满足以下先决条件:

  • macOS 操作系统
  • 安装了 Xcode
  • Python 3.6+

同时,因为插件基于日志级别工作,所以必须在运行此工具之前让 Xcode 先尝试进行一次构建。

✨ 主要特性

  • 提取诊断信息:可从 Xcode 构建日志中提取错误和警告信息。
  • 解析结构化数据:对诊断信息进行结构化解析,便于后续处理和展示。
  • 集成到 MCP 环境:支持与 MCP 框架无缝集成,提供统一接口。

📦 安装指南

从 PyPI 安装

这是安装 MCP-Xcode-Diagnostics 插件最简单的方法:

pip install mcp-xcode-diagnostics

从 GitHub 安装

从 GitHub 克隆仓库并安装:

git clone https://github.com/yourusername/mcp-xcode-diagnostics.git
cd mcp-xcode-diagnostics
pip install .

从源码安装

直接从源代码安装:

python setup.py install

💻 使用示例

基础用法

xc_diag

xc_diag 是用于诊断和分析 Xcode 构建问题的工具,使用示例如下:

xc_diag --project <项目路径> [--config <配置文件>]

参数说明:

  • --project:必选参数,指定要分析的 Xcode 项目路径。
  • --config:可选参数,指定自定义的诊断配置文件。

xc_report

xc_report 是用于生成构建报告的工具,使用示例如下:

xc_report --build-output <构建日志路径>

参数说明:

  • --build-output:必选参数,指定包含构建结果的日志路径。

高级用法

以下是使用 xc_diag 工具并指定配置文件的示例:

xc_diag --project /path/to/your/project --config /path/to/your/config.json

📚 详细文档

支持的诊断类型

插件支持以下类型的错误和警告:

  • 构建错误:语法错误、编译器报错等。
  • 警告信息:编译器警告、潜在问题提示等。
  • 并发警告:与 Swift 并发编程相关的警告,例如竞态条件检测。

局限性

尽管插件功能强大,但仍有一些限制:

  • 日志依赖:完全依赖于 Xcode 的构建日志输出格式,若日志格式发生变化可能导致解析失败。
  • 资源消耗:处理大量构建日志时可能会占用较多内存和 CPU 资源。

调试信息

插件在以下位置记录调试信息:

  • 日志文件/var/log/mcp-xcode-diagnostics.log
  • 错误报告/tmp/mcp-xcode-diagnostics-error-<timestamp>.log

示例输出

以下是 JSON 格式的示例输出:

{
  "errors": [
    {
      "message": "Use of undeclared identifier 'tableViewCell'",
      "file": "MainViewController.swift",
      "line": 23,
      "column": 15
    }
  ],
  "warnings": [
    {
      "message": "Missing Swift header for public class PodsDummy_Pods_Pods_Swift",
      "file": "_Pods-Swift.h",
      "line": 5
    }
  ],
  "error_count": 1,
  "warning_count": 1
}

测试

插件附带测试套件来验证解析功能,运行所有测试的命令如下:

python -m unittest test_xcode_diagnostics.py

📄 许可证

该开源项目采用 MIT 协议进行开源。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client