AWS Infrastructure MCP Server
AWS Infrastructure MCP Server
Ein lokaler FastMCP-Server (Python 3.12+, stdio-Transport), der AWS-Diagnosetools für serverlose Anwendungen direkt für KI-Agenten in IDEs bereitstellt. Er verbindet Cursor, VS Code Copilot oder Claude Code über das Model Context Protocol mit CloudWatch, Lambda, DynamoDB, IAM und Bedrock.
Architektur & Designentscheidungen
Transport & Stack
Komponente | Wahl |
Laufzeit | Python 3.12+ |
MCP-Framework | FastMCP 3.x |
Paketmanager | uv |
AWS-SDK | boto3 |
Schema-Validierung | Pydantic 2.x |
Transport | stdio (die IDE startet den Serverprozess) |
Authentifizierung
Verwendet die Standard-Anmeldeinformationskette von boto3 ohne benutzerdefinierte Authentifizierungslogik. Die Kette prüft in dieser Reihenfolge: Umgebungsvariablen (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) → ~/.aws/credentials → ~/.aws/config → Instanzmetadaten. Setzen Sie AWS_PROFILE, um ein bestimmtes benanntes Profil zu verwenden.
Tool-Oberfläche
15 Tools in 4 Modulen:
CloudWatch & Lambda — Servicediagnose (tools/cloudwatch.py, tools/lambda_ops.py)
Tool | Beschreibung |
| Lambda-Funktionen auflisten, optional nach Namenspräfix gefiltert |
| Aktuelle CloudWatch-Logereignisse für die Log-Gruppe einer Lambda-Funktion abrufen |
| Logereignisse nur auf ERROR-/Exception-/Traceback-Zeilen filtern |
| Metriken für Aufrufe, Fehler, Dauer und Drosselung abrufen |
| Synchroner Aufruf ( |
DynamoDB — Datenzustand (tools/dynamodb.py)
Tool | Beschreibung |
| DynamoDB-Tabellen auflisten, optional nach Namenspräfix gefiltert |
| Schlüsselschema, Attribute, GSIs, Elementanzahl, Größe und Status zurückgeben |
| Abfrage nach Primärschlüsselbedingung; hart auf 25 Elemente begrenzt |
| Scan mit optionalem Filter; hart auf 25 Elemente begrenzt |
| CloudWatch nach ReadThrottleEvents, WriteThrottleEvents und UserErrors abfragen |
IAM — Sicherheits-Governance (tools/iam.py)
Tool | Beschreibung |
| IAM-Rollen auflisten, optional nach Namenspräfix gefiltert |
| Vertrauensrichtlinie und alle angehängten/Inline-Richtliniendokumente zurückgeben |
| Jede Lambda-Funktion ihrer Ausführungsrollen-ARN zuordnen |
| Drei Hochrisikomuster kennzeichnen (siehe unten) |
validate_least_privilege prüft:
Wildcard-Berechtigungen — Anweisungen mit
"Action": "*"oder"Resource": "*"Gefährliche verwaltete Richtlinien —
AdministratorAccessoderPowerUserAccessangehängtUnbegrenzter Datenzugriff — S3- oder DynamoDB-Lese-/Schreibaktionen ohne spezifische Ressourcen-ARNs
Bedrock — KI-Ursachenanalyse (tools/bedrock.py)
Tool | Beschreibung |
| Diagnosekontext an Bedrock senden; liefert eine strukturierte Analyse |
Akzeptiert Rohtext (Logs, Stack-Traces, Metrikzusammenfassungen). Gibt ein validiertes Pydantic-Objekt zurück:
class IncidentAnalysis(BaseModel):
severity: Literal["LOW", "MEDIUM", "HIGH", "CRITICAL"]
root_cause_summary: str
affected_components: list[str]
recommended_fix: strDer Parameter model_id akzeptiert jedes in Bedrock verfügbare Modell (zum Beispiel: meta.llama3-2-3b).
Sicherheitsgrenze
Alle Tools sind schreibgeschützt, außer
invoke_lambda(nur synchroner Aufruf).Kein Tool erstellt, aktualisiert oder löscht Lambda-Funktionen, DynamoDB-Elemente, IAM-Richtlinien oder andere AWS-Ressourcen.
Ein globaler Anmeldeinformations-Bereiniger (
utils/scrubber.py) schwärzt AWS-Zugriffsschlüssel-IDs, geheime Zugriffsschlüssel und Sitzungstoken aus allen Tool-Ausgaben, bevor Daten den LLM-Kontext erreichen. Angewendet auf Logmeldungen, Aufrufantworten und Fehlerausgaben.
Related MCP server: AWS MCP Server
Projektstruktur
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.lockInstallation & lokale Einrichtung
Voraussetzungen:
Python 3.12+
Paketmanager uv
AWS-CLI konfiguriert (
~/.aws/credentialsoder Umgebungsvariablen)
# Clone and install dependencies
cd mcpserver
uv sync
# Run the server locally (stdio)
uv run python server.pyIDE-Konfiguration
VS Code / Cursor
Erstellen Sie .vscode/mcp.json im Projektstammverzeichnis:
{
"servers": {
"aws-infra-mcp": {
"type": "stdio",
"command": "uv",
"args": ["--directory", "/absolute/path/to/mcpserver", "run", "server.py"]
}
}
}Ersetzen Sie /absolute/path/to/mcpserver durch den tatsächlichen Pfad zu diesem Verzeichnis. Verwenden Sie unter Windows Schrägstriche (C:/Users/.../mcpserver).
Claude Desktop
Fügen Sie zu claude_desktop_config.json hinzu:
{
"mcpServers": {
"aws-infra-mcp": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/mcpserver", "run", "server.py"]
}
}
}Teststrategie
Die Tests verwenden ein Single-Seam-Design: Jede @mcp.tool()-Funktion wird an ihrer öffentlichen Grenze getestet, wobei boto3 darunter mit unittest.mock.patch gemockt wird. Die Tests verifizieren die Transformationslogik des Tools — Logfilterung, Durchsetzung der harten Obergrenze, Bereinigung von Anmeldeinformationen, Pydantic-Validierung — ohne dass Live-AWS-Anmeldeinformationen erforderlich sind oder Netzwerkaufrufe getätigt werden.
57 Unit-Tests in 6 Testdateien:
# Run the full suite
uv run pytest
# Run a single cluster's tests
uv run pytest tests/test_iam.py -vThis server cannot be deployed
Maintenance
Related MCP Connectors
The AWS Knowledge MCP server is a fully managed remote Model Context Protocol server that provides real-time access to official AWS content in an LLM-compatible format. It offers structured access to AWS documentation, code samples, blog posts, What's New announcements, Well-Architected best practices, and regional availability information for AWS APIs and CloudFormation resources. Key capabilities include searching and reading documentation in markdown format, getting content recommendations, listing AWS regions, and checking regional availability for services and features.
AWS cloud security scanners for AI agents — S3, IAM, EC2, EKS, RDS, CloudTrail, CloudWatch Logs
Governed app access for AI agents: 1,000+ apps & 12,000+ tools via Code Mode MCP.
Outcome-based infrastructure for agents — verified AWS deployments, metered billing
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables management and provisioning of AWS resources like EC2, S3, and RDS using natural language prompts through the Model Context Protocol. It allows users to automate complex infrastructure tasks, such as setting up VPCs and security groups, via a chat interface.5411 npm27MIT
- AlicenseNot gradedqualityDmaintenanceA read-only Model Context Protocol server that exposes over 60 AWS tools across services like EC2, S3, and IAM for AI agent interaction. It features multi-region support, resource caching, and audit logging to provide secure, AI-ready access to AWS infrastructure data.100 npmISC
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to autonomously query AWS CloudWatch Logs and perform structured root-cause analysis via natural language prompts, using MCP tools for log group listing and Insights queries.MIT
- FlicenseNot gradedqualityDmaintenanceEnables interaction with AWS services (EC2, S3, Lambda, DynamoDB, etc.) through the Model Context Protocol, allowing natural language management of cloud resources.2-