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.
Integrations
Adapts the MCP TypeScript SDK to work with AWS Lambda functions, supporting Server-Sent Events through Lambda response streaming and function URLs
Provides MCP server infrastructure specifically designed for Node.js runtime in AWS Lambda, with official support for response streaming
Offers full TypeScript support for implementing MCP servers with type definitions and interfaces
SAM Lambda MCP
Implementación del Protocolo de Contexto de Modelo (MCP) utilizando AWS Lambda y SAM.
Descripción general
Este proyecto proporciona una implementación sin servidor del Protocolo de Contexto de Modelo, con dos interfaces distintas:
- Configuración del sistema (administrativa):
- Registro de herramientas, recursos y avisos de MCP
- Gestión de permisos de IAM
- Configuración y configuración de la infraestructura
- Uso del sistema (cliente):
- Establecimiento de conexiones SSE
- Envío de comandos
- Recibir respuestas en streaming
Arquitectura
Diagrama de sirena
Puedes visualizar el sistema utilizando esta sintaxis de Mermaid:
- MCP Lambda lee registros de la tabla de registros durante el inicio y al manejar solicitudes.
- Utiliza la tabla de sesión para conservar el estado de la sesión.
- Invoca herramientas Lambda registradas dinámicamente utilizando los ARN almacenados en la tabla de registro.
Guía de configuración del sistema (administradores)
Esta sección es para los administradores de sistemas que necesitan configurar y administrar el servidor MCP.
Despliegue
El comando solicitará interactivamente la configuración administrativa:
- Nombre de la pila (para múltiples instancias)
- Región de AWS
- Configuración de VPC (opcional)
Descripción general de permisos
Para acceder a los puntos finales de MCP, los usuarios y clientes deben tener permiso de IAM para invocar las URL de función relevantes.
- Administradores : deben tener permiso para invocar la URL de la función
mcp-registration
- Clientes : se debe permitir invocar la URL de la función
mcp
Puede otorgar acceso mediante una política de IAM o mediante aws lambda add-permission
(ver a continuación).
Asignación de permisos a través de AWS CLI
Para conceder permiso para invocar la función de registro URL :
Para otorgar permiso para invocar la URL de la función MCP (SSE y mensaje):
Reemplace <registration-function-name>
y <mcp-function-name>
con los nombres de función Lambda reales.
API de registro
Utilice estos puntos finales para administrar herramientas, recursos y avisos de MCP:
Registrar una nueva herramienta
Actualizar registro
Eliminar registro
Lista de registros
Permisos de IAM necesarios
Para administradores
Los administradores necesitan estos permisos para gestionar los registros:
Guía de uso del sistema (clientes)
Esta sección es para los clientes que desean utilizar el servidor MCP.
Permisos de IAM necesarios
Los clientes necesitan estos permisos para utilizar el servidor MCP:
Conectarse al servidor
- Establecer conexión SSE :
Ejemplo de cURL para SSE
El primer evento incluirá un sessionId
. Úselo al enviar mensajes.
- Enviar comandos :
Manejo de errores
Errores comunes del cliente
401
: Credenciales de AWS no válidas o faltantes403
: Permisos insuficientes404
: ID de sesión no válido429
: Límite de velocidad excedido
Solución de problemas
- Problemas de conexión :
- Verificar las credenciales de AWS
- Comprobar los permisos de IAM
- Garantizar la conectividad de la red
- Errores de ejecución de comandos :
- Verificar que el ID de sesión esté activo
- Compruebe que el formato del comando coincida con el registro de la herramienta
- Asegúrese de que los parámetros coincidan con el esquema
Requisitos
- AWS CLI instalada y configurada
- AWS SAM CLI instalado
- Node.js 20.x o posterior
- Una cuenta de AWS con permisos para crear:
- Funciones lambda
- Tablas de DynamoDB
- Roles de IAM
- Colas SQS
Configuración de la CLI de AWS SAM
Para implementar esta aplicación localmente o en AWS mediante la CLI de AWS SAM:
- Instale la CLI de AWS SAM: https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html
- Asegúrese de que esté disponible en su PATH:Copy
- Construya e implemente la aplicación:Copy
- Siga las instrucciones para configurar el nombre de la pila, la región, las capacidades y las anulaciones de parámetros.
Puede volver a ejecutar sam deploy
sin --guided
para usar la configuración guardada.
Instalación
Puede instalar e implementar esta aplicación de cuatro maneras:
1. Uso del repositorio de aplicaciones sin servidor de AWS (SAR)
La forma más sencilla de implementar el servidor MCP es a través del repositorio de aplicaciones sin servidor (SAR) de AWS:
- Vaya a la consola SAR
- Búsqueda de mcp-lambda-sam por Mark Van Proctor
- Haga clic en Implementar
- Establezca sus parámetros:
StackIdentifier
: ID único para esta instancia del servidor MCPVpcEnabled
: configúrelo comotrue
si se implementa en una VPCVpcId
ySubnetIds
: Proporcione solo siVpcEnabled
estrue
- Siga las instrucciones para implementar
Alternativamente, puede implementar desde la AWS CLI:
2. Uso de npx (CLI)
El comando solicitará interactivamente la configuración administrativa:
- Nombre de la pila (para múltiples instancias)
- Región de AWS
- Configuración de VPC (opcional)
3. Uso programático con instalación
Instalar el paquete:
Después de instalar el paquete, puedes usarlo programáticamente:
4. Desarrollo local y despliegue
Instalar el paquete:
Después de realizar cambios de desarrollo, puedes implementarlo manualmente:
Desarrollo
Publicación en SAR
Si está contribuyendo a este proyecto y necesita publicar actualizaciones en SAR:
- Empaquetar la aplicación:
- Publicar en SAR:
- Hacer pública la aplicación (configuración única):
- Vaya a la consola de AWS > Repositorio de aplicaciones sin servidor
- Seleccione la aplicación
- Haga clic en "Compartir" y seleccione "Público".
- Aplicar la siguiente política de uso compartido: GXP25
Licencia
Instituto Tecnológico de Massachusetts (MIT)
Contribuyendo
- Bifurcar el repositorio
- Crea tu rama de funciones
- Confirme sus cambios
- Empujar hacia la rama
- Crear una nueva solicitud de extracción
This server cannot be installed
Un paquete Node.js que proporciona infraestructura de servidor de protocolo de contexto de modelo para funciones de AWS Lambda con soporte SSE, lo que permite a los desarrolladores implementar herramientas y avisos de MCP como funciones sin servidor.