dap-mcp
dap-mcp는 디버그 어댑터 프로토콜(DAP) 세션 관리에 특화된 모델 컨텍스트 프로토콜(MCP) 구현입니다. MCP는 대규모 언어 모델의 컨텍스트 창을 최적화하고 확장하는 표준화된 프레임워크를 제공하며, 이 프로젝트에서는 디버깅 워크플로를 개선하고 간소화하는 데 사용됩니다.
특징
디버그 어댑터 프로토콜 통합: 표준화된 프로토콜을 사용하여 디버거와 상호 작용합니다.
MCP 프레임워크: MCP를 활용하여 컨텍스트를 최적화하고 디버깅 워크플로를 개선합니다.
풍부한 디버깅 도구: 중단점을 설정, 나열 및 제거하고, 실행을 제어(계속, 단계별 실행/나머지 실행/다음 실행), 표현식을 평가하고, 스택 프레임을 변경하고, 소스 코드를 봅니다.
유연한 구성: JSON 구성 파일을 통해 디버거 설정, 소스 디렉토리 및 기타 매개변수를 사용자 정의합니다.
Related MCP server: mcp-dbs
설치
필수 조건
Python 3.10 이상
uv (선택 사항, 서버 실행용)
서버 설치 및 실행
dap-mcp 와 종속성을 설치하세요:
지엑스피1
구성
이 프로젝트는 JSON 구성 파일(예: .config.json )을 사용하여 디버거 설정과 소스 디렉터리를 지정합니다. 구성 예시는 다음과 같습니다.
이 구성은 디버거에 다음 정보를 알려줍니다.
디버거 실행 파일과 인수의 경로입니다.
중단점 작업 중 파일 경로를 확인하기 위한 소스 디렉터리입니다.
디버기를 시작하는 데 필요한 기타 설정(예: 모듈, 작업 디렉토리, 인터프리터 경로)
사용 가능한 디버거 유형
유형 | 예시 경로 | 예제 인수 |
디버그파이 |
|
|
lldb |
|
|
사용 가능한 도구
이 프로젝트는 MCP 프레임워크를 통해 호출할 수 있는 여러 도구를 제공합니다.
실행: 디버기 프로그램을 실행합니다.
set_breakpoint: 지정된 파일과 줄에 중단점을 설정합니다(선택적 조건 포함).
remove_breakpoint: 지정된 파일과 줄에서 중단점을 제거합니다.
list_all_breakpoints: 디버거에 현재 설정된 모든 중단점을 나열합니다.
continue_execution: 중단점에 도달한 후 프로그램 실행을 계속합니다.
step_in: 함수 호출에 들어갑니다.
step_out: 현재 함수에서 나갑니다.
다음: 다음 코드 줄로 넘어갑니다.
평가: 현재 디버깅 컨텍스트에서 표현식을 평가합니다.
change_frame: 다른 스택 프레임으로 전환합니다.
view_file_around_line: 지정된 줄 주변의 소스 코드를 봅니다(아무것도 지정되지 않은 경우 마지막으로 제공된 파일을 사용).
종료: 디버깅 세션을 종료합니다.
이러한 도구는 MCP 클라이언트와의 통합을 위해 XML로 렌더링된 출력을 제공합니다.
다른 DAP 서버로 확장
추가 DAP 서버를 지원하려면 dap_mcp/config.py 파일에 새로운 DAP 전용 구성 클래스를 추가하기만 하면 됩니다. 모든 DAP 구성은 기본 DAPConfig 클래스에서 확장됩니다. 각 새 하위 클래스는 다음을 수행해야 합니다.
(
Literal사용하여) 판별자 역할을 하는 고유한type값을 정의합니다.해당 디버거에 특화된 추가 필드나 설정을 포함합니다.
예를 들어, "mydap"이라는 가상 DAP 서버에 대한 지원을 추가하려면 다음을 추가할 수 있습니다.
새 구성 클래스를 만든 후, 새 클래스를 포함하여 디버거별 구성에 사용되는 공용체 유형을 업데이트합니다. 예:
이제 "type": "mydap" 과 함께 구성 JSON을 제공하면 새 MyDAP 클래스를 사용하여 구문 분석 및 검증이 수행되고 DAP 서버 확장이 완전히 통합됩니다.
기여하다
기여를 환영합니다! 기여하려면:
저장소를 포크합니다.
기능이나 버그 수정을 위해 새로운 브랜치를 만듭니다.
테스트를 작성하고 모든 검사가 통과되는지 확인하세요.
풀 리퀘스트를 제출하세요.
코딩 지침을 따르고 변경 사항에 적합한 테스트를 포함하세요.
특허
이 프로젝트는 AGPL-3.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.