Integrations
Provides integration with Express, allowing developers to easily add Model Context Protocol (MCP) capabilities to Express applications with both stateful session management and stateless request handling options.
controlador express-mcp
Una utilidad para integrar el Protocolo de Contexto de Modelo (MCP) en sus aplicaciones Express.
Características
- Manejador con estado : mantiene sesiones de larga duración con identificadores de sesión y eventos enviados por el servidor (SSE).
- Manejador sin estado : maneja cada solicitud de manera completamente aislada para interacciones simples y únicas.
- Manejador SSE : maneja el Protocolo de contexto de modelo (MCP) sobre eventos enviados por el servidor (SSE) con puntos finales GET y POST dedicados.
- API flexible y fácil de usar que se conecta directamente a las rutas Express.
Instalación
Instalar mediante npm:
O hilo:
Dependencias entre pares
express
>= 4.x@modelcontextprotocol/sdk
Uso
Importa los controladores del paquete y móntalos en tu aplicación Express:
Modo con estado
Utilice statefulHandler
para establecer sesiones reutilizables entre el cliente y el servidor.
El manejador se encargará de:
- Inicializar una nueva sesión en la primera solicitud (sin encabezado
mcp-session-id
). - Devuelve un encabezado
mcp-session-id
que los clientes deben incluir en solicitudes posteriores. - Administrar eventos enviados por el servidor (SSE) para enviar mensajes desde el servidor al cliente.
- Limpiar sesiones automáticamente al cerrarlas.
Modo sin estado
Utilice statelessHandler
para el manejo de solicitudes únicas sin administración de sesiones:
Cada solicitud:
- Crea una nueva instancia de transporte y servidor.
- Garantiza el aislamiento y la ausencia de seguimiento de sesiones.
- Adecuado para entornos simples o sin servidor.
Modo SSE
Utilice sseHandlers
para manejar el Protocolo de contexto de modelo (MCP) sobre eventos enviados por el servidor (SSE).
- GET /sse : establece la transmisión SSE y devuelve un encabezado
mcp-session-id
. - POST /messages : envía mensajes MCP a través del transporte SSE para el parámetro de consulta
mcp-session-id
indicado.
Referencia de API
manejador con estado
- servidor : instancia de
McpServer
para manejar la lógica del protocolo. - options.sessionIdGenerator : Función que devuelve un ID de sesión único.
- options.onSessionInitialized (opcional) : devolución de llamada invocada con el nuevo ID de sesión.
- options.onSessionClosed (opcional) : devolución de llamada invocada cuando se cierra una sesión.
- options.onError (opcional) : devolución de llamada invocada en caso de errores.
- options.onInvalidSession (opcional) : devolución de llamada invocada cuando se accede a una sesión no válida.
manejador sin estado
- serverFactory : Función que devuelve una nueva instancia de servidor.
- options.sessionIdGenerator (opcional) : anula la generación de ID de sesión de transporte.
- options.onClose (opcional) : Se activa una devolución de llamada cuando finaliza el ciclo de solicitud/respuesta.
- options.onError (opcional) : devolución de llamada que se activa en caso de errores durante el manejo.
Manejadores sse
- serverFactory : función de fábrica que devuelve un
McpServer
nuevo para cada conexión SSE. - options.onError (opcional) : Se invoca una devolución de llamada en caso de errores, recibe
error
ysessionId
opcional. - options.onClose (opcional) : Se invoca una devolución de llamada cuando se cierra una sesión SSE y recibe
sessionId
.
Desarrollo
Cobertura de la prueba
El proyecto ahora ha mejorado significativamente la cobertura de pruebas:
- Declaraciones: 86,06%
- Sucursales: 79,06%
- Funciones: 88,88%
- Líneas: 85,71%
Hemos agregado pruebas integrales para todos los tipos de controladores:
- Manipuladores sin estado: cobertura del 100%
- Manipuladores de SSE: cobertura del 97,29 %
- Controladores con estado: cobertura del 67,34 % (con mejoras en curso)
Todos los cambios se verifican a través de nuestro pipeline CI/CD usando Jest para pruebas y Codecov para informes de cobertura.
Integración continua
Este proyecto utiliza GitHub Actions para la integración continua. Cada envío a la rama principal y cada solicitud de extracción:
- Ejecutar la comprobación de pelusa
- Construir el proyecto
- Ejecutar pruebas con cobertura
- Subir informes de cobertura a Codecov
Puede ver el estado actual de CI en la insignia en la parte superior de este README o en la pestaña Acciones del repositorio de GitHub.
Licencia
Licencia MIT
Publicación en npm
Inicie sesión en npm si aún no lo ha hecho:
Publica el paquete en npm (ejecutará tu compilación prepublishOnly):
Para impulsar, etiquetar y enviar una nueva versión:
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Una utilidad que integra el Protocolo de Contexto de Modelo (MCP) en aplicaciones Express, ofreciendo opciones de gestión de sesiones con estado y manejo de solicitudes sin estado.
Related MCP Servers
- -securityAlicense-qualityMCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.Last updated -43TypeScriptMIT License
- -securityAlicense-qualityMCP Server provides a simpler API to interact with the Model Context Protocol by allowing users to define custom tools and services to streamline workflows and processes.Last updated -132TypeScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server that provides tools for managing todo items, including creation, updating, completion, deletion, searching, and summarizing tasks.Last updated -104TypeScriptMIT License
- AsecurityFlicenseAqualityA Model Context Protocol (MCP) server that provides a simple sleep/wait tool, useful for adding delays between operations such as waiting between API calls or testing eventually consistent systems.Last updated -167JavaScript