AWS Model Context Protocol Server

by alexei-led
Verified

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Integrates with Codecov to track code coverage metrics during CI/CD runs with target coverage thresholds and PR status checks

  • Provides containerized deployment option with multi-architecture support for AMD64/x86_64 and ARM64, with security isolation and consistent environment configuration

  • Distributes the containerized application through GitHub Packages with versioned releases and development builds tagged with Git commit SHA

Servidor de protocolo de contexto de modelo (MCP) de AWS

Un servicio liviano que permite a los asistentes de IA ejecutar comandos de AWS CLI a través del Protocolo de contexto de modelo (MCP).

Descripción general

El servidor AWS MCP proporciona un puente entre los asistentes de IA compatibles con MCP (como Claude Desktop, Cursor y Windsurf) y la CLI de AWS. Permite a estos asistentes:

  1. Recuperar documentación de AWS CLI ( aws_cli_help ): obtener ayuda detallada sobre los servicios y comandos de AWS
  2. Ejecutar comandos de AWS CLI ( aws_cli_pipeline ): ejecute comandos con tuberías Unix y reciba resultados formateados optimizados para el consumo de IA

Manifestación

Manifestación

El video demuestra el uso de Claude Desktop con AWS MCP Server para crear una nueva instancia de AWS EC2 con el agente de AWS SSM instalado.

Características

  • Documentación de comandos : información de ayuda detallada para los comandos de AWS CLI
  • Ejecución de comandos : ejecute comandos de AWS CLI y devuelva resultados legibles para humanos
  • Compatibilidad con tuberías de Unix : filtre y transforme la salida de AWS CLI mediante tuberías y utilidades estándar de Unix
  • Contexto de recursos de AWS : acceso a perfiles de AWS, regiones, información de cuentas y detalles del entorno a través de recursos de MCP
  • Plantillas de solicitud : plantillas de solicitud predefinidas para tareas comunes de AWS siguiendo las mejores prácticas
  • Integración con Docker : implementación sencilla mediante contenedorización con soporte multiarquitectura (AMD64/x86_64 y ARM64)
  • Autenticación de AWS : aprovecha las credenciales de AWS existentes en la máquina host

Requisitos

  • Docker (predeterminado) o Python 3.13+ (y AWS CLI instalado localmente)
  • Credenciales de AWS configuradas

Empezando

Nota: Por seguridad y confiabilidad, se recomienda encarecidamente ejecutar el servidor dentro de un contenedor Docker. Consulte la sección "Consideraciones de Seguridad" para obtener información importante.

Opción 1 para ejecutar el servidor: usar Docker (recomendado)

# Clone repository git clone https://github.com/alexei-led/aws-mcp-server.git cd aws-mcp-server # Build and run Docker container docker compose -f deploy/docker/docker-compose.yml up -d

La imagen de Docker admite arquitecturas AMD64/x86_64 (Intel/AMD) y ARM64 (Apple Silicon M1-M4, AWS Graviton).

Nota : La imagen oficial de GitHub Packages es multiarquitectura y utilizará automáticamente la versión adecuada para su sistema.

# Use the latest stable version docker pull ghcr.io/alexei-led/aws-mcp-server:latest # Or pin to a specific version (recommended for production) docker pull ghcr.io/alexei-led/aws-mcp-server:1.0.0

Etiquetas de imagen de Docker :

  • latest versión estable
  • xyz (p. ej., 1.0.0 ): versión específica
  • sha-<commit-sha> : compilaciones de desarrollo, etiquetadas con SHA de confirmación de Git (por ejemplo, sha-gb697684 )

Opción 2 de ejecutar el servidor: uso de Python

Usar con precaución: La ejecución nativa requiere una configuración cuidadosa del entorno y conlleva mayores riesgos de seguridad en comparación con la implementación recomendada de Docker. Asegúrese de comprender las implicaciones descritas en la sección Consideraciones de seguridad .

# Clone repository git clone https://github.com/alexei-led/aws-mcp-server.git cd aws-mcp-server # Set up virtual environment python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install in development mode pip install -e . # Run the server python -m aws_mcp_server

Configuración

El servidor AWS MCP se puede configurar mediante variables de entorno:

