Servidor MCP de pruebas de toxinas
Un servidor MCP que ejecuta comandos tox para ejecutar pruebas de Python en un proyecto con pytest. Este servidor proporciona una forma práctica de ejecutar y administrar pruebas de Python mediante el Protocolo de Contexto de Modelo (MCP).
Características
Herramientas
run_tox_tests- Ejecuta pruebas toxicológicas con varios modos y opcionesAdmite diferentes modos de ejecución:
all: Ejecutar todas las pruebas o pruebas de un grupo específicofile: Ejecutar pruebas desde un archivo específicocase: Ejecutar un caso de prueba específicodirectory: ejecuta todas las pruebas en un directorio específico
Grupos de prueba admitidos:
clients: Pruebas relacionadas con el clienteapi: pruebas de puntos finales de APIauth: Pruebas de autenticaciónuploads: Pruebas de funcionalidad de cargaroutes: Pruebas del controlador de rutas
Related MCP server: Lodestar MCP Server
Desarrollo
Instalar dependencias:
npm installConstruir el servidor:
npm run buildPara desarrollo con reconstrucción automática:
npm run watchInstalación
Para usar con VSCode, agregue la configuración del servidor a su archivo de configuración de MCP en: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
{
"mcpServers": {
"tox-testing": {
"command": "node",
"args": ["/path/to/tox-testing/build/index.js"],
"env": {
"TOX_APP_DIR": "/path/to/your/python/project",
"TOX_TIMEOUT": "600"
}
}
}
}Opciones de configuración
env.TOX_TIMEOUT: (Opcional) Tiempo máximo en segundos de espera para que se complete la ejecución de la prueba. Si una prueba tarda más de este tiempo límite, se finalizará. El valor predeterminado es 600 segundos (10 minutos).env.TOX_APP_DIR: (Obligatorio) Directorio que contiene el archivo tox.ini. Desde aquí se ejecutarán los comandos tox. La ruta debe apuntar a la raíz de su proyecto Python, donde se encuentra tox.ini.
El tiempo de espera es particularmente importante para:
Prevención de procesos de prueba bloqueados
Gestión de pruebas de integración de larga duración
Cómo garantizar que las canalizaciones de CI/CD no se atasquen
Uso
El servidor proporciona una única herramienta, run_tox_tests que se puede utilizar en diferentes modos:
Argumentos de herramientas
// Run all tests
{
"mode": "all"
}
// Run tests from a specific group
{
"mode": "all",
"group": "api"
}
// Run tests from a specific file
{
"mode": "file",
"testFile": "tests/test_api.py"
}
// Run a specific test case
{
"mode": "case",
"testFile": "tests/test_api.py",
"testCase": "test_endpoint_response"
}
// Run tests from a specific directory
{
"mode": "directory",
"directory": "tests/api/"
}Uso con Cline
Al usar este MCP con Cline, puede configurar las instrucciones personalizadas de Cline para gestionar la ejecución de pruebas de forma eficiente. A continuación, se recomienda un flujo de trabajo:
If asked to run tests on the project, use the tox-testing MCP. Follow these steps:
1. Run all tests across the project unless you are given instructions to run a specific test file or test case.
2. Review and rerun each failed test case individually as you troubleshoot and fix the issue from its output.
3. Repeat step 2 until the testcase passes.
4. Once all failed test cases from step 1 are passing rerun all tests again and repeat all steps until all tests pass.Este flujo de trabajo garantiza:
Cobertura de pruebas integral ejecutando todas las pruebas primero
Depuración enfocada mediante el aislamiento de casos de prueba fallidos
Verificación de correcciones mediante la repetición de pruebas en casos individuales
Validación final ejecutando nuevamente todas las pruebas
Ejemplos de interacciones con Cline:
You: Run the tests for this project
Cline: I'll use the tox-testing MCP to run all tests:
{
"mode": "all"
}
You: Fix the failing test in test_api.py
Cline: I'll first run the specific test file:
{
"mode": "file",
"testFile": "tests/test_api.py"
}
Then address each failing test case individually:
{
"mode": "case",
"testFile": "tests/test_api.py",
"testCase": "test_endpoint_response"
}Contribuyendo
Consulte CONTRIBUTING.md para obtener detalles sobre nuestro código de conducta y el proceso para enviar solicitudes de extracción.