Analyzes AWS spend, including Amazon Bedrock, across regions, services, instance types and models via Cost Explorer.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add aws-cost-explorer --env MCP_TRANSPORT='<MCP_TRANSPORT>' --env BEDROCK_LOG_GROUP_NAME='<BEDROCK_LOG_GROUP_NAME>' --env AWS_ACCESS_KEY_ID='<AWS_ACCESS_KEY_ID>' --env AWS_REGION='<AWS_REGION>' --env AWS_SECRET_ACCESS_KEY='<AWS_SECRET_ACCESS_KEY>' -- python server.py~/.codex/config.toml
[mcp_servers.aws-cost-explorer]
command = "python"
args = ["server.py"]
env = { MCP_TRANSPORT = "<MCP_TRANSPORT>", BEDROCK_LOG_GROUP_NAME = "<BEDROCK_LOG_GROUP_NAME>", AWS_ACCESS_KEY_ID = "<AWS_ACCESS_KEY_ID>", AWS_REGION = "<AWS_REGION>", AWS_SECRET_ACCESS_KEY = "<AWS_SECRET_ACCESS_KEY>" }
# codex mcp add aws-cost-explorer --env MCP_TRANSPORT='<MCP_TRANSPORT>' --env BEDROCK_LOG_GROUP_NAME='<BEDROCK_LOG_GROUP_NAME>' --env AWS_ACCESS_KEY_ID='<AWS_ACCESS_KEY_ID>' --env AWS_REGION='<AWS_REGION>' --env AWS_SECRET_ACCESS_KEY='<AWS_SECRET_ACCESS_KEY>' -- python server.py~/.cursor/mcp.json
{
"mcpServers": {
"aws-cost-explorer": {
"command": "python",
"args": [
"server.py"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"BEDROCK_LOG_GROUP_NAME": "<BEDROCK_LOG_GROUP_NAME>",
"AWS_ACCESS_KEY_ID": "<AWS_ACCESS_KEY_ID>",
"AWS_REGION": "<AWS_REGION>",
"AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"aws-cost-explorer": {
"type": "stdio",
"command": "python",
"args": [
"server.py"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"BEDROCK_LOG_GROUP_NAME": "<BEDROCK_LOG_GROUP_NAME>",
"AWS_ACCESS_KEY_ID": "<AWS_ACCESS_KEY_ID>",
"AWS_REGION": "<AWS_REGION>",
"AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"aws-cost-explorer": {
"command": "python",
"args": [
"server.py"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"BEDROCK_LOG_GROUP_NAME": "<BEDROCK_LOG_GROUP_NAME>",
"AWS_ACCESS_KEY_ID": "<AWS_ACCESS_KEY_ID>",
"AWS_REGION": "<AWS_REGION>",
"AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"aws-cost-explorer": {
"command": "python",
"args": [
"server.py"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"BEDROCK_LOG_GROUP_NAME": "<BEDROCK_LOG_GROUP_NAME>",
"AWS_ACCESS_KEY_ID": "<AWS_ACCESS_KEY_ID>",
"AWS_REGION": "<AWS_REGION>",
"AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"aws-cost-explorer": {
"command": "python",
"args": [
"server.py"
],
"env": {
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"BEDROCK_LOG_GROUP_NAME": "<BEDROCK_LOG_GROUP_NAME>",
"AWS_ACCESS_KEY_ID": "<AWS_ACCESS_KEY_ID>",
"AWS_REGION": "<AWS_REGION>",
"AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>"
}
}
}
}Environment variables
MCP_TRANSPORTBEDROCK_LOG_GROUP_NAMEAWS_ACCESS_KEY_IDAWS_REGIONAWS_SECRET_ACCESS_KEY
Replace the placeholders with your own credentials and keep them out of version control.