Model Context Protocol (MCP) server for AWS Billing and Cost Management Pricing Calculator
Project description
BCM Pricing Calculator MCP Server
MCP server for AWS Billing and Cost Management Pricing Calculator API - programmatically create cost estimates for planned cloud usage.
Author: oreokebu-dev
License: MIT
Features
Cost Estimation & Planning
- Workload Estimates: Model usage patterns for specific workloads
- Bill Scenarios: Create different cost configuration scenarios
- Bill Estimates: Generate comprehensive cost projections
- Line Item Analysis: View detailed cost breakdowns
- Commitment Modeling: Include Savings Plans and Reserved Instances
- Discount Integration: Apply your organization's discounts and benefit sharing
Query with Natural Language
- Ask questions about your cost estimates in plain English
- Create and compare multiple scenarios
- Get detailed cost breakdowns and projections
Prerequisites
- Install
uvfrom Astral - Install Python using
uv python install 3.10 - Set up AWS credentials with access to BCM Pricing Calculator
- Configure AWS credentials with
aws configureor environment variables - Ensure your IAM role/user has
bcm-pricing-calculator:*permissions
- Configure AWS credentials with
Installation
Add to your MCP client config (e.g., ~/.kiro/settings/mcp.json for Kiro):
{
"mcpServers": {
"bcm-pricing-calculator": {
"command": "uvx",
"args": ["bcm-pricing-calculator-mcp-server@latest"],
"env": {
"AWS_REGION": "us-east-1"
}
}
}
}
Restart your MCP client and you're ready to use it!
Available Tools
Workload Estimates
create_workload_estimate- Create a new workload estimatelist_workload_estimates- List all workload estimatesget_workload_estimate- Get details of a specific workload estimate
Bill Scenarios
create_bill_scenario- Create a new bill scenariolist_bill_scenarios- List all bill scenarios for an estimate
Bill Estimates
create_bill_estimate- Create a new bill estimatelist_bill_estimates- List all bill estimatesget_bill_estimate- Get details of a specific bill estimatelist_bill_estimate_line_items- View detailed cost breakdown
Preferences
get_preferences- Get your pricing calculator preferences
Example Usage
Create a Cost Estimate
1. Create a bill estimate: "Create a bill estimate named 'Q1 2025 Migration'"
2. Create a scenario: "Create a bill scenario for the estimate"
3. Add usage modifications (via batch operations)
4. View results: "Show me the line items for this estimate"
Compare Scenarios
1. Create multiple scenarios with different configurations
2. Generate estimates for each
3. Compare costs across scenarios
AWS Authentication
The MCP server requires specific AWS permissions:
Required Permissions
Your AWS IAM role or user must have bcm-pricing-calculator:* permissions to access the Pricing Calculator API.
Configuration
Environment Variables (optional):
AWS_PROFILE- AWS profile to use (defaults to "default")AWS_REGION- Must be "us-east-1" (only supported region)FASTMCP_LOG_LEVEL- Log level: ERROR, INFO, DEBUG (defaults to INFO)
The server uses your AWS credentials from ~/.aws/credentials automatically.
Important Notes
- BCM Pricing Calculator API is only available in
us-east-1region - All API calls are free of charge
- Estimates are based on your organization's pricing, discounts, and commitments
- This is different from the AWS Pricing API - it creates estimates rather than querying list prices
Documentation
Project Documentation
- QUICKSTART.md - Get started in 5 minutes with usage examples
- EXAMPLES.md - Detailed JSON examples and service patterns
- SERVICE_MAPPING_DISCOVERY.md - How to find correct serviceCode, usageType, and operation values
AWS Documentation
- AWS CLI Reference
- Service Authorization Reference
- AWS Pricing Calculator UI - Visual tool for discovering usageType/operation values
Development
Local Setup for Contributors
# Clone and install
git clone <repo-url>
cd bcm-pricing-calculator-mcp-server
uv pip install -e .
# Run tests
./test_local.sh
Configure for Local Development
Use local path in your MCP config:
{
"mcpServers": {
"bcm-pricing-calculator": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/bcm-pricing-calculator-mcp-server",
"run",
"bcm-pricing-calculator-mcp-server"
],
"env": {
"AWS_REGION": "us-east-1"
}
}
}
}
Testing
# Run all tests
./test_local.sh
# Run with coverage
uv run pytest --cov=bcm_pricing_calculator_mcp_server
# Run specific test
uv run pytest tests/test_server.py::test_create_workload_estimate_success
Important Note
Do NOT run the server directly - MCP servers communicate via stdio protocol and expect JSON-RPC messages. Always test through an MCP client or use the test suite.
License
MIT License - see LICENSE file for details
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bcm_pricing_calculator_mcp_server-1.0.0.tar.gz.
File metadata
- Download URL: bcm_pricing_calculator_mcp_server-1.0.0.tar.gz
- Upload date:
- Size: 124.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fee22686f7f2393da59e43dd1d21e4667d7ac699be29240b0cc72a9f962c43cc
|
|
| MD5 |
cfd07781d5ebe5b0db16e8b128306c35
|
|
| BLAKE2b-256 |
8cb80bbdab9cbec5c8b1b40708048cdfef67a74472c72d4edd027fb0a349125c
|
File details
Details for the file bcm_pricing_calculator_mcp_server-1.0.0-py3-none-any.whl.
File metadata
- Download URL: bcm_pricing_calculator_mcp_server-1.0.0-py3-none-any.whl
- Upload date:
- Size: 19.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
22305251e302d57128761a305f831fdebf101e2e7c6f016799311adbbe3e0401
|
|
| MD5 |
b2440fa58120aed9b09a36bc4783a2ea
|
|
| BLAKE2b-256 |
5a5a4480f8f052a0d6bcaea7bf6fdc4eebc773beabb80534e36675d32c5ed85b
|