Skip to main content
Glama

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 )을 사용하여 디버거 설정과 소스 디렉터리를 지정합니다. 구성 예시는 다음과 같습니다.

{ "type": "debugpy", "debuggerPath": "/path/to/python/with/debugpy", "debuggerArgs": [ "-m", "debugpy.adapter" ], // source directories for resolving file paths // if you always use absolute paths, you can omit this "sourceDirs": [ "/path/to/source/code" ], // debugger-specific settings start here // configurations for debugpy can be found at // https://github.com/microsoft/debugpy/wiki/Debug-configuration-settings // you can use "program" instead of "module" to specify the program to debug "module": "pytest", // the python executable to use to run the debuggee "python": ["/path/to/python"], "cwd": "/path/to/working/directory" }

이 구성은 디버거에 다음 정보를 알려줍니다.

  • 디버거 실행 파일과 인수의 경로입니다.

  • 중단점 작업 중 파일 경로를 확인하기 위한 소스 디렉터리입니다.

  • 디버기를 시작하는 데 필요한 기타 설정(예: 모듈, 작업 디렉토리, 인터프리터 경로)

사용 가능한 디버거 유형

유형

예시 경로

예제 인수

디버그파이

/usr/bin/python3

["-m", "debugpy.adapter"]

lldb

/usr/bin/lldb-dap

[]

사용 가능한 도구

이 프로젝트는 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 서버에 대한 지원을 추가하려면 다음을 추가할 수 있습니다.

class MyDAP(DAPConfig): type: Literal["mydap"] # Add any additional settings for MyDAP here customSetting: Optional[str] = Field( None, description="A custom setting for MyDAP." )

새 구성 클래스를 만든 후, 새 클래스를 포함하여 디버거별 구성에 사용되는 공용체 유형을 업데이트합니다. 예:

DebuggerSpecificConfig = Annotated[Union[DebugPy, MyDAP], Field(..., discriminator="type")]

이제 "type": "mydap" 과 함께 구성 JSON을 제공하면 새 MyDAP 클래스를 사용하여 구문 분석 및 검증이 수행되고 DAP 서버 확장이 완전히 통합됩니다.

기여하다

기여를 환영합니다! 기여하려면:

  1. 저장소를 포크합니다.

  2. 기능이나 버그 수정을 위해 새로운 브랜치를 만듭니다.

  3. 테스트를 작성하고 모든 검사가 통과되는지 확인하세요.

  4. 풀 리퀘스트를 제출하세요.

코딩 지침을 따르고 변경 사항에 적합한 테스트를 포함하세요.

특허

이 프로젝트는 AGPL-3.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

-
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/KashunCheng/dap_mcp'

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