RN

rajesh-natesan/aws-pricing-mcp

Deployment & DevOps
0 stars 10 forks Quality 51 Trend 0MIT

An MCP server that exposes AWS EC2 pricing data with an option to search by CPU, RAM, networking

Overview

The lets any LLM or automation script query real-time EC2 pricing with one call. Powered by a pre-parsed AWS pricing catalogue, it answers questions such as Use this mcp_config.json for Docker hub image: - The --rm flag removes the container when it exits. - The -i flag enables interactive mode for stdio communication. - The -q flag suppresses the docker messages about downloading the image. - The --network none totally disconnects the container from the network to guarantee no data exfiltration. This will download the pricing data and build the image. The BUILD_DATE parameter ensures the fresh pricing data is downloaded during build. Sample mcp_config.json for a locally built image: - The --rm flag removes the container when it exits. - The -i flag enables interactive mode for stdio communication. - The --network none totally disconnects the container from the network to guarantee no data exfiltration.

README

AWS EC2 Pricing MCP Server

The AWS EC2 Pricing MCP Server lets any LLM or automation script query real-time EC2 pricing with one call. Powered by a pre-parsed AWS pricing catalogue, it answers questions such as

What is the cheapest EC2 instance with 32GB RAM?

Which AMD instances have more than 3.5 Ghz CPUs?

What is the 3-yr All Upfront discount on r6g family in eu-west-1?

What is the cheapest instance to run Windows with SQL Server Enterprise?

Using Docker

Using a Docker hub image

Use this mcp_config.json for Docker hub image:

{
  "mcpServers": {
    "AWS EC2 Pricing MCP": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-q", "--network", "none", "ai1st/aws-pricing-mcp"]
    }
  }
}
  • The --rm flag removes the container when it exits.
  • The -i flag enables interactive mode for stdio communication.
  • The -q flag suppresses the docker messages about downloading the image.
  • The --network none totally disconnects the container from the network to guarantee no data exfiltration.

Using a local image

Build the image:

docker build -t aws-pricing-mcp . --build-arg BUILD_DATE=$(date +%Y-%m-%d)

This will download the pricing data and build the image. The BUILD_DATE parameter ensures the fresh pricing data is downloaded during build.

Sample mcp_config.json for a locally built image:

{
  "mcpServers": { "AWS EC2 Pricing MCP": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "--network", "none", "aws-pricing-mcp"]
    }
  }
}
  • The --rm flag removes the container when it exits.
  • The -i flag enables interactive mode for stdio communication.
  • The --network none totally disconnects the container from the network to guarantee no data exfiltration.

Using Python directly

You’ll need to download the pricing data first:

curl https://cloudfix-public-aws-pricing.s3.us-east-1.amazonaws.com/pricing/ec2_pricing.json.gz | gunzip > ec2_pricing.json

It should be in the same directory as server.py.

Sample mcp_config.json for local Python:

{
  "mcpServers": { "AWS EC2 Pricing MCP": {
      "command": "python",
      "args": [
        "/path/to/server.py"
      ]
    }
  }
}

Building Instructions

For instructions on building and publishing the Docker image, see BUILD.md.

Pricing Data JSON Format

See PRICING.md.

View the full README on GitHub

Install

docker run --rm -i -q --network none ai1st/aws-pricing-mcp
New to MCP? Start with the mcpskill.org guide →

Configuration

{ "mcpServers": { "AWS EC2 Pricing MCP": { "command": "docker", "args": ["run", "--rm", "-i", "-q", "--network", "none", "ai1st/aws-pricing-mcp"] } } }