dap-mcp
dap-mcp es una implementación del Protocolo de Contexto de Modelo (MCP) diseñada para gestionar sesiones del Protocolo de Adaptador de Depuración (DAP). MCP proporciona un marco estandarizado para optimizar y ampliar la ventana de contexto de grandes modelos de lenguaje y, en este proyecto, se utiliza para optimizar y agilizar los flujos de trabajo de depuración.
Características
- Integración del protocolo del adaptador de depuración: interactúe con los depuradores utilizando un protocolo estandarizado.
- Marco MCP: aproveche MCP para optimizar el contexto y mejorar los flujos de trabajo de depuración.
- Herramientas de depuración enriquecidas: establezca, enumere y elimine puntos de interrupción; controle la ejecución (continuar, entrar/salir/siguiente); evalúe expresiones; cambie marcos de pila y vea el código fuente.
- Configuración flexible: personalice la configuración del depurador, los directorios de origen y otros parámetros a través de un archivo de configuración JSON.
Instalación
Prerrequisitos
- Python 3.10 o superior
- uv (opcional, para ejecutar el servidor)
Instalación y ejecución del servidor
Instalar dap-mcp y sus dependencias:
Configuración
El proyecto utiliza un archivo de configuración JSON (p. ej., .config.json
) para especificar la configuración del depurador y los directorios de origen. Ejemplo de configuración:
Esta configuración informa al depurador sobre:
- La ruta al ejecutable del depurador y sus argumentos.
- Los directorios de origen para resolver rutas de archivos durante operaciones de punto de interrupción.
- Otras configuraciones (como módulo, directorio de trabajo y ruta del intérprete) necesarias para iniciar el depurador.
Tipos de depurador disponibles
Tipo | Ruta de ejemplo | Argumentos de ejemplo |
---|---|---|
depuración | /usr/bin/python3 | ["-m", "debugpy.adapter"] |
lldb | /usr/bin/lldb-dap | [] |
Herramientas disponibles
El proyecto expone varias herramientas que se pueden invocar a través del marco MCP:
- lanzar: Inicia el programa depurado.
- set_breakpoint: Establece un punto de interrupción en un archivo y línea específicos (con una condición opcional).
- remove_breakpoint: elimina un punto de interrupción de un archivo y una línea especificados.
- list_all_breakpoints: enumera todos los puntos de interrupción configurados actualmente en el depurador.
- continue_execution: Continuar la ejecución del programa después de alcanzar un punto de interrupción.
- step_in: Entrar en una llamada de función.
- step_out: Salir de la función actual.
- siguiente: Pasa a la siguiente línea de código.
- evaluar: evalúa una expresión en el contexto de depuración actual.
- change_frame: Cambia a un marco de pila diferente.
- view_file_around_line: Ver el código fuente alrededor de una línea especificada (usando el último archivo proporcionado si no se especifica ninguno).
- terminar: finalizar la sesión de depuración.
Estas herramientas proporcionan una salida renderizada en XML para la integración con clientes MCP.
Ampliación con otros servidores DAP
Para admitir servidores DAP adicionales, simplemente agregue una nueva clase de configuración específica de DAP en el archivo dap_mcp/config.py
. Todas las configuraciones de DAP se derivan de la clase base DAPConfig
. Cada nueva subclase debe:
- Define un valor
type
único (utilizando unLiteral
) para que actúe como discriminador. - Incluya cualquier campo o configuración adicional específica para ese depurador.
Por ejemplo, para agregar soporte para un servidor DAP hipotético llamado "mydap", podría agregar:
Después de crear la nueva clase de configuración, actualice el tipo de unión utilizado para las configuraciones específicas del depurador incluyendo la nueva clase. Por ejemplo:
Ahora, cuando usted proporciona un JSON de configuración con "type": "mydap"
, se analizará y validará utilizando su nueva clase MyDAP
, y su extensión de servidor DAP se integrará completamente.
Contribuyendo
¡Agradecemos sus contribuciones! Para contribuir:
- Bifurcar el repositorio.
- Crea una nueva rama para tu característica o corrección de error.
- Escriba pruebas y asegúrese de que pasen todas las comprobaciones.
- Enviar una solicitud de extracción.
Siga las pautas de codificación e incluya las pruebas adecuadas con sus cambios.
Licencia
Este proyecto está licenciado bajo la licencia AGPL-3.0. Consulte el archivo de LICENCIA para más detalles.
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Una implementación del Protocolo de contexto de modelo (MCP) que permite la interacción con adaptadores de depuración, permitiendo que los modelos de lenguaje controlen depuradores, establezcan puntos de interrupción, evalúen expresiones y naveguen por el código fuente durante las sesiones de depuración.
Related MCP Servers
- AsecurityAlicenseAqualityA distributable Model Context Protocol (MCP) server that exposes Dart SDK commands for AI-powered development. This server bridges the gap between AI coding assistants and Dart/Flutter development workflows by implementing the Model Context Protocol (MCP).Last updated -10112TypeScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server that provides code analysis capabilities using tree-sitter, designed to give Claude intelligent access to codebases with appropriate context management.Last updated -2633PythonMIT License
- -securityAlicense-qualityA tool that helps easily register Anthropic's Model Context Protocol (MCP) in Claude Desktop and Cursor, providing RAG functionality, Dify integration, and web search capabilities.Last updated -36PythonMIT License
- AsecurityAlicenseAqualityA specialized MCP server that helps analyze and debug Model Context Protocol logs by providing Claude with direct access to log files across multiple platforms.Last updated -19TypeScriptMIT License