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: MCP Xcode

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.

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enable Claude Code, Cursor, or your favorite LLM to interact with Xcode, building your projects the same way you do, and seeing the same errors. Greatly increases productivity when working on iOS, iPadOS, macOS, visionOS, tvOS projects & Swift packages - or any time you might use Xcode.
    29
    5
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to build, test, run, and manage Apple platform projects (iOS, macOS, tvOS, watchOS, visionOS) directly through Xcode. Provides comprehensive control over Xcode projects, Swift packages, simulators, and development workflows without leaving your editor.
    5
    12
    1
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    An MCP server that enables AI assistants to parse Xcode and Swift build outputs into structured, token-efficient formats like JSON or TOON. It provides tools for executing build commands and extracting detailed diagnostic information such as errors, warnings, and test failures.
    8
    MIT

View all related MCP servers

Related MCP Connectors

  • Proof and repair for Apple coding agents: validate Swift, run Xcode evidence, and repair failures.

  • Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.

  • A Model Context Protocol (MCP) application for automated GitHub PR analysis and issue management.…

View all MCP Connectors

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