Variable de entornoDescripciónPor defecto
AWS_MCP_TIMEOUTTiempo de espera de ejecución del comando en segundos300
AWS_MCP_MAX_OUTPUTTamaño máximo de salida en caracteres100000
AWS_MCP_TRANSPORTProtocolo de transporte a utilizar ("stdio" o "sse")estudio
AWS_PROFILEPerfil de AWS a utilizarpor defecto
AWS_REGIONRegión de AWS a utilizarEstados Unidos-Este-1
AWS_MCP_SECURITY_MODEModo de seguridad ("estricto" o "permisivo")estricto
AWS_MCP_SECURITY_CONFIGRuta al archivo de configuración de seguridad personalizado""

Importante: Administre de forma segura las credenciales de AWS proporcionadas al servidor, ya sea mediante archivos ~/.aws montados o variables de entorno. Asegúrese de que las credenciales cumplan con el principio de mínimo privilegio, como se detalla en la sección Consideraciones de Seguridad . Al ejecutar mediante Docker, asegúrese de que estas variables se transfieran correctamente al entorno del contenedor (por ejemplo, mediante docker run -e VAR=value ... ).

Consideraciones de seguridad

La seguridad es fundamental al ejecutar comandos en su entorno de AWS. Si bien AWS MCP Server proporciona funcionalidad, usted es responsable de configurarlo y ejecutarlo de forma segura. Siga estrictamente las siguientes instrucciones:

1. Implementación recomendada: contenedor Docker

  • Aislamiento: Ejecutar el servidor dentro de un contenedor Docker es el método de implementación predeterminado y altamente recomendado . La contenedorización proporciona un aislamiento crucial del sistema de archivos y de los procesos. Los comandos Unix potencialmente destructivos (como rm y mv ) ejecutados mediante tuberías, incluso si se usan incorrectamente, se contendrán dentro del entorno efímero de Docker y no afectarán el sistema de archivos del equipo host. El contenedor se puede detener y recrear fácilmente.
  • Entorno controlado: Docker garantiza un entorno consistente con las dependencias necesarias, lo que reduce el comportamiento inesperado.

2. Credenciales de AWS y privilegios mínimos de IAM (crítico)

  • Responsabilidad del usuario: usted proporciona las credenciales de AWS al servidor (a través de ~/.aws montado o variables de entorno).
  • El privilegio mínimo es esencial: El servidor ejecuta los comandos de la CLI de AWS con las credenciales que proporcione . Es fundamental que estas credenciales pertenezcan a una entidad principal de IAM (usuario o rol) configurada con los permisos mínimos necesarios (privilegio mínimo) únicamente para las acciones de AWS que desee realizar a través de esta herramienta.
    • No utilice credenciales raíz: nunca utilice las credenciales de usuario raíz de la cuenta de AWS.
    • Revisar permisos periódicamente: audite periódicamente los permisos de IAM asociados con las credenciales.
  • Limitación de Impacto: Los permisos de IAM correctamente configurados son el mecanismo principal para limitar el impacto potencial de cualquier comando ejecutado a través del servidor, ya sea intencional o no. Incluso si un comando fuera manipulado, solo podría realizar acciones permitidas por la política de IAM específica.

3. Modelo de usuario confiable

  • El servidor asume que el usuario final que interactúa con el cliente MCP (p. ej., Claude Desktop, Cursor) es la misma persona de confianza que configuró el servidor y proporcionó las credenciales de AWS con privilegios mínimos. No exponga el servidor ni el cliente conectado a usuarios no confiables.

4. Comprensión de los riesgos de ejecución (implementación actual)

  • Ejecución de comandos: La implementación actual utiliza funciones de shell ( shell=True en llamadas de subproceso) para ejecutar comandos de AWS y gestionar tuberías Unix. Si bien es conveniente, este enfoque conlleva riesgos inherentes si se manipula la cadena de comandos de entrada (inyección de comandos).
  • Mitigación mediante controles operativos: en el contexto del modelo de usuario confiable y la implementación de Docker , estos riesgos se mitigan operativamente:
    • Se supone que el usuario confiable no proporciona comandos intencionalmente maliciosos contra su propio entorno.
    • Docker contiene efectos secundarios del sistema de archivos.
    • Fundamentalmente, los privilegios mínimos de IAM limitan el alcance de cualquier acción de AWS que pueda ejecutarse.
  • Riesgo de exfiltración de credenciales: A pesar de la contenedorización y la gestión de identidades y accesos (IAM), una inyección de comandos sofisticada podría intentar leer las credenciales montadas ( ~/.aws ) o las variables de entorno dentro del contenedor y exfiltrarlas (por ejemplo, mediante curl ). Las políticas estrictas de IAM siguen siendo la defensa más importante para limitar el valor de las credenciales potencialmente exfiltradas.

