Skip to main content
Glama

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