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:
tail -f ~/workspace/mcp-pytest-server/output.logPara registros históricos, utilice less o cat:
less ~/workspace/mcp-pytest-server/output.log cat ~/workspace/mcp-pytest-server/output.log
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):
module.exports = { services: { memory: { command: 'node ~/.npm/_npx/15b07286cbcc3329/node_modules/.bin/mcp-server-memory', autorestart: true, log: 'memory.log', env: { NODE_ENV: 'production' } } } }Servicio de inicio:
uvx start memory
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:
npx --node-options='--inspect' @modelcontextprotocol/server-memoryAbra 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:
node --inspect ~/workspace/mcp-pytest-server/index.jsAbra 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::test_example", "resultado": "aprobado", "duración": 0.123}' use_mcp_tool pytest-mcp record_test_outcome '{"nodeid": "test_module.py::test_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
local-only server
The server can only run on the client's local machine because it depends on local resources.
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.
- Estado del paquete
- Visualización de registros
- Empezando
- Instalación solo para desarrollo de mcp-pytest-server
- Servicios de inspección
- Arquitectura e implementación
- Descripción general
- Detalles del componente
- Estado de implementación
- 1. record_session_start [IMPLEMENTADO]
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityNode.js server implementing Model Context Protocol (MCP) for filesystem operations.Last updated -14135,90769,516MIT License
- -securityAlicense-qualityNode.js server implementing Model Context Protocol (MCP) for filesystem operations, allowing AI systems to read, write, edit files and manage directories within specified allowed paths.Last updated -135,907MIT License
- -securityAlicense-qualityNode.js server implementing Model Context Protocol (MCP) for filesystem operations with regex support for allowed directories, enabling AI assistants to safely read, write, and manipulate files through natural language.
- AsecurityFlicenseAqualityA testing server that demonstrates Model Context Protocol features, providing access to user data, todos, and system information through resources, tools for user management and calculations, and prompt templates for various analyses.Last updated -4