5. Exposición de la red (Transporte SSE)

  • Si se utiliza el transporte sse (que implica un receptor de red), asegúrese de vincular el servidor únicamente a interfaces de red confiables (p. ej., localhost ) o implemente controles de seguridad de red adecuados (firewalls, servidores proxy de autenticación) si se expone de forma más amplia. El transporte stdio predeterminado no abre puertos de red.

6. Resumen de responsabilidad compartida

  • AWS MCP Server proporciona la herramienta.
  • Usted, el usuario, es responsable de:
    • Ejecutarlo dentro del entorno Docker seguro recomendado.
    • Proporcionar y administrar de forma segura credenciales de AWS con el mínimo privilegio .
    • Garantizar que sólo los usuarios confiables interactúen con el servidor/cliente.
    • Asegurar el entorno de red si corresponde.

Al adherirse estrictamente a la implementación de Docker y a la configuración meticulosa de privilegios mínimos de IAM, establece los controles operativos necesarios para usar el servidor AWS MCP de forma segura con su implementación actual.

Integración con Claude Desktop

Configuración

Para integrar manualmente AWS MCP Server con Claude Desktop:

  1. Localice el archivo de configuración de Claude Desktop :
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Ventanas: %APPDATA%\Claude\claude_desktop_config.json
  2. Edite el archivo de configuración para incluir el servidor AWS MCP:
    { "mcpServers": { "aws-mcp-server": { "command": "docker", "args": [ "run", "-i", "--rm", "-v", "/Users/YOUR_USER_NAME/.aws:/home/appuser/.aws:ro", "ghcr.io/alexei-led/aws-mcp-server:latest" ] } } }
  3. Reinicie Claude Desktop para aplicar los cambios
    • Después de reiniciar, debería ver un ícono de martillo 🔨 en la esquina inferior derecha del cuadro de entrada.
    • Esto indica que el servidor AWS MCP está disponible para su uso.

Ejemplos de interacciones

Obtención de la documentación de AWS CLI :

User: What are the available options for the AWS S3 cp command? Claude: Let me get that information for you. The AWS S3 cp command has the following options: NAME cp - Copies a local file or S3 object to another location locally or in S3. SYNOPSIS cp <LocalPath> <S3Uri> or <S3Uri> <LocalPath> or <S3Uri> <S3Uri> [--acl <value>] [--cache-control <value>] ...

Ejecución de comandos de AWS CLI :

User: List my S3 buckets Claude: I'll list your S3 buckets for you. 2023-10-15 14:30:45 my-bucket-1 2023-11-20 09:15:32 my-bucket-2 2024-01-05 11:22:18 my-backup-bucket

Uso de canales de comando :

User: List my S3 buckets that have "backup" in their name and show them in alphabetical order Claude: Let me find that for you. 2024-01-05 11:22:18 my-backup-bucket 2024-03-01 09:44:12 weekly-backup-bucket 2024-03-15 13:10:57 database-backup-bucket

Acceso a recursos de AWS :

User: What AWS regions are available for me to use? Claude: Let me check what AWS regions are available for you. Available regions: - us-east-1 (US East, N. Virginia) - Currently selected - us-east-2 (US East, Ohio) - us-west-1 (US West, N. California) - us-west-2 (US West, Oregon) - eu-west-1 (EU West, Ireland) - eu-central-1 (EU Central, Frankfurt) - ap-northeast-1 (Asia Pacific, Tokyo) - ap-southeast-1 (Asia Pacific, Singapore) - ap-southeast-2 (Asia Pacific, Sydney) You're currently using the us-east-1 region.

