local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Allows integration with pytest for test automation, including recording test session starts, test outcomes, and session finishes. The integration enables pytest to use the MCP service tools through a conftest.py configuration.
Servicio MCP de Pytest
Estado del paquete
Estamos ejecutando el paquete npm publicado (@modelcontextprotocol/mcp-pytest-server), no el código fuente compilado localmente. Esto se confirma mediante:
- La ruta ejecutable: ~/.npm/_npx/15b07286cbcc3329/node_modules/.bin/mcp-server-memory
- La configuración del paquete json que especifica el binario debe compilarse en dist/index.js
- La presencia en la caché global de npm
Como referencia, las versiones del SDK de Python están disponibles en: https://github.com/modelcontextprotocol/python-sdk/tags
Visualización de registros
Para ver la salida y los registros del servidor:
- Ver la salida del terminal en vivo donde se ejecuta el servidor
- Consulte el archivo de registro en ~/workspace/mcp-pytest-server/output.log
- Utilice tail para seguir el registro en tiempo real:Copy
- Para registros históricos, utilice less o cat:Copy
Empezando
Prerrequisitos
- Node.js v16 o superior
- Python 3.8 o superior
- npm instalado
- Servicio de memoria (@modelcontextprotocol/server-memory) en ejecución (se recomienda usar uvx para la ejecución en segundo plano):
- Instalar uvx:
npm install -g uvx
- Crear configuración uvx (uvx.config.js):Copy
- Servicio de inicio:
uvx start memory
- Instalar uvx:
Instalación solo para desarrollo de mcp-pytest-server
Navegar al directorio del proyecto
Instalar dependencias de JavaScript
Iniciar el servidor MCP Pytest
Ejecutar Pytest con integración MCP
Servicios de inspección
Inspeccionando el servicio de memoria
Para inspeccionar el servicio de memoria:
- Inicie el servicio en modo de depuración:Copy
- Abra Chrome DevTools en chrome://inspect
- Haga clic en "Abrir herramientas de desarrollo dedicadas para Node".
- Establecer puntos de interrupción e inspeccionar la ejecución del servicio
Alternativamente, utilice la depuración Node.js incorporada de VSCode:
- Cree una configuración launch.json:
Inspeccionando el servicio MCP-Pytest durante el desarrollo
Para inspeccionar el servicio mcp-pytest:
- Inicie el servicio en modo de depuración:Copy
- Abra Chrome DevTools en chrome://inspect
- Haga clic en "Abrir herramientas de desarrollo dedicadas para Node".
- Establecer puntos de interrupción e inspeccionar la ejecución del servicio
Alternativamente, utilice la depuración Node.js incorporada de VSCode:
- Cree una configuración launch.json:
Arquitectura e implementación
Descripción general
La integración de MCP pytest consta de varios componentes:
- mcp-pytest-server : Un servidor Node.js que implementa las herramientas de servicio MCP
- conftest.py : Configuración de prueba que integra pytest con el servicio MCP
- SDK : SDK de JavaScript y Python para la integración de MCP
Detalles del componente
servidor mcp-pytest (JavaScript)
- Ubicación: ~/workspace/mcp-pytest-server
- Implementación: Node.js (index.js)
- Estado: Ejecutando el paquete npm publicado (no compilado localmente)
- Estado del paquete: publicado como '@modelcontextprotocol/mcp-pytest-server' en npm
- Ruta ejecutable: ~/.npm/_npx/15b07286cbcc3329/node_modules/.bin/mcp-server-memory (confirma el uso del paquete publicado)
- Funcionalidad: Proporciona herramientas de servicio MCP para la integración de PyTest
conftest.py (Python)
- Ubicación: ~/workspace/textgrad/tests/conftest.py
- Propósito: Configura pytest para integrarse con los servicios MCP
- Estado actual: Uso exitoso del SDK de Python desde ~/workspace/mcp-pytest-server/python-sdk
SDK
SDK de JavaScript
- Ubicación: https://github.com/modelcontextprotocol/typescript-sdk
- Estado del paquete: publicado como '@modelcontextprotocol/sdk' en npm
- Uso: Se puede instalar mediante npm install @modelcontextprotocol/sdk
- Implementación: Proporciona un cliente TypeScript/JavaScript para la integración de MCP
SDK de Python
- Ubicación: ~/workspace/mcp-pytest-server/python-sdk
- Estado del paquete: No publicado en ningún administrador de paquetes (PyPI, Conda, etc.)
- Uso: utilizado internamente por la integración de PyTest
- Implementación: Proporciona un cliente Python para la integración de MCP
- Instalación para múltiples proyectos:
- Navegue al directorio del paquete: cd ~/workspace/mcp-pytest-server/python-sdk
- Instalar en modo de desarrollo: pip install -e .
- El paquete ahora estará disponible para todos los proyectos de Python en el sistema.
- Para actualizar, simplemente extraiga los últimos cambios del repositorio.
Estado de implementación
La funcionalidad principal de las tres herramientas (record_session_start, record_test_outcome, record_session_finish) se ha implementado en index.js. Esta implementación incluye:
Estado de implementación: La funcionalidad principal de las tres herramientas (record_session_start, record_test_outcome, record_session_finish) se ha implementado en index.js. La implementación incluye:
- Validación de entrada para todas las herramientas
- Manejo y registro de errores adecuados
- Registro de herramientas y gestión de solicitudes
- Generación de respuesta básica
1. record_session_start
[IMPLEMENTADO]
Descripción: Esta herramienta se ejecuta al inicio de una sesión de pytest. Inicializa el contexto de la ejecución de prueba actual mediante la creación o actualización de las entidades "TestRun_Latest" y "Env_Current" en el servidor MCP memory
. Es importante destacar que esta herramienta también garantiza que se borren todos los datos de ejecuciones de prueba anteriores asociados con "TestRun_Latest" para mantener una única fuente de información para la última ejecución.
Detalles de implementación:
- Validación de entrada para environment.os y environment.python_version
- Generación de respuesta básica con detalles del entorno
- Manejo de errores para parámetros no válidos
Esquema de entrada:
llamada mcp pytest-mcp record_session_start '{"entorno": {"sistema operativo": "MacOS", "versión de Python": "3.13.1"}}'
use_mcp_tool pytest-mcp record_session_start '{"entorno": {"sistema operativo": "MacOS", "versión de Python": "3.13.1"}}'
{ "nodeid": "string", "outcome": "string (aprobó|falló|omitió)", "duration": "number", "error": "string (opcional)" }
use_mcp_tool pytest-mcp record_test_outcome '{"nodeid": "test_module.py_example", "resultado": "aprobado", "duración": 0.123}' use_mcp_tool pytest-mcp record_test_outcome '{"nodeid": "test_module.py_failure", "resultado": "fallido", "duración": 0.05, "error": "Error de aserción: ... "}'
{ "resumen": { "pruebas_totales": "entero", "aprobadas": "entero", "reprobadas": "entero", "omitidas": "entero", "estado_de_salida": "entero" } }
use_mcp_tool pytest-mcp record_session_finish '{"resumen": {"pruebas_totales": 10, "aprobadas": 7, "fallidas": 2, "omitidas": 1, "estado_de_salida": 0}}'
nodo ~/espacio de trabajo/mcp-pytest-server/index.js
ps aux | grep index.js sudo tcpdump -i any -s 0 -w mcp_traffic.pcap puerto <número_de_puerto>
use_pytest-mcp
This server cannot be installed
Un servidor Node.js que se integra con pytest para facilitar las herramientas de servicio ModelContextProtocol (MCP), permitiendo el registro de la ejecución de pruebas y el seguimiento del entorno.
- Package Status
- Viewing Logs
- Getting Started
- Installation for mcp-pytest-server development only
- Inspecting Services
- Architecture and Implementation
- Overview
- Component Details
- Implementation Status
- 1. record_session_start [IMPLEMENTED]