Skip to main content
Glama
vivek-daml

AWS Cost Estimator MCP

by vivek-daml
README.md
# AWS Cost Estimator MCP

An end-to-end AWS cost estimation solution for teams. Ask your AI IDE to build an estimate — get a formatted Excel report with real pricing, INR conversion, and best practices. No manual steps.

## What This Does

```
You say:  "Generate a cost report for Acme Corp with 3 EC2 m5.large and RDS PostgreSQL in ap-south-1"

AI does:  1. Builds estimate with full validation (Node.js MCP)
          2. Saves to calculator.aws → gets shareable URL
          3. Opens URL in headless browser → scrapes real costs
          4. Generates formatted Excel (.xlsx) with INR pricing

You get:  Acme_Corp_Cost_Report.xlsx in your project folder
```

## Two MCP Servers Working Together

| Server | Language | What it does |
|--------|----------|--------------|
| **AWS Pricing Calculator MCP** | Node.js | Searches 436+ AWS services, validates configs, builds estimates, exports to calculator.aws |
| **Cost Report Generator MCP** | Python | Takes the estimate URL, fetches real costs via headless browser, produces formatted Excel |

## Quick Start

See **[SETUP.md](SETUP.md)** for complete step-by-step instructions.

### TL;DR

```bash
# Clone
git clone https://github.com/vivek-daml/aws-cost-estimator-mcp.git
cd aws-cost-estimator-mcp

# Node.js side (estimate creation)
npm install
npm run build

# Python side (report generation)
cd cost-report-mcp
python -m venv .venv
.venv\Scripts\activate        # Windows
pip install -r requirements.txt
playwright install chromium
cd ..
```

Add to `~/.kiro/settings/mcp.json` (or equivalent for Claude Desktop / Cursor / VS Code).
Replace `/path/to/aws-cost-estimator-mcp` with the actual folder where you cloned this repo,
and use forward slashes `/` (not backslashes) in the paths:

```json
{
  "mcpServers": {
    "aws-pricing-calculator-mcp-server": {
      "command": "node",
      "args": ["/path/to/aws-cost-estimator-mcp/dist/mcp-server.js"],
      "disabled": false,
      "autoApprove": [
        "search_services",
        "get_service_fields",
        "create_estimate",
        "add_service",
        "validate_estimate",
        "export_estimate",
        "build_estimate"
      ]
    },
    "aws-cost-report-generator": {
      "command": "/path/to/aws-cost-estimator-mcp/cost-report-mcp/.venv/Scripts/python.exe",
      "args": ["/path/to/aws-cost-estimator-mcp/cost-report-mcp/server.py"],
      "disabled": false,
      "autoApprove": [
        "generate_cost_report_excel",
        "generate_cost_report_from_csv",
        "get_exchange_rate"
      ]
    }
  }
}
```

## Excel Report Output

The generated report includes:
- **Summary sheet** — total monthly cost in INR
- **AWS Services sheet** — S.NO, Service, Per Month USD, Per Month INR, Per Year INR
- **EC2/RDS details** — Instance Type, vCPU, RAM, OS/Database, Running Hours, Pricing Model
- **Pricing Link** — the calculator.aws URL for reference
- **Notes** — region, exchange rate, per-service configuration descriptions
- **Best Practices** — 5 AI-generated recommendations (via AWS Bedrock Nova Pro)

## Compatible AI Tools

| Tool | Works? |
|------|--------|
| Kiro | Yes |
| Claude Desktop | Yes |
| Cursor | Yes |
| VS Code + GitHub Copilot | Yes |
| Claude Code (CLI) | Yes |
| Windsurf | Yes |
| Amazon Q Developer | Yes |

## Architecture

```
┌──────────────┐                          ┌──────────────────────────────┐
│  AI Agent    │── MCP (estimate tools) ──│ Node.js Pricing Calculator   │
│  (Kiro etc.) │                          │ (validation, lint, catalog)  │
│              │                          └──────────────┬───────────────┘
│              │                                         │ saves to AWS
│              │                                         ▼
│              │                          ┌──────────────────────────────┐
│              │── MCP (report tool) ─────│ Python Report Generator      │
│              │                          │ (Playwright + Excel format)  │
└──────────────┘                          └──────────────────────────────┘
```

## Requirements

- Node.js 18+
- Python 3.10+
- Internet access (AWS CloudFront CDN — no credentials needed for estimates)
- AWS credentials (optional — only for Bedrock-powered best practices)

## License

MIT-0