Uso de plantillas de indicaciones :

User: I need to perform a security audit of my S3 buckets Claude: I'll help you audit the security of your S3 buckets. Here are AWS CLI commands to perform a comprehensive security audit: # List all buckets with public access settings aws s3api list-buckets --query 'Buckets[*].Name' --output text | xargs -I {} aws s3api get-public-access-block --bucket {} # Check bucket policies for public access aws s3api list-buckets --query 'Buckets[*].Name' --output text | xargs -I {} aws s3api get-bucket-policy --bucket {} 2>/dev/null # Identify buckets without encryption aws s3api list-buckets --query 'Buckets[*].Name' --output text | xargs -I {} aws s3api get-bucket-encryption --bucket {} 2>/dev/null # Check for buckets without logging enabled aws s3api list-buckets --query 'Buckets[*].Name' --output text | xargs -I {} aws s3api get-bucket-logging --bucket {} 2>/dev/null # Verify bucket versioning status aws s3api list-buckets --query 'Buckets[*].Name' --output text | xargs -I {} aws s3api get-bucket-versioning --bucket {}

Plantillas de indicaciones disponibles

El servidor AWS MCP incluye las siguientes plantillas de solicitud predefinidas:

Operaciones principales

InmediatoDescripciónParámetros
create_resourceGenere comandos para crear recursos de AWS con las mejores prácticasresource_type , resource_name
resource_inventoryCrear un inventario completo de recursosservice , region (opcional)
troubleshoot_serviceGenerar comandos para solucionar problemas de servicioservice , resource_id
resource_cleanupIdentificar y limpiar de forma segura los recursosservice , criteria (opcional)

Seguridad y cumplimiento

InmediatoDescripciónParámetros
security_auditAuditar la configuración de seguridad para un servicio específico de AWSservice
security_posture_assessmentEvaluación de seguridad integral en todo su entorno de AWSNinguno
iam_policy_generatorCrear políticas de IAM con privilegios mínimosservice , actions , resource_pattern (opcional)
compliance_checkVerificar el cumplimiento de las normascompliance_standard , service (opcional)

Costo y rendimiento

InmediatoDescripciónParámetros
cost_optimizationEncuentre oportunidades de optimización de costos para un servicioservice
performance_tuningOptimizar y ajustar el rendimiento de los recursos de AWSservice , resource_id

Infraestructura y arquitectura

InmediatoDescripciónParámetros
serverless_deploymentImplemente aplicaciones sin servidor con las mejores prácticasapplication_name , runtime (opcional)
container_orchestrationConfigurar entornos de contenedores (ECS/EKS)cluster_name , service_type (opcional)
vpc_network_designDiseñar e implementar redes VPC segurasvpc_name , cidr_block (opcional)
infrastructure_automationAutomatizar la gestión de la infraestructuraresource_type , automation_scope (opcional)
multi_account_governanceImplementar estrategias seguras de múltiples cuentasaccount_type (opcional)

Confiabilidad y Monitoreo

InmediatoDescripciónParámetros
service_monitoringEstablecer un seguimiento exhaustivoservice , metric_type (opcional)
disaster_recoveryImplementar soluciones de recuperación ante desastres de nivel empresarialservice , recovery_point_objective (opcional)

Seguridad

El servidor AWS MCP implementa un enfoque integral de múltiples capas para la validación y seguridad de comandos:

Sistema de validación de comandos

El servidor valida todos los comandos de AWS CLI a través de un sistema de tres capas:

  1. Estructura básica de mando :
    • Verifica que los comandos comiencen con el prefijo 'aws' y contengan un servicio válido
    • Garantiza la sintaxis de comando adecuada
  2. Filtrado de comandos centrado en la seguridad :
    • Comandos peligrosos : bloquea comandos que podrían comprometer la seguridad
    • Patrones seguros : permite explícitamente operaciones de solo lectura necesarias para el uso normal
    • Coincidencia de patrones de expresiones regulares : previene riesgos de seguridad complejos con la coincidencia de patrones
  3. Seguridad del comando Pipe :
    • Valida los comandos Unix utilizados en las tuberías
    • Restringe los comandos a una lista de permitidos segura
    • Evita la manipulación del sistema de archivos y la ejecución de comandos arbitrarios.

