Skip to main content
Glama
x7even

OpenCloudCosts MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
AWS_PROFILENoAWS credentials profile
OCC_RATE_LIMITNoRate limiter requests per second10
OCC_GCP_API_KEYNoGCP API key for pricing (required for GCP pricing)
OCC_CACHE_TTL_HOURSNoPublic price cache TTL24
OCC_DEFAULT_REGIONSNoDefault regionsus-east-1,us-west-2
OCC_REQUEST_TIMEOUTNoPer-request deadline in seconds30
OCC_PROVIDER_TIMEOUTNoPer-provider API call timeout in seconds15
OCC_SHUTDOWN_TIMEOUTNoGraceful SIGTERM drain timeout in seconds10
OCC_METADATA_TTL_DAYSNoRegion/instance metadata cache TTL in days7
OCC_GCP_BILLING_ACCOUNT_IDNoGCP billing account ID for contract/effective pricing
OCC_AWS_ENABLE_COST_EXPLORERNoEnable AWS effective pricing (costs $0.01/call)false
OCC_EFFECTIVE_PRICE_TTL_HOURSNoEffective/contracted rate cache TTL in hours1

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_priceA

Unified pricing tool — returns public catalog rates plus contracted/effective prices where credentials are available.

Pass a spec dict with at minimum: provider, domain, region. Domain-specific required fields (call describe_catalog for the complete list):

COMPUTE : resource_type ("m5.xlarge" / "n1-standard-4" / "Standard_D4s_v3") os ("Linux" or "Windows"), term ("on_demand"/"spot"/"cud_1yr") Fargate: vcpu (e.g. 2.0), memory_gb (e.g. 4.0), service="fargate" STORAGE : storage_type ("gp3"/"standard"/"nearline"/"premium-ssd") DATABASE : resource_type ("db.r5.large"/"db-n1-standard-4"), engine ("MySQL"), deployment ("single-az"/"ha"/"multi-az"), service ("rds"/"cloud_sql"/"memorystore") AI : model ("claude-3-5-sonnet"/"gemini-1.5-flash"), service ("bedrock"/"gemini"/"vertex"), input_tokens, output_tokens | machine_type + task for Vertex CONTAINER: service ("gke"/"eks"), mode ("standard"/"autopilot"), node_count, vcpu, memory_gb ANALYTICS: service ("bigquery"), query_tb, active_storage_gb, longterm_storage_gb, streaming_gb NETWORK : service ("cloud_lb"/"cloud_cdn"/"cloud_nat"/"cloud_armor"), lb_type, rule_count, data_gb, gateway_count, egress_gb, policy_count OBSERVABILITY: service ("cloudwatch"/"cloud_monitoring"), ingestion_mib, log_gb INTER_REGION_EGRESS: source_region, dest_region (empty = internet), data_gb Example: {"provider": "aws", "domain": "inter_region_egress", "source_region": "us-east-1", "dest_region": "eu-west-1"}

Returns public_prices[] always. When auth exists: contracted_prices[], effective_price, auth_available=true.

Call describe_catalog(provider, domain, service) for an example_invocation you can copy directly into this tool.

Args: spec: PricingSpec dict — see field descriptions above.

Examples: {"provider": "aws", "domain": "compute", "resource_type": "m5.xlarge", "region": "us-east-1"} {"provider": "aws", "domain": "ai", "service": "bedrock", "model": "claude-3-5-sonnet", "region": "us-east-1", "input_tokens": 1000000, "output_tokens": 1000000} {"provider": "gcp", "domain": "compute", "resource_type": "n1-standard-4", "region": "us-central1", "term": "cud_1yr"} {"provider": "gcp", "domain": "analytics", "service": "bigquery", "query_tb": 10.0, "active_storage_gb": 500.0, "region": "us"} {"provider": "azure", "domain": "compute", "resource_type": "Standard_D4s_v3", "region": "eastus"} {"provider": "aws", "domain": "database", "service": "rds", "resource_type": "db.r5.large", "engine": "MySQL", "deployment": "single-az", "region": "us-east-1"}

get_prices_batchA

Get prices for multiple compute instance types in a single region in one call.

Fetches all prices concurrently. Useful for comparing a shortlist of candidate instance types (e.g. m5.xlarge vs c5.xlarge vs r5.xlarge) without separate calls.

Args: provider: Cloud provider — "aws", "gcp", or "azure" instance_types: List of instance types, e.g. ["m5.xlarge", "c5.xlarge", "r5.large"] region: Region code, e.g. "us-east-1" or "us-central1" os: Operating system — "Linux" (default) or "Windows" term: Pricing term — "on_demand" (default), "spot", "reserved_1yr", "cud_1yr"

compare_pricesA

Compare pricing for any service across multiple regions.

Fetches concurrently. Returns results sorted cheapest first, with % delta between cheapest and most expensive. Optionally shows delta vs a baseline region.

Args: spec: PricingSpec dict (same as get_price). The region field is overridden per comparison — you can pass any region in the spec. regions: List of region codes to compare, e.g. ["us-east-1", "eu-west-1", "ap-northeast-1"] baseline_region: Optional region for delta comparison, e.g. "us-east-1".

search_pricingA

Free-text search across the pricing catalog.

Useful for exploring what SKUs are available for a service before calling get_price, or for finding pricing for services not yet covered by a specific domain.

Args: provider: Cloud provider — "aws", "gcp", or "azure" query: Search string, e.g. "NAT gateway", "CloudWatch metrics", "Lambda duration" domain: Optional domain filter — "compute", "storage", "database", etc. region: Optional region filter max_results: Maximum results to return (default 20)

get_discount_summaryA

Return a summary of all active cloud discounts for the authenticated account.

For AWS: active Savings Plans (type, commitment $/hr, utilization %) and active Reserved Instances (instance type, count, payment type, days remaining), plus Cost Explorer utilization for the previous month.

Requires credentials and OCC_AWS_ENABLE_COST_EXPLORER=true for AWS.

Args: provider: Cloud provider — "aws" (GCP CUD support coming later)

get_spot_historyA

Get spot price history and stability analysis for a compute instance type.

Returns per-AZ spot price statistics (current, min, max, avg, sample count), overall volatility ratio, a stability label, and an actionable recommendation. Currently supported by AWS (requires credentials). GCP and Azure return not_supported.

Args: spec: PricingSpec dict with domain="compute", resource_type (instance type), region. Example: {"provider": "aws", "domain": "compute", "resource_type": "m5.xlarge", "region": "us-east-1"} hours: Lookback window in hours (default 24, max 720) availability_zone: Filter to a specific AZ, e.g. "us-east-1a". Empty = all AZs (AWS only).

refresh_cacheA

Invalidate the pricing cache to force fresh data on next request.

Args: provider: Provider to clear ("aws", "gcp", "azure"), or empty string to purge expired entries.

list_regionsB

List all regions where a cloud service is available for the given provider.

Args: provider: Cloud provider — "aws", "gcp", or "azure" domain: Domain filter — "compute" (default), "storage", "database"

list_instance_typesA

List available compute instance types in a region, with optional filters.

Useful for discovering what instances are available before fetching pricing, or for finding instances that meet specific vCPU/memory/GPU requirements.

Args: provider: Cloud provider — "aws", "gcp", or "azure" region: Region code, e.g. "us-east-1" (AWS), "us-central1" (GCP), "eastus" (Azure) family: Optional instance family prefix, e.g. "m5", "c6g" (AWS), "n2", "c2" (GCP), or "Standard_D", "Standard_E" (Azure) min_vcpu: Filter to instances with at least this many vCPUs. min_memory_gb: Filter to instances with at least this much memory (GB). gpu: If true, only return GPU instances max_results: Maximum number of results (default 50)

describe_catalogA

Discover what each provider supports and how to call get_price.

  • No args → full support matrix across all configured providers.

  • provider only → all domains/services for that provider.

  • provider + domain [+ service] → targeted guidance with required_fields, supported_terms, filter_hints, and a ready-to-use example_invocation you can pass directly to get_price.

Use this before get_price when unsure of exact field names or values.

Args: provider: Cloud provider — "aws", "gcp", or "azure". Empty = all providers. domain: Domain — "compute", "storage", "database", "ai", "container", "serverless", "analytics", "network", "observability". Empty = all. service: Service — e.g. "bedrock", "rds", "gke", "bigquery". Empty = all.

find_cheapest_regionA

Find the cheapest region for any cloud service.

Queries pricing concurrently across regions and returns results sorted cheapest first, with the price delta between cheapest and most expensive regions.

Args: spec: PricingSpec dict (same as get_price). The region field is overridden for each comparison — pass any region in the spec. regions: List of region codes to compare. Omit for major regions (faster). Pass ["all"] to search every available region (slow on first run without cache). baseline_region: Optional region for delta comparison, e.g. "us-east-1".

find_available_regionsA

Find all regions where a specific service/instance type is available, cheapest first.

Args: spec: PricingSpec dict (same as get_price). The region field is overridden per comparison — pass any region in the spec. regions: Region codes to check. Omit for major regions. Pass ["all"] to search every available region. baseline_region: Optional region for delta comparison.

cache_statsA

Return statistics about the local pricing cache (entry counts, DB size).

estimate_bomA

Use this tool for total infrastructure cost, TCO, monthly spend for a multi-resource stack, or cost comparison between architectures.

Handles compute + storage + database + AI together in a single call — do NOT call get_price individually for multi-resource questions; use this tool instead.

Returns per-item and total monthly/annual costs with real public pricing data, plus a not_included list of hidden costs (egress, load balancers, NAT Gateway, monitoring, backups). IMPORTANT: if not_included is present in the response, you MUST call get_price for each listed item — using the exact command in each item's how_to_price field — before writing your final answer. Do NOT estimate or guess any cost from the not_included list.

Each item should be a PricingSpec dict PLUS a quantity field:

  • provider: "aws" | "gcp" | "azure"

  • domain: "compute" | "storage" | "database" | "ai" | ...

  • region: region code

  • quantity: number of units (default 1)

  • hours_per_month: hours/month for compute (default 730 = always-on)

  • description: optional label for this line item Plus domain-specific fields (see get_price or describe_catalog for details).

Examples: Compute + database + storage on AWS: [ {"provider": "aws", "domain": "compute", "resource_type": "m5.xlarge", "region": "us-east-1", "quantity": 3}, {"provider": "aws", "domain": "database", "service": "rds", "resource_type": "db.r6g.large", "engine": "MySQL", "deployment": "single-az", "region": "us-east-1"}, {"provider": "aws", "domain": "storage", "storage_type": "gp3", "size_gb": 500, "region": "us-east-1"} ]

Mixed cloud: [ {"provider": "gcp", "domain": "compute", "resource_type": "n1-standard-4", "region": "us-central1", "quantity": 2}, {"provider": "azure", "domain": "compute", "resource_type": "Standard_D4s_v3", "region": "eastus", "quantity": 1} ]

estimate_unit_economicsA

Estimate per-unit economics (cost per user, per request, per transaction) given a Bill of Materials and expected monthly usage volume.

Args: items: Same format as estimate_bom — list of cloud resource PricingSpec dicts plus quantity field. See estimate_bom for full item format. units_per_month: Monthly volume being measured (e.g. 10000 users) unit_label: What the unit represents — "user", "request", "transaction", etc.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/x7even/cloudcostsmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server