AWS Infrastructure MCP Server
AWS Infrastructure MCP Server
Un servidor FastMCP local (Python 3.12+, transporte stdio) que expone herramientas de diagnóstico de AWS para aplicaciones serverless directamente a los agentes de IA del IDE. Conecta Cursor, VS Code Copilot o Claude Code con CloudWatch, Lambda, DynamoDB, IAM y Bedrock a través del Model Context Protocol.
Arquitectura y decisiones de diseño
Transporte y pila tecnológica
Componente | Elección |
Runtime | Python 3.12+ |
Framework MCP | FastMCP 3.x |
Gestor de paquetes | uv |
SDK de AWS | boto3 |
Validación de esquemas | Pydantic 2.x |
Transporte | stdio (el IDE inicia el proceso del servidor) |
Autenticación
Utiliza la cadena de credenciales predeterminada de boto3 sin lógica de autenticación personalizada. La cadena verifica, en orden: variables de entorno (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) → ~/.aws/credentials → ~/.aws/config → metadatos de instancia. Establezca AWS_PROFILE para apuntar a un perfil específico.
Superficie de herramientas
15 herramientas en 4 módulos:
CloudWatch y Lambda — Diagnóstico de servicios (tools/cloudwatch.py, tools/lambda_ops.py)
Herramienta | Descripción |
| Lista funciones Lambda, opcionalmente filtradas por prefijo de nombre |
| Obtiene eventos de registro recientes de CloudWatch para el grupo de registros de una Lambda |
| Filtra eventos de registro solo a líneas de ERROR/excepción/Traceback |
| Recupera métricas de invocaciones, errores, duración y limitaciones (throttle) |
| Invocación síncrona ( |
DynamoDB — Salud de los datos (tools/dynamodb.py)
Herramienta | Descripción |
| Lista tablas de DynamoDB, opcionalmente filtradas por prefijo de nombre |
| Devuelve esquema de clave, atributos, GSIs, recuento de elementos, tamaño, estado |
| Consulta por condición de clave primaria; límite máximo de 25 elementos |
| Escaneo con filtro opcional; límite máximo de 25 elementos |
| Consulta CloudWatch para ReadThrottleEvents, WriteThrottleEvents, UserErrors |
IAM — Gobernanza de seguridad (tools/iam.py)
Herramienta | Descripción |
| Lista roles de IAM, opcionalmente filtrados por prefijo de nombre |
| Devuelve la política de confianza y todos los documentos de políticas adjuntos o integrados |
| Asigna cada función Lambda a su ARN de rol de ejecución |
| Señala tres patrones de alto riesgo (ver más abajo) |
validate_least_privilege verifica:
Permisos comodín — declaraciones con
"Action": "*"o"Resource": "*"Políticas administradas peligrosas —
AdministratorAccessoPowerUserAccessadjuntasAcceso a datos sin alcance — acciones de lectura/escritura de S3 o DynamoDB sin ARNs de recursos específicos
Bedrock — Análisis de causa raíz con IA (tools/bedrock.py)
Herramienta | Descripción |
| Envía contexto de diagnóstico a Bedrock; devuelve un análisis estructurado |
Acepta texto sin procesar (registros, trazas de pila, resúmenes de métricas). Devuelve un objeto Pydantic validado:
class IncidentAnalysis(BaseModel):
severity: Literal["LOW", "MEDIUM", "HIGH", "CRITICAL"]
root_cause_summary: str
affected_components: list[str]
recommended_fix: strEl parámetro model_id acepta cualquier modelo disponible en Bedrock (por ejemplo: meta.llama3-2-3b).
Límite de seguridad
Todas las herramientas son de solo lectura excepto
invoke_lambda(solo invocación síncrona).Ninguna herramienta crea, actualiza o elimina funciones Lambda, elementos de DynamoDB, políticas de IAM ni ningún otro recurso de AWS.
Un limpiador de credenciales global (
utils/scrubber.py) redacta los ID de clave de acceso de AWS, las claves de acceso secretas y los tokens de sesión de todas las salidas de las herramientas antes de que los datos lleguen al contexto del LLM. Se aplica a mensajes de registro, respuestas de invocación y salidas de error.
Estructura del proyecto
mcpserver/
├── app.py # FastMCP instance (single shared object)
├── server.py # Entry point — imports tool modules, runs stdio
├── tools/
│ ├── __init__.py
│ ├── cloudwatch.py # get_lambda_logs, get_lambda_errors, get_lambda_metrics
│ ├── lambda_ops.py # list_lambdas, invoke_lambda
│ ├── dynamodb.py # list_tables, describe_table, query_table, scan_table, get_table_metrics
│ ├── iam.py # list_roles, get_role_policy, validate_least_privilege, list_lambda_roles
│ └── bedrock.py # analyze_incident + IncidentAnalysis schema
├── utils/
│ ├── __init__.py
│ └── scrubber.py # Credential redaction regex patterns
├── tests/
│ ├── test_scrubber.py
│ ├── test_cloudwatch.py
│ ├── test_lambda_ops.py
│ ├── test_dynamodb.py
│ ├── test_iam.py
│ └── test_bedrock.py
├── pyproject.toml
└── uv.lockInstalación y configuración local
Requisitos previos:
Python 3.12+
uv gestor de paquetes
AWS CLI configurado (
~/.aws/credentialso variables de entorno)
# Clone and install dependencies
cd mcpserver
uv sync
# Run the server locally (stdio)
uv run python server.pyConfiguración del IDE
VS Code / Cursor
Cree .vscode/mcp.json en la raíz del proyecto:
{
"servers": {
"aws-infra-mcp": {
"type": "stdio",
"command": "uv",
"args": ["--directory", "/absolute/path/to/mcpserver", "run", "server.py"]
}
}
}Reemplace /absolute/path/to/mcpserver con la ruta real a este directorio. En Windows, use barras diagonales (C:/Users/.../mcpserver).
Claude Desktop
Agregue a claude_desktop_config.json:
{
"mcpServers": {
"aws-infra-mcp": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/mcpserver", "run", "server.py"]
}
}
}Estrategia de pruebas
Las pruebas utilizan un diseño de un solo punto de integración: cada función @mcp.tool() se prueba en su límite público con boto3 simulado debajo mediante unittest.mock.patch. Las pruebas verifican la lógica de transformación de la herramienta — filtrado de registros, aplicación del límite máximo, limpieza de credenciales, validación de Pydantic — sin requerir credenciales de AWS reales ni realizar llamadas de red.
57 pruebas unitarias en 6 archivos de prueba:
# Run the full suite
uv run pytest
# Run a single cluster's tests
uv run pytest tests/test_iam.py -vThis server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI agent run monitoring with incident replay and SLA receipts.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Real-time Amazon, WIPO & PACER data for AI agents — 19 tools via the MCP protocol.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/getsuga-tenshou/mcpserver'
If you have feedback or need assistance with the MCP directory API, please join our Discord server