Configuración de seguridad predeterminada

La configuración de seguridad predeterminada se centra en prevenir los siguientes vectores de ataque:

1. Riesgos de la gestión de identidad y acceso (IAM)

Comando bloqueadoRiesgo de seguridad
aws iam create-userCrea posibles cuentas de puerta trasera con acceso persistente
aws iam create-access-keyCrea credenciales a largo plazo que pueden ser robadas o utilizadas indebidamente.
aws iam attach-*-policyPosible escalada de privilegios mediante adjuntos de políticas
aws iam put-user-policyLas políticas en línea pueden otorgar permisos excesivos
aws iam create-policyCreación de nuevas políticas con permisos potencialmente peligrosos
aws iam create-login-profileCrea contraseñas de consola para usuarios existentes
aws iam deactivate-mfa-deviceDesactiva la autenticación multifactor, lo que debilita la seguridad.
aws iam update-assume-role-policyModifica las relaciones de confianza, lo que permite la escalada de privilegios.

2. Auditoría y registro de manipulaciones

Comando bloqueadoRiesgo de seguridad
aws cloudtrail delete-trailElimina el registro de auditoría de la actividad de AWS
aws cloudtrail stop-loggingDeja de recopilar registros de actividad y crear puntos ciegos.
aws cloudtrail update-trailPuede redirigir o modificar la configuración de registro
aws config delete-configuration-recorderDesactiva el registro de cambios de recursos de AWS Config
aws guardduty delete-detectorDesactiva las capacidades de detección de amenazas

3. Acceso y protección de datos sensibles

Comando bloqueadoRiesgo de seguridad
aws secretsmanager put-secret-valueModifica credenciales sensibles
aws secretsmanager delete-secretElimina credenciales confidenciales
aws kms schedule-key-deletionPrograma la eliminación de claves de cifrado, con riesgo de pérdida de datos
aws kms disable-keyDesactiva las claves de cifrado, lo que podría exponer los datos.
aws s3api put-bucket-policyPuede crear depósitos S3 públicos, exponiendo datos
aws s3api delete-bucket-policyElimina las políticas de protección de los depósitos

4. Riesgos de seguridad de la red

Comando bloqueadoRiesgo de seguridad
aws ec2 authorize-security-group-ingressAbre el acceso a la red entrante, exposición potencial
aws ec2 authorize-security-group-egressAbre el acceso a la red saliente, lo que puede provocar una posible exfiltración de datos.
aws ec2 modify-instance-attributePuede alterar las propiedades de seguridad de las instancias

Muchas operaciones de solo lectura que coinciden con estos patrones están permitidas explícitamente a través de patrones seguros:

  • Todos los comandos get- , list- y describe-
  • Todos los comandos de ayuda ( --help , help )
  • Comandos de simulación y prueba (por ejemplo, aws iam simulate-custom-policy )

Opciones de configuración

  • Modos de seguridad :
    • strict (predeterminado): aplica todas las validaciones de seguridad
    • permissive : registra advertencias pero permite la ejecución (úselo con precaución)
  • Configuración personalizada :
    • Anular las reglas de seguridad predeterminadas mediante el archivo de configuración YAML
    • Configurar comandos peligrosos específicos del servicio
    • Definir patrones seguros personalizados y reglas de expresiones regulares
    • Variable de entorno: AWS_MCP_SECURITY_CONFIG
  • Controles de ejecución :
    • Los tiempos de espera evitan la ejecución prolongada de comandos (valor predeterminado: 300 segundos)
    • Los límites de tamaño de salida evitan problemas de memoria
    • Variables de entorno: AWS_MCP_TIMEOUT , AWS_MCP_MAX_OUTPUT

Ejemplo de reglas de seguridad personalizadas

Puede crear reglas de seguridad personalizadas definiendo un archivo de configuración YAML:

