cloudcostwise
Runs read-only AWS waste checks on CloudWatch logs and dashboards, including finding log groups with no retention or excessive retention that continue to incur storage costs.
Runs read-only AWS waste checks on S3, including empty buckets left behind for 30+ days and incomplete multipart uploads whose stored parts keep billing.
Runs read-only AWS waste checks on Lambda functions, including arm64 migration opportunities, idle provisioned concurrency, and excessive function timeouts.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cloudcostwisewhere am I wasting money on AWS?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
cloudcostwise
Find AWS waste from your terminal or your AI assistant. cloudcostwise runs CloudWise's free waste
checks on your own machine, with your own read-only AWS credentials.
Nothing is sent to CloudWise. The only network calls are AWS API calls in your account. No signup, no IAM role for a third party, no telemetry. Used through an AI assistant (MCP), the findings go to that assistant like any tool output.
It cannot change anything. Every AWS call goes through a guard that refuses any operation that isn't a
Describe,List,Get,SearchorLookup, whatever your credentials allow.20 of CloudWise's 46 service checks: EC2, Lambda, SageMaker, WorkSpaces, Lightsail, EBS, S3, EFS, ECR, RDS, DynamoDB, ElastiCache, Elastic IPs, NAT gateways and load balancers, VPC endpoints, dangling DNS records, CloudWatch logs and dashboards, security posture, RI/Savings Plans opportunities, and Compute Optimizer.
Install and run
pipx install cloudcostwise # or: uvx cloudcostwise scan
cloudcostwise scan # us-east-1 plus your profile's region
cloudcostwise scan --profile prod --regions all
cloudcostwise scan --format json > waste.jsonOptions:
Option | Meaning |
| AWS profile; otherwise the standard credential chain (env vars, SSO, instance role) |
| Comma-separated regions, or |
| Output format |
| Make no Cost Explorer call. AWS bills those at $0.01 per request and a scan makes about 13. Skips the RI/Savings Plans checks; extended-support surcharges fall back to estimates |
| Regions scanned at once, each in its own process (default 4; |
| Show data warnings (checks that could not read a metric report it as missing, never as zero) |
Related MCP server: AWS FinOps MCP Server
What AWS's free tools don't flag
This tool has 46 proven checks (L2 or above in VALIDATION.md: each fired on a real AWS resource built to trigger it and stayed silent on a healthy twin). 18 of them flag waste that none of AWS's own tools flag, and 9 more go further than the closest AWS check, going by AWS's lists of what its tools cover (Trusted Advisor, Cost Optimization Hub, Compute Optimizer; checked 2026-10-11).
Check | What it finds | Closest AWS check |
| EBS snapshots left behind by an AMI that was deregistered | None |
| Classic Load Balancers that would cost less as an ALB or NLB | None |
| Redis OSS or Valkey replication groups on r6g/r7g nodes that would cost less on data-tiering r6gd nodes | None |
| Redis OSS or Memcached clusters that would cost about 20% less on Valkey | None |
| ElastiCache engine versions billed the Extended Support surcharge | None |
| Stopped or idle Lightsail instances that still bill their bundle price | None |
| Lambda functions that would cost about 20% less on arm64 (Graviton) | None |
| Lambda provisioned concurrency that is paid for and barely used | None |
| Idle Lightsail load balancers | None |
| Lightsail disks attached to nothing | None |
| Lightsail static IPs attached to nothing | None |
| Application Load Balancers carrying almost no traffic | None |
| Extra Elastic IPs on one instance, each billed as a public IPv4 address | None |
| Large EFS file systems with no Infrequent Access or Archive tiering | None |
| EBS snapshots whose source volume no longer exists | None |
| SageMaker instances on a previous generation with a cheaper current one | None |
| Empty S3 buckets left behind for 30+ days | None |
| Stopped SageMaker notebook instances whose ML storage volume keeps billing | None |
| Log groups keeping a year or more of data they are billed to store | Amazon CloudWatch Log Group Retention Period: Trusted Advisor checks log group retention but flags retention shorter than a minimum (365 days by default) for compliance, so long, costly retention passes it. |
| EFS file systems with no mount targets: nothing can read them, and they still bill | Amazon EFS no mount target redundancy: Trusted Advisor checks EFS mount targets for multi-AZ redundancy, not file systems with no mount targets at all, and EFS is not among the resources Compute Optimizer or Cost Optimization Hub cover. |
| Idle Application and Network Load Balancers | Idle Load Balancers: Trusted Advisor flags idle Classic Load Balancers only (Business Support+ or higher); its documentation says Application and Network Load Balancers are not included. |
| Incomplete S3 multipart uploads whose stored parts keep billing | Amazon S3 Incomplete Multipart Upload Abort Configuration: Trusted Advisor flags buckets whose lifecycle configuration lacks a rule to abort incomplete multipart uploads after 7 days; it does not find the incomplete uploads that are already stored and billing. |
| Lambda timeouts set far above what the function needs | AWS Lambda functions with excessive timeouts: Trusted Advisor flags functions where more than 10% of invocations time out; it does not flag a configured timeout set far above the function's real duration. |
| Log groups set to never expire, so they grow every month | Amazon CloudWatch Log Group Retention Period: Trusted Advisor checks log group retention but flags retention below a minimum, so a log group set to never expire passes it. |
| Old ECR images still billed for storage | Amazon ECR Repository without lifecycle policy configured: Trusted Advisor checks that an ECR repository has a lifecycle policy; it does not flag the old images already stored. |
| SageMaker endpoints serving traffic on bigger instances than they need | Idle recommendation for SageMaker endpoints: Compute Optimizer flags SageMaker endpoints with zero invocations over 14 days but gives no rightsizing for endpoints that serve traffic on oversized instances. |
| Untagged ECR images still billed for storage | Amazon ECR Repository without lifecycle policy configured: Trusted Advisor checks that an ECR repository has a lifecycle policy; it does not flag the untagged images already stored. |
For idle EC2, RDS and NAT gateways, rightsizing and Savings Plans, AWS's tools cover the same ground: use them too. Trusted Advisor's cost checks need a Business, Enterprise or Unified Operations support plan; Cost Optimization Hub and Compute Optimizer are free.
The hosted CloudWise product adds 19 more proven checks that none of AWS's tools flag, across AWS Backup, AppSync, Elastic Beanstalk, FSx, Glue, KMS, Step Functions.
A few of them on our test account, where the resources are deliberately tiny (which is why the amounts are cents). Excerpt of a scan (0.1.3, us-east-1):
old_ecr_images x1 $0.06/mo
us-east-1 cwfx-old-ecr-images $0.06/mo
untagged_ecr_images x1 $0.02/mo
us-east-1 cwfx-untagged-ecr-images $0.02/mo
idle_efs x1 $0.01/mo
us-east-1 fs-090bfb32bd49de8b7 $0.01/mo
no_retention_log_group x1 $0.01/mo
us-east-1 /aws/lambda/cwfx-clo464-docdb-connect $0.01/moUse it from Claude Code, Codex or any MCP client
cloudcostwise mcp runs the same scan as an MCP server (stdio). Then ask your
assistant: "Where am I wasting money on AWS?"
The plugin and registry entries start the server with uvx, so install
uv first (brew install uv or pipx install uv).
Claude Code, as a plugin (asks for your AWS profile):
/plugin marketplace add cloudwise-app/cloudcostwise
/plugin install cloudcostwise@cloudcostwiseClaude Code, as a plain MCP server:
claude mcp add cloudcostwise -- uvx cloudcostwise mcp
# a specific profile:
claude mcp add cloudcostwise -e AWS_PROFILE=prod -- uvx cloudcostwise mcpCodex (~/.codex/config.toml):
[mcp_servers.cloudcostwise]
command = "uvx"
args = ["cloudcostwise", "mcp"]
env = { AWS_PROFILE = "prod" }Tools, all read-only: scan, list_findings, explain_finding,
fix_guidance. fix_guidance returns the steps and AWS CLI command as text
for you to review; nothing is ever executed. The assistant is told about the
Cost Explorer cost before it scans, and include_cost_explorer=false skips it.
Permissions
ReadOnlyAccess (AWS managed) is enough. The minimal policy the checks use is
in docs/iam-policy.json. It was derived from a scan of
an account with most supported resource types; if a check lacks a permission,
the scan says so in its data warnings instead of failing.
How the numbers are counted
Each finding shows an estimated monthly saving. Advisory waste types, ones CloudWise could not validate against a real AWS resource, are listed but never added to the total.
What the hosted product adds
The other 26 service checks (Glue, ECS, Step Functions, Backup, CloudFront, commitments and more), history and trends, alerts, and safe automated fixes: https://cloudcostwise.io/connect?utm_source=cloudcostwise&utm_medium=cli.
Tell us where it's wrong
A false positive, a miss, or a dollar figure that looks off: post it in issue #1, or email cloudwise@cloudcostwise.io if you'd rather not post in public. The waste types and counts from your scan are enough. Leave out account IDs and resource names. Every report gets a reply, and a confirmed false positive gets fixed in the next release.
License
FSL-1.1-ALv2. Each release becomes Apache-2.0 two years after it ships.
How we know it's right
See VALIDATION.md: the validation level of every waste type this tool reports, from L0 (unit-tested) to L2 (fired on a real AWS resource and stayed silent on a healthy twin) and beyond.
This server cannot be deployed
Maintenance
Related MCP Connectors
Lowers your AWS bill by helping you clean up and optimize your setup
AWS pricing and cost estimates with no signup, plus read-only idle-resource scans of your account.
AWS cloud security scanners for AI agents — S3, IAM, EC2, EKS, RDS, CloudTrail, CloudWatch Logs
AWS Cost Explorer cost, forecast, and anomaly reporting through user-connected IAM credentials.
Related MCP Servers
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to analyze AWS cloud costs, audit for waste, monitor budgets, and generate FinOps reports using natural language across multiple AWS profiles and regions, while keeping credentials on the local machine.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to analyze AWS cloud costs, audit for waste, and monitor budgets using natural language across multiple profiles and regions, while keeping credentials on the local machine.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to analyze AWS cloud costs, audit for waste, monitor budgets, and query multiple profiles and regions using natural language while keeping credentials local.-
- FlicenseNot gradedqualityAmaintenanceEnables AI assistants to analyze AWS cloud costs, audit for waste such as idle EC2 instances and unattached volumes, and check budget status through natural language. Runs locally against existing AWS CLI profiles, allowing read-only queries across multiple accounts and regions while credentials stay on the user's machine.-