Skip to main content
Glama

Xcode Diagnostics MCP Plugin

by leftspin

Xcode 진단 MCP 플러그인

Xcode 빌드 로그에서 오류와 경고를 추출하고 볼 수 있는 MCP(Model Control Protocol) 플러그인입니다.

개요

이 플러그인은 모델 제어 프로토콜(MCP) 사양을 구현하여 호환되는 모든 AI 어시스턴트에 Xcode 진단 기능을 제공합니다. Xcode 빌드 시스템에 연결하여 Swift 프로젝트에서 진단(오류 및 경고)을 추출, 분석 및 표시합니다. AI 어시스턴트가 빌드 로그를 직접 검색하지 않고도 코드의 문제를 빠르게 파악할 수 있도록 도와줍니다.

이 기능은 로그 수준에서 작동하므로 이 도구를 실행하기 전에 Xcode가 이미 빌드를 시도했어야 합니다.

Related MCP server: mcpxcodebuild

필수 조건

  • macOS 운영 체제

  • Xcode가 설치됨

  • 파이썬 3.6 이상

설치

PyPI에서 설치

Xcode Diagnostics MCP 플러그인을 설치하는 가장 간단한 방법:

지엑스피1

GitHub에서 설치

GitHub에서 바로 설치할 수 있습니다.

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

소스에서 설치

소스에서 설치하려면:

  1. 이 저장소를 복제하거나 다운로드하세요

  2. pip를 사용하여 플러그인을 설치하세요:

    cd mcp-xcode-diagnostics pip install .

이 플러그인은 이제 모든 MCP 호환 클라이언트와 함께 사용할 수 있습니다.

특징

  • DerivedData에 빌드 로그가 있는 모든 Xcode 프로젝트를 나열합니다.

  • 특정 프로젝트의 최신 빌드 로그에서 오류와 경고를 추출합니다.

  • 연관된 메모와 수정 제안을 포함한 복잡한 진단을 구문 분석합니다.

  • 파일 경로, 줄 번호, 오류 메시지를 포함하여 각 문제에 대한 자세한 정보를 제공합니다.

  • Swift 동시성 관련 경고 캡처를 위해 최적화됨

지원되는 진단 유형

이 플러그인은 다음을 포함한 다양한 유형의 Xcode 진단을 감지하고 표시할 수 있습니다.

오류

  • 구문 오류(예: "예상 '{'" 또는 "예상 표현식")

  • 유형 오류(예: "X 유형 값을 예상 인수 유형 Y로 변환할 수 없습니다")

  • 해결되지 않은 식별자 및 누락된 가져오기

  • 프로토콜 적합성 오류

  • 일반 매개변수 추론 실패

  • 접근 제어 위반

경고

  • 사용되지 않는 변수, 상수 및 결과

  • 정밀도가 떨어질 수 있는 암시적 변환

  • 중복된 코드나 불필요한 표현

  • 사용 중단 경고

  • 문자열 보간 문제

  • 다음을 포함한 Swift 동시성 경고:

    • 비격리된 글로벌 공유 변경 가능 상태 경고

    • 주요 행위자 격리 경고

    • 프로토콜 준수 동시성 경고

    • 배우 격리 위반

    • Swift 6 언어 모드 호환성 경고

참고사항 및 수정 제안

  • 오류 및 경고에 대한 추가 컨텍스트를 제공하는 관련 참고 사항

  • 문제를 해결하기 위해 코드 변경을 제안하는 수정 제안

  • 문제가 있는 코드를 보여주는 코드 조각

제한 사항

  • 런타임 로그의 바이너리/직렬화된 형식은 완전히 구문 분석되지 않을 수 있습니다.

  • 일부 고도로 특수화된 진단 형식은 인식되지 않을 수 있습니다.

  • 매우 큰 빌드 로그는 잘릴 수 있습니다.

  • 프로젝트별 사용자 정의 진단이 적절하게 분류되지 않을 수 있습니다.

MCP 도구

이 플러그인은 두 가지 주요 MCP 도구를 제공합니다.

get_xcode_projects

DerivedData 디렉토리에 빌드 로그가 있는 모든 Xcode 프로젝트를 나열합니다.

매개변수 : 없음

프로젝트 진단 받기

특정 프로젝트의 최신 빌드 로그에서 진단 정보를 가져옵니다.

매개변수 :

  • project_dir_name : DerivedData의 프로젝트 디렉토리 이름(예: 'ProjectName-hash')

  • include_warnings : 오류 외에 경고를 포함할지 여부(기본값: True)

디버그 정보

디버깅 목적으로 플러그인은 원시 로그 출력을 다음 위치에 저장합니다.

  • /tmp/xcode-mcp-debug.log - 주요 애플리케이션 로그

  • /tmp/xcode-diagnostic-raw.log - Xcode 활동 로그의 원시 출력

출력 예

{ "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 }

테스트

이 플러그인에는 구문 분석 기능을 검증하기 위한 테스트 모음이 포함되어 있습니다.

# Run all tests python -m unittest test_xcode_diagnostics.py

특허

이 프로젝트는 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