# Example custom security configuration # Save to a file and set AWS_MCP_SECURITY_CONFIG environment variable # Dangerous commands to block dangerous_commands: iam: # Only block specific IAM operations for your environment - "aws iam create-user" - "aws iam attach-user-policy" # Custom service restrictions for your organization lambda: - "aws lambda delete-function" - "aws lambda remove-permission" # Prevent accidental DynamoDB table deletion dynamodb: - "aws dynamodb delete-table" # Safe patterns to explicitly allow safe_patterns: # Global safe patterns general: - "--help" - "--dry-run" # Allow read operations on IAM iam: - "aws iam get-" - "aws iam list-" # Allow specific Lambda operations lambda: - "aws lambda list-functions" - "aws lambda get-function" # Complex regex rules for security validation regex_rules: general: # Prevent use of root credentials - pattern: "aws .* --profile\\s+root" description: "Prevent use of root profile" error_message: "Using the root profile is not allowed for security reasons" iam: # Block creation of admin users - pattern: "aws iam create-user.*--user-name\\s+.*admin.*" description: "Prevent creation of admin users" error_message: "Creating users with 'admin' in the name is restricted" # Prevent wildcards in IAM policies - pattern: "aws iam create-policy.*\"Effect\":\\s*\"Allow\".*\"Action\":\\s*\"\\*\".*\"Resource\":\\s*\"\\*\"" description: "Prevent wildcards in policies" error_message: "Creating policies with '*' wildcards for both Action and Resource is not allowed" s3: # Prevent public bucket policies - pattern: "aws s3api put-bucket-policy.*\"Effect\":\\s*\"Allow\".*\"Principal\":\\s*\"\\*\"" description: "Prevent public bucket policies" error_message: "Creating bucket policies with public access is restricted"

Ejemplos de seguridad

El sistema sigue las mejores prácticas de IAM, centrándose en prevenir la escalada de privilegios:

# This command would be blocked (creates user) aws iam create-user --user-name new-user > Error: This command (aws iam create-user) is restricted for security reasons. # This command would be blocked (attaches admin policy) aws iam attach-user-policy --user-name any-user --policy-arn arn:aws:iam::aws:policy/AdministratorAccess > Error: Attaching Administrator policies is restricted for security reasons. # This command would be blocked (opens SSH port globally) aws ec2 authorize-security-group-ingress --group-id sg-12345 --protocol tcp --port 22 --cidr 0.0.0.0/0 > Error: Opening non-web ports to the entire internet (0.0.0.0/0) is restricted. # These commands are allowed (read-only operations) aws iam list-users aws s3 ls aws ec2 describe-instances

Mejores prácticas de seguridad

  • Utilice siempre el modo de seguridad strict predeterminado en producción
  • Siga las recomendaciones de implementación en Consideraciones de seguridad
  • Ejecutar con credenciales de AWS con privilegios mínimos
  • Para configuraciones personalizadas, concéntrese en sus requisitos de seguridad

Desarrollo

Configuración del entorno de desarrollo

# Install only runtime dependencies using pip pip install -e . # Install all development dependencies using pip pip install -e ".[dev]" # Or use uv for faster dependency management make uv-install # Install runtime dependencies make uv-dev-install # Install development dependencies

Comandos de Makefile

El proyecto incluye un Makefile con varios objetivos para tareas comunes:

# Test commands make test # Run tests excluding integration tests make test-unit # Run unit tests only (all tests except integration tests) make test-integration # Run integration tests only (requires AWS credentials) make test-all # Run all tests including integration tests # Test coverage commands make test-coverage # Run tests with coverage report (excluding integration tests) make test-coverage-all # Run all tests with coverage report (including integration tests) # Linting and formatting make lint # Run linters (ruff check and format --check) make lint-fix # Run linters and auto-fix issues where possible make format # Format code with ruff

Para obtener una lista completa de los comandos disponibles, ejecute make help .

Cobertura del código

El proyecto incluye la configuración para que Codecov monitoree las métricas de cobertura de código. La configuración se encuentra en el archivo codecov.yml , que:

  • Establece un umbral de cobertura objetivo del 80%
  • Excluye archivos de prueba, archivos de configuración y documentación de los informes de cobertura
  • Configura comentarios de PR y comprobaciones de estado

Los informes de cobertura se generan automáticamente durante las ejecuciones de CI/CD y se cargan en Codecov.

Pruebas de integración

Las pruebas de integración verifican que el servidor de AWS MCP funcione correctamente con los recursos de AWS. Para ejecutarlas:

  1. Configurar recursos de AWS :
    • Crear un bucket S3 para realizar pruebas
    • Establezca la variable de entorno: export AWS_TEST_BUCKET=your-test-bucket-name
    • Asegúrese de que sus credenciales de AWS estén configuradas
  2. Ejecutar pruebas de integración :
    # Run all tests including integration tests make test-all # Run only integration tests make test-integration

O puedes ejecutar los comandos de pytest directamente:

# Run all tests including integration tests pytest --run-integration # Run only integration tests pytest --run-integration -m integration

Solución de problemas

  • Problemas de autenticación : asegúrese de que sus credenciales de AWS estén configuradas correctamente
  • Errores de conexión : Verifique que el servidor esté ejecutándose y que la configuración de conexión del asistente de IA sea correcta
  • Errores de permisos : Verifique que sus credenciales de AWS tengan los permisos necesarios
  • Errores de tiempo de espera : para comandos de ejecución prolongada, aumente la variable de entorno AWS_MCP_TIMEOUT

¿Por qué implementar con Docker?

Implementar AWS MCP Server a través de Docker es el enfoque recomendado, que ofrece importantes ventajas de seguridad y confiabilidad que forman el núcleo del patrón de uso seguro de la herramienta:

Beneficios de seguridad

  • Aislamiento (Mitigación primaria): El contenedor Docker proporciona un aislamiento esencial del sistema de archivos y de los procesos. Los comandos de AWS CLI y las utilidades Unix canalizadas se ejecutan en un entorno contenido. Los comandos accidentales o mal utilizados que afecten al sistema de archivos se limitan al contenedor, lo que protege el equipo host .
  • Acceso controlado a credenciales: al montar credenciales, el uso del indicador :ro (solo lectura) limita la capacidad del contenedor para modificar los archivos de configuración de AWS.
  • Sin instalación local: evita instalar la AWS CLI y sus dependencias directamente en su sistema host.
  • Entorno limpio: cada ejecución de contenedor comienza con un estado limpio conocido.

Ventajas de confiabilidad

  • Configuración consistente : todas las herramientas necesarias (AWS CLI, complemento SSM, jq) están preinstaladas y configuradas correctamente
  • Gestión de dependencias : evite conflictos de versiones entre herramientas y dependencias
  • Coherencia entre plataformas : funciona de la misma manera en diferentes sistemas operativos.
  • Entorno completo : incluye todas las herramientas necesarias para canales de comandos, filtrado y formato.

Otros beneficios

  • Compatibilidad con múltiples arquitecturas : funciona en procesadores Intel/AMD (x86_64) y ARM (Apple Silicon, AWS Graviton)
  • Actualizaciones simples : actualice a nuevas versiones con un solo comando de extracción
  • Sin conflictos con el entorno de Python : evita posibles conflictos con otras aplicaciones de Python en su sistema
  • Fijación de versiones : fije fácilmente a versiones específicas para lograr estabilidad en entornos de producción

Control de versiones

Este proyecto utiliza setuptools_scm para determinar automáticamente las versiones según las etiquetas de Git:

  • Versiones de lanzamiento : cuando existe una etiqueta Git (por ejemplo, 1.2.3 ), la versión será exactamente esa etiqueta
  • Versiones de desarrollo : Para las confirmaciones sin etiquetas, se genera una versión de desarrollo con el formato: <last-tag>.post<commits-since-tag>+g<commit-hash>.d<date> (por ejemplo, 1.2.3.post10+gb697684.d20250406 )

La versión se incluye automáticamente en:

  • Información de la versión del paquete
  • Etiquetas de imágenes de Docker
  • Construcciones de integración continua

Creación de lanzamientos

Para crear una nueva versión de lanzamiento:

# Create and push a new tag git tag -a 1.2.3 -m "Release version 1.2.3" git push origin 1.2.3

La canalización CI/CD creará y publicará automáticamente imágenes de Docker con las etiquetas de versión adecuadas.

Para obtener información más detallada sobre el sistema de gestión de versiones, consulte VERSION.md .

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

ID: v8gvv3hb66