AWS Billing MCP Server
A Model Context Protocol (MCP) server that provides AWS billing and cost analysis tools for Claude Desktop.
Features
- 🔍 Cost Analysis - Analyze AWS costs with flexible filtering
- 📊 Usage Comparison - Compare usage between different time periods
- 📈 Trend Analysis - Identify cost trends over time
- 🚨 Anomaly Detection - Detect unusual cost patterns
- 🏆 Cost Ranking - Identify top cost drivers by service, region, etc.
Quick Setup
-
Install dependencies and build:
npm install npm run build -
Configure Claude Desktop:
cp claude-desktop-config-template.json claude-desktop-config.json # Edit claude-desktop-config.json with your project path and AWS credentials -
Copy the generated configuration to Claude Desktop:
- Open
claude-desktop-config.json - Copy its contents to
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) - Restart Claude Desktop
- Open
-
Test it: Ask Claude: "Can you analyze my AWS costs for the last month?"
Configuration
Simplified Claude Desktop Setup
The server is designed for Claude Desktop personal use with direct environment variable access:
Mock Data (Default): Works out of the box - no AWS credentials needed for testing.
Real AWS Data: Add your credentials directly to the Claude Desktop configuration:
{
"mcpServers": {
"aws-billing-mcp-server": {
"command": "node",
"args": ["/path/to/your/project/start-mcp-server.js"],
"env": {
"AUTH_ENABLED": "false",
"LOG_LEVEL": "info",
"AWS_ACCESS_KEY_ID": "your-access-key-id",
"AWS_SECRET_ACCESS_KEY": "your-secret-access-key",
"AWS_REGION": "us-east-1"
}
}
}
}
Key Benefits:
- ✅ No database credential storage - uses environment variables directly
- ✅ No encryption/decryption complexity
- ✅ Simple and secure for personal Claude Desktop use
- ✅ Automatic fallback to mock data if credentials not provided
Required AWS Permissions:
ce:GetCostAndUsagece:GetUsageReportce:ListCostCategoryDefinitions
Available Tools
| Tool | Description | Example Usage |
|---|---|---|
analyze_costs | Analyze costs with filtering | "Show me EC2 costs for last month" |
compare_usage | Compare periods | "Compare this month to last month" |
analyze_trends | Trend analysis | "What are the cost trends for S3?" |
detect_anomalies | Find anomalies | "Detect any cost anomalies" |
rank_costs | Top cost drivers | "What are my biggest cost drivers?" |
Testing
- Run unit tests:
npm test - Check Claude Desktop logs: Look for startup messages in Claude's MCP server logs
- Test with Claude: Ask "Can you analyze my AWS costs for the last month?"
Files
-
src/- TypeScript source code -
dist/- Compiled JavaScript output -
data/- SQLite database storage -
logs/- Application logs -
start-mcp-server.js- Server startup script -
claude-desktop-config-template.json- Configuration template -
DEPLOYMENT.md- Detailed deployment guide
Architecture
- MCP Server - Handles Claude Desktop communication via stdio
- Billing Client - AWS Cost Explorer API integration (simplified for environment variables)
- Billing Analyzer - Cost analysis algorithms
- Auth Manager - Google SSO authentication (disabled by default for Claude Desktop)
- Database - SQLite for caching billing data only (no credential storage)
Development
npm run dev # Development mode with hot reload
npm test # Run test suite
npm run lint # Code linting
npm run format # Code formatting
Security
- Authentication disabled by default for local development
- AWS credentials stored in Claude Desktop configuration
- Supports Google SSO for production deployments
- All data cached locally in SQLite database
Support
For issues or questions:
- Check the health endpoint:
http://localhost:37291/health - Review logs in the console output
- Test MCP protocol with
node test-mcp-tools.js - See
DEPLOYMENT.mdfor detailed troubleshooting