Aws Safe Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Aws Safe Mcp (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
A bulleted imperative like {match} tells the agent to never reveal, disclose, or mention something to the user. Used adversarially it can instruct the agent to hide its tool calls or lie about what it did — stripping the transparency a user relies on to trust the agent.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Changelog · Quickstart · Troubleshooting
Safe, read-only AWS investigation tools for AI coding agents.
aws-safe-mcp is a local, read-only MCP server for investigating AWS resources without exposing a raw AWS SDK escape hatch. It gives AI clients structured, bounded tools for debugging serverless workloads while preserving IAM as the authorization boundary.
Status: alpha. The server is intentionally read-only in v1, and tool outputs are designed for investigation rather than complete AWS inventory export.
Use it to:
API Gateway.
network reachability.
Use the published package with any MCP client that supports stdio:
Create ~/.config/aws-safe-mcp/config.yaml first (see Quickstart) — uvx will fail without it.
uvx aws-safe-mcp \
--profile dev \
--region eu-west-2 \
--readonly \
--config ~/.config/aws-safe-mcp/config.yamlClient-specific setup:
flowchart LR
Client["AI client"] --> MCP["aws-safe-mcp"]
MCP --> Guardrails["account allowlist\nread-only tools\nredaction"]
Guardrails --> AWS["AWS metadata APIs"]
AWS --> Summary["bounded summaries\ndependency graphs\npermission checks"]
Summary --> ClientAI clients are useful for debugging AWS systems, but a raw AWS SDK or CLI passthrough gives them too much power and too little context. aws-safe-mcp keeps the useful part: curated tools that answer common investigation questions about Lambda, Step Functions, API Gateway, EventBridge, S3, DynamoDB, and CloudWatch.
Good questions for this server:
The official AWS MCP server is the right tool for broad AWS access, current AWS documentation, and general cloud operations. aws-safe-mcp is deliberately narrower: it is a read-only diagnostic layer for serverless workloads.
Use both when that helps. Let AWS MCP handle general AWS API and documentation questions, and use aws-safe-mcp when you want bounded investigation results that are already shaped for AI reasoning.
| Need | Best fit |
|---|---|
| Ask current AWS documentation questions | AWS MCP |
| Explore broad AWS APIs and services | AWS MCP |
| Trace Lambda, EventBridge, Step Functions, or API Gateway dependencies | aws-safe-mcp |
| Check IAM permission paths with concise verdicts | aws-safe-mcp |
| Diagnose recent serverless failure signals without raw payloads | aws-safe-mcp |
| Keep AI clients away from generic AWS API passthrough | aws-safe-mcp |
The goal is not to replace AWS MCP. The goal is to add a safer, opinionated diagnostic layer beside it.
aws-safe-mcp is read-only by construction: no generic SDK passthrough, no write-capable AWS verbs in v1, no S3 object body or DynamoDB item reads, and no disclosure of secrets, SSM parameter values, or Lambda environment values. Every tool call runs against an explicitly allowlisted AWS account, is audit logged as structured JSON to stderr, and has its returned strings redacted and bounded.
Full rules and the gating tests live in docs/standards.md.
See docs/limitations.md for known limitations and safety tradeoffs.
💡 Investigation Scenarios
The real power of aws-safe-mcp is in its ability to connect seemingly separate parts of an application's architecture into a single, digestible narrative for AI clients. Instead of simply listing resources, use these prompts to guide your investigation:
1. Tracing Event Flows (Lambda & EventBridge)
Trace the event flow for source aws.s3, detail type Object Created, bucket <bucket-name>, and .csv object keys. Use AWS MCP only.#### 2. Diagnosing Failure Points (Lambda & IAM)
A Lambda function <function-name> is failing intermittently. Check the associated resource policies and dependency paths for common failure reasons like missing permissions or wrong resource ARNs.iam:GetPolicy), and whether the execution environment has necessary connectivity (e.g., VPC access).#### 3. Data Access Review (S3 & DynamoDB)
Examine the expected read/write patterns for DynamoDB table <table-name> and S3 bucket <bucket-name>. Report if the required access pattern can be achieved with minimal permissions.Install from a local checkout:
uv sync
uv run aws-safe-mcp --helpCreate a local config file, for example ~/.config/aws-safe-mcp/config.yaml:
allowed_account_ids:
- "123456789012"
readonly: trueFor local AWS-compatible emulators, configure an endpoint explicitly:
allowed_account_ids:
- "000000000000"
readonly: true
endpoint_url: http://127.0.0.1:4566Use service_endpoint_urls only when a service needs a different endpoint:
service_endpoint_urls:
s3: http://127.0.0.1:4572Run the server with a non-production AWS profile:
uv run aws-safe-mcp \
--profile dev \
--region eu-west-2 \
--readonly \
--config ~/.config/aws-safe-mcp/config.yamlAfter package publication, the intended runtime shape is:
uvx aws-safe-mcp \
--profile dev \
--region eu-west-2 \
--readonly \
--config ~/.config/aws-safe-mcp/config.yamlIn an MCP client, start with:
Check my AWS auth status. Use AWS MCP only.Then try an investigation prompt:
Search AWS resources for <name-fragment>. Use AWS MCP only.Explain the dependencies for Lambda <function-name>. Use AWS MCP only.Trace network access for Lambda <function-name>. Use AWS MCP only.Trace the event-driven flow for source aws.s3, detail type Object Created, bucket <bucket-name>, and .csv object keys. Use AWS MCP only.Found a rough edge or want a new investigation tool? Start with docs/limitations.md to see whether the constraint is already known and intentional.
If it is not, file a GitHub issue at https://github.com/harryhazza77/aws-safe-mcp/issues/new using the templates in .github/ISSUE_TEMPLATE/ — feature.md for a new capability request, and limitation.md to report a behavior that surprises you so we can either fix it or document it.
The server includes identity, inventory, dependency, permission-checking, and failure-investigation tools for:
See docs/tools.md for the full tool catalog, inputs, and shared dependency graph contract.
Provider-neutral setup notes:
Claude Desktop example:
{
"mcpServers": {
"aws": {
"command": "uvx",
"args": [
"aws-safe-mcp",
"--profile",
"dev",
"--region",
"eu-west-2",
"--readonly",
"--config",
"~/.config/aws-safe-mcp/config.yaml"
]
}
}
}Use an existing AWS config profile. The MCP server can start before login, so this is fine:
uvx aws-safe-mcp --profile dev --region eu-west-2 --readonly --config ~/.config/aws-safe-mcp/config.yamlIf get_aws_auth_status reports authenticated: false, authenticate normally:
aws login --profile dev
# or:
aws sso login --profile devThe next get_aws_auth_status or AWS tool call re-checks STS. You do not need to restart the MCP server.
Grant only the read actions needed for the tools you plan to use. Common actions include:
sts:GetCallerIdentitylambda:ListFunctions, lambda:GetFunctionConfiguration,lambda:ListAliases, lambda:ListEventSourceMappings, lambda:GetPolicy
iam:GetRole, iam:ListAttachedRolePolicies,iam:ListRolePolicies, iam:SimulatePrincipalPolicy
cloudwatch:GetMetricData, logs:DescribeLogGroups,logs:FilterLogEvents
events:ListEventBuses, events:ListRules,events:DescribeRule, events:ListTargetsByRule
states:ListStateMachines, states:DescribeStateMachine,states:DescribeExecution, states:GetExecutionHistory
s3:ListAllMyBuckets, s3:ListBucket,s3:GetBucketLocation, dynamodb:ListTables, dynamodb:DescribeTable, apigateway:GET
Some dependency tools can return richer results when optional read permissions for SQS, SNS, S3 bucket settings, or IAM simulation are available. Missing optional permissions should produce warnings rather than failing the whole investigation.
Run the local verification suite:
uv run ruff format --check .
uv run ruff check .
uv run mypy
uv run bandit -q -r src
uv run pip-audit
uv run pytest --cov=aws_safe_mcp --cov-report=term-missing
uv run aws-safe-mcp --help
uv build
uvx --from . aws-safe-mcp --helpMore development and release details:
Before publishing or tagging a release:
resource names are committed.
See docs/release.md for the complete release runbook.
When publishing on GitHub, set the repository description to:
Safe, read-only MCP server for AWS investigation by AI coding agentsSuggested topics:
mcp, aws, ai-agents, model-context-protocol, lambda, serverless, cloudwatch,
eventbridge, step-functions, developer-tools, security~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.