local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Supports debugging pytest modules during test execution, providing breakpoint management and step-by-step debugging capabilities for Python tests.
Integrates with Python debugging through debugpy, allowing the setting/removal of breakpoints, controlling execution flow, evaluating expressions, and viewing source code.
Provides XML-rendered output for debugging information and tool responses to integrate with MCP clients.
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
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.