Skip to main content
Glama
leftspin

Xcode Diagnostics MCP Plugin

by leftspin

Complemento MCP de diagnóstico de Xcode

Un complemento MCP (Protocolo de control de modelos) para extraer y ver errores y advertencias de los registros de compilación de Xcode.

Descripción general

Este complemento implementa la especificación del Protocolo de Control de Modelos (MCP) para proporcionar funciones de diagnóstico de Xcode a cualquier asistente de IA compatible. Se conecta al sistema de compilación de Xcode para extraer, analizar y mostrar diagnósticos (errores y advertencias) de tus proyectos Swift. Ayuda a los asistentes de IA a identificar rápidamente problemas en tu código sin tener que buscar manualmente en los registros de compilación.

Tenga en cuenta que, dado que esto funciona a nivel de registro, Xcode ya debe haber intentado una compilación antes de ejecutar esta herramienta.

Related MCP server: mcpxcodebuild

Prerrequisitos

  • sistema operativo macOS

  • Xcode instalado

  • Python 3.6+

Instalación

Instalación desde PyPI

La forma más sencilla de instalar el complemento Xcode Diagnostics MCP:

pip install mcp-xcode-diagnostics

Instalación desde GitHub

Puedes instalarlo directamente desde GitHub:

pip install git+https://github.com/leftspin/mcp-xcode-diagnostics.git

Instalación desde la fuente

Para instalar desde la fuente:

  1. Clonar o descargar este repositorio

  2. Instalar el complemento usando pip:

    cd mcp-xcode-diagnostics
    pip install .

El complemento ahora se puede utilizar con cualquier cliente compatible con MCP.

Características

  • Enumera todos los proyectos de Xcode que tienen registros de compilación en DerivedData

  • Extrae errores y advertencias del último registro de compilación de un proyecto específico

  • Analiza diagnósticos complejos, incluidas notas asociadas y sugerencias de solución.

  • Proporciona información detallada sobre cada problema, incluidas rutas de archivos, números de línea y mensajes de error.

  • Optimizado para capturar advertencias relacionadas con la concurrencia de Swift

Tipos de diagnóstico admitidos

El complemento puede detectar y mostrar varios tipos de diagnósticos de Xcode, incluidos:

Errores

  • Errores de sintaxis (por ejemplo, "se esperaba '{'" o "se esperaba expresión")

  • Errores de tipo (por ejemplo, "no se puede convertir el valor del tipo X al tipo de argumento esperado Y")

  • Identificadores no resueltos e importaciones faltantes

  • Errores de conformidad del protocolo

  • Fallos en la inferencia de parámetros genéricos

  • Violaciones del control de acceso

Advertencias

  • Variables, constantes y resultados no utilizados

  • Conversiones implícitas que pueden perder precisión

  • Código redundante o expresiones innecesarias

  • Advertencias de desuso

  • Problemas de interpolación de cadenas

  • Advertencias de concurrencia de Swift, que incluyen:

    • Advertencias globales compartidas y no aisladas sobre estados mutables

    • Advertencias de aislamiento del actor principal

    • Advertencias de concurrencia de conformidad con el protocolo

    • Violaciones del aislamiento del actor

    • Advertencias de compatibilidad del modo de lenguaje Swift 6

Notas y sugerencias para solucionar problemas

  • Notas asociadas que proporcionan contexto adicional para errores y advertencias

  • Sugerencias de solución que proponen cambios de código para resolver problemas

  • Fragmentos de código que muestran el código problemático

Limitaciones

  • Es posible que los formatos binarios/serializados en los registros de tiempo de ejecución no se analicen por completo

  • Es posible que no se reconozcan algunos formatos de diagnóstico altamente especializados

  • Los registros de compilación muy grandes pueden truncarse

  • Es posible que los diagnósticos personalizados específicos del proyecto no estén categorizados correctamente

Herramientas MCP

El complemento proporciona dos herramientas MCP principales:

obtener_proyectos_xcode

Enumera todos los proyectos de Xcode con registros de compilación en el directorio DerivedData.

Parámetros : Ninguno

obtener_diagnósticos_del_proyecto

Obtiene información de diagnóstico del último registro de compilación de un proyecto específico.

Parámetros :

  • project_dir_name : Nombre del directorio del proyecto en DerivedData (por ejemplo, 'ProjectName-hash')

  • include_warnings : si se deben incluir advertencias además de errores (valor predeterminado: Verdadero)

Información de depuración

Para fines de depuración, el complemento guarda la salida del registro sin procesar en:

  • /tmp/xcode-mcp-debug.log - Registros principales de la aplicación

  • /tmp/xcode-diagnostic-raw.log : salida sin procesar de los registros de actividad de Xcode

Ejemplo de salida

{
  "success": true,
  "log_file": "/path/to/build.xcactivitylog",
  "timestamp": "2025-03-11T12:34:56.789",
  "errors": [
    {
      "type": "error",
      "message": "use of unresolved identifier 'NonExistentType'",
      "file_path": "/path/to/MyFile.swift",
      "line_number": 42,
      "column": 15,
      "code": "    let x: NonExistentType = value",
      "notes": []
    }
  ],
  "warnings": [
    {
      "type": "warning",
      "message": "static property 'sharedInstance' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode",
      "file_path": "/path/to/SharedManager.swift",
      "line_number": 10,
      "column": 16,
      "code": "    static var sharedInstance: SharedManager?",
      "notes": [
        {
          "type": "note",
          "message": "convert 'sharedInstance' to a 'let' constant to make 'Sendable' shared state immutable",
          "file_path": "/path/to/SharedManager.swift",
          "line_number": 10,
          "column": 16
        }
      ]
    }
  ],
  "error_count": 1,
  "warning_count": 1
}

Pruebas

El complemento incluye un conjunto de pruebas para verificar la funcionalidad de análisis:

# Run all tests
python -m unittest test_xcode_diagnostics.py

Licencia

Este proyecto está disponible bajo la licencia MIT.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/leftspin/mcp-xcode-diagnostics'

If you have feedback or need assistance with the MCP directory API, please join our Discord server