mcp-tester
mcp-tester
Servidor MCP instrumentado para probar la conformidad del cliente con las notificaciones */list_changed y otras características del protocolo.
Por qué
PR mcaps-microsoft/msx-mcp#321 propuso la aparición dinámica de herramientas mediante notifications/tools/list_changed. El PR se cerró con la afirmación de que "Copilot CLI almacena en caché tools/list al inicio de la sesión e ignora notifications/tools/list_changed", pero nunca se realizó un experimento instrumentado para probar o refutar esto.
Este repositorio proporciona el aparato para probar esa afirmación —y la conformidad de cualquier cliente MCP con list_changed— con evidencia real.
Related MCP server: MCP Test Server
Qué hace
Servidor MCP de prueba (
src/server.ts) -- Un servidor MCP auto-instrumentado que registra cada mensaje JSON-RPC en su tubería stdio. Expone herramientas, recursos y prompts en estado alfa, además de herramientas de activación que los cambian al estado beta y envían la notificación*/list_changedcorrespondiente.Controlador de cliente automatizado (
src/driver.ts) -- UnClientde MCP basado en SDK que guía al servidor a través del ciclo completo de mutación. Este es el control: demuestra que el protocolo funciona cuando ambos puntos finales cumplen con la especificación. Cualquier cliente que se desvíe de este comportamiento es demostrablemente no conforme.Analizador de registros (
src/analyze.ts) -- Lee el registro JSONL y emite una tabla de evidencia en markdown que responde a preguntas específicas: ¿Recibió el cliente la notificación? ¿Volvió a realizar la solicitud? ¿Puede llamar al nuevo elemento? ¿Todavía puede llamar al elemento eliminado?Protocolo humano (
PROTOCOL.md) -- Instrucciones paso a paso para ejecutar la misma prueba contra Copilot CLI o cualquier otro cliente MCP.
Inicio rápido
git clone https://github.com/ericchansen/mcp-tester.git
cd mcp-tester
npm install
npm run buildEjecutar el control automatizado (cliente SDK)
npm run driver -- --domain allEsto inicia el servidor de prueba, ejecuta el protocolo de mutación completo para herramientas, recursos y prompts, e informa los resultados. Debería ver que los tres dominios pasan con total conformidad.
Analizar un registro
npm run analyze -- path/to/log.jsonl --domain toolsProbando su propio cliente MCP
Consulte PROTOCOL.md para obtener instrucciones paso a paso sobre cómo probar Copilot CLI o cualquier otro cliente MCP contra esta sonda.
Diseño del repositorio
mcp-tester/
|-- README.md # This file
|-- PROTOCOL.md # Human-driven test procedure
|-- LICENSE # MIT
|-- package.json
|-- tsconfig.json
|-- src/
| |-- server.ts # Probe MCP server (stdio)
| |-- logger.ts # JSONL stdio tap + log writer
| |-- analyze.ts # CLI: parses log -> markdown evidence table
| +-- driver.ts # CLI: spawns server, drives it via SDK Client
+-- results/
+-- copilot-cli/
+-- .gitkeep # Committed experiment results go hereCómo funciona la sonda
Estado inicial (Alfa)
Dominio | Elemento Alfa |
Herramientas |
|
Recursos |
|
Prompts |
|
Además de cinco herramientas permanentes: mcptester_mutate_tools, mcptester_mutate_resources, mcptester_mutate_prompts, mcptester_status.
Después de la mutación (Beta)
Cuando se llama a una herramienta mcptester_mutate_*:
Se elimina el elemento alfa (mediante
handle.remove()del SDK)Se registra el elemento beta
El SDK envía automáticamente la notificación
notifications/*/list_changedcorrespondientedebouncedNotificationMethodscombina la eliminación + el registro en una sola notificación
Dominio | Elemento Beta |
Herramientas |
|
Recursos |
|
Prompts |
|
Registro
Cada mensaje JSON-RPC (entrante y saliente) se registra en un archivo JSONL. El registrador accede a process.stdin y process.stdout a través de flujos Transform instalados antes del transporte del SDK, por lo que ve cada byte sin interferir con el protocolo.
Limitaciones
Solo transporte stdio -- aún no hay pruebas de HTTP/SSE
Solo tres flujos de
list_changed-- futuras pruebas planificadas para muestreo, obtención, raíces, progreso, finalizacionesPruebas de servidor único -- prueba una conexión de servidor MCP a la vez
Licencia
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP compatibility and transport verification server.
MCP compatibility and transport verification server.
MCP compatibility and transport verification server.
MCP compatibility and transport verification server.
Related MCP Servers
- AlicenseBqualityDmaintenanceA mock MCP server for testing MCP client implementations and development workflows. Supports tools, prompts, and resources across multiple transport protocols (stdio, HTTP, SSE).1MIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive testing server for validating MCP scanner tools and implementations, providing diverse tools, resources, and prompts that exercise various aspects of the Model Context Protocol specification.12 npmMIT
- AlicenseNot gradedqualityDmaintenanceA test server that exercises all MCP protocol features including prompts, tools, resources, and sampling, intended for MCP client builders.417,840 npmMIT
- AlicenseNot gradedqualityDmaintenanceA test MCP server that exercises all MCP protocol features, including prompts, tools, resources, and sampling, for client builders.417,840 npmMIT