{"_id":"@comparecloudcosts/mcp-server","_rev":"2-261e57d871e108d806f0e3f68f182715","name":"@comparecloudcosts/mcp-server","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.0-stage":{"name":"@comparecloudcosts/mcp-server","version":"0.0.0-stage","_id":"@comparecloudcosts/mcp-server@0.0.0-stage","stub":true,"maintainers":[{"name":"comparecloudcosts","email":"hello@comparecloudcosts.com"}],"dist":{"shasum":"332b2035d6f22076276fd8a820c1274a56ec8a0a","tarball":"https://registry.npmjs.org/@comparecloudcosts/mcp-server/-/mcp-server-0.0.0-stage.tgz","fileCount":2,"integrity":"sha512-ZS9EheUrY7eN93HITTMQ1Ju8fecd6qcitLwM+J+ivlPF8crP9MeZM/Z4Ap/6OT6bPxTz9YNZkY9jmlWZ41IBow==","signatures":[{"sig":"MEUCIQC94zeQvD7+viqNJ4lOxcK90z1G0YtUJ3YO9yFYkMNPygIgFfnizdH3aNSiUvjaB6se0UMm0tJCC0L27QI9eTQaOp4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":351},"_npmUser":{"name":"comparecloudcosts","email":"hello@comparecloudcosts.com"},"description":"Temporary package placeholder for staged publishing","directories":{}},"1.0.0":{"_id":"@comparecloudcosts/mcp-server@1.0.0","bin":{"mcp-server":"dist/index.js"},"bugs":{"url":"https://github.com/rodrigo-orzari/ccc-mcp-server/issues"},"dist":{"shasum":"629e0cc1ff05e49300bac89283ff98c317510686","tarball":"https://registry.npmjs.org/@comparecloudcosts/mcp-server/-/mcp-server-1.0.0.tgz","fileCount":6,"integrity":"sha512-gyKRecmeTF8RIpT05FUOsk9d4DqppKSNP6Z90I5Ijx0NZlLID7esYPpQrYqGPg387Qz308lAjNKw+1K0J4RYNg==","signatures":[{"sig":"MEQCIBTxL7K9AKCVWqVUlvVrW0BBQbUeZ6wlpEeorCadrA5nAiBf8H+fSDJGgIOR2w9OsFhu49nM9c83h7HTfZoKuCX6JQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAJuVsmg7cDbIbvKPB1jljLlr82joIIHcBNvtt6f7LILAiBZ8Bi0WiL9/zuem4K12+2T8dsI3hnDpv9DgS0JhoSyYQ=="}],"unpackedSize":34051},"main":"dist/index.js","name":"@comparecloudcosts/mcp-server","type":"module","author":{"name":"Rodrigo Orzari"},"engines":{"node":">=18"},"gitHead":"aeec9dc04b192328edd554532c725a76ec30d27a","license":"MIT","mcpName":"com.comparecloudcosts/mcp-server","scripts":{"build":"tsc","start":"node dist/index.js","prepublishOnly":"npm run build"},"version":"1.0.0","_npmUser":{"name":"comparecloudcosts","email":"hello@comparecloudcosts.com"},"homepage":"https://comparecloudcosts.com/mcp","keywords":["mcp","model-context-protocol","cloud-pricing","finops","cloud-costs","aws","azure","gcp"],"repository":{"url":"git+https://github.com/rodrigo-orzari/ccc-mcp-server.git","type":"git"},"_npmVersion":"11.16.0","description":"MCP server for Compare Cloud Costs — compare cloud and AI model pricing across AWS, Azure, GCP, Oracle, DigitalOcean, Alibaba, Cloudflare and frontier AI providers.","directories":{},"maintainers":[{"name":"comparecloudcosts","email":"hello@comparecloudcosts.com"}],"_nodeVersion":"26.3.0","dependencies":{"@modelcontextprotocol/sdk":"^1.17.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_1.0.0_1792558546503_0.1823110870225677"}}},"time":{"created":"2026-10-21T04:55:10.887Z","modified":"2026-10-21T04:55:46.758Z","0.0.0-stage":"2026-10-21T04:55:10.887Z","1.0.0":"2026-10-21T04:55:46.590Z"},"description":"MCP server for Compare Cloud Costs — compare cloud and AI model pricing across AWS, Azure, GCP, Oracle, DigitalOcean, Alibaba, Cloudflare and frontier AI providers.","maintainers":[{"name":"comparecloudcosts","email":"hello@comparecloudcosts.com"}],"readme":"# Compare Cloud Costs — MCP Server\n\nA standalone [Model Context Protocol](https://modelcontextprotocol.io) server that gives your AI assistant access to the [Compare Cloud Costs](https://comparecloudcosts.com) pricing catalog — cloud and AI model pricing across AWS, Azure, Google Cloud, Oracle, DigitalOcean, Alibaba, Cloudflare and the frontier AI providers, aligned to the FinOps FOCUS™ standard.\n\n**Data freshness:** CCC refreshes its pricing information about once a week. The catalog is not real-time or live data, so use it for planning and comparison rather than minute-by-minute price checks.\n\nThis package is the installable, stdio-transport MCP server. Tool names and schemas match the canonical catalog used by the Compare Cloud Costs backend, and every tool is backed by the site's real public APIs — no sample data.\n\n## Tools\n\n| Tool | What it does |\n| --- | --- |\n| `compare_cloud_pricing` | Query and compare multi-cloud compute, database, and serverless pricing across AWS, Azure, Google Cloud, Oracle, DigitalOcean, Alibaba, and Cloudflare. Filters: `category` (required), `provider`, `min_vcpu`, `min_ram_gb`, `region`. |\n| `search_ai_models` | Search token pricing (input, output, prompt caching) and context windows for AI LLMs across OpenAI, Anthropic, DeepSeek, Mistral, Meta Llama, and Cohere. Filters: `provider`, `model_family`. |\n| `estimate_workload_architecture` | End-to-end multi-cloud monthly cost benchmarks for realistic full-stack architectures (VMs + managed DB + load balancers + storage + egress). Takes a `workload_id` (see below). |\n| `lookup_datacenter_compliance` | Checks global data center availability and region locations from the pricing catalog, with pointers to certification details. Filters: `compliance_standard`, `country_or_city`. |\n\n### Workload IDs\n\n`estimate_workload_architecture` accepts the workload slugs from https://comparecloudcosts.com/workloads, e.g. `3-tier-web`, `serverless-web-app`, `rag-ai-app`, `k8s-app-platform`, `ecommerce-microservices`, `streaming-analytics`, `data-warehouse-bi`, `ml-training-hosting`, `agentic-ai-swarm`. (The example slugs in the tool description — `three-tier-web-app`, `ai-rag-pipeline`, etc. — predate the current catalog; if an ID is unknown the tool returns the list of valid IDs.)\n\n## Get a free API key\n\nTool calls need a free Compare Cloud Costs API key:\n\n1. Go to **https://comparecloudcosts.com/mcp** and click **Generate preview key** (1-click, no card). Keys look like `ccc_live_…`.\n2. Set it as the `CCC_API_KEY` environment variable in your MCP client config (see below).\n\n`tools/list` works without a key; `tools/call` returns an error explaining how to get one. Free preview keys are rate-limited per hour (the remaining quota is reported in tool responses).\n\n## Install\n\n### Claude Desktop\n\nAdd to `claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`; Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"compare-cloud-costs\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@comparecloudcosts/mcp-server\"],\n      \"env\": {\n        \"CCC_API_KEY\": \"ccc_live_your_key_here\"\n      }\n    }\n  }\n}\n```\n\n### Cursor\n\nAdd to `~/.cursor/mcp.json` (or a project `.cursor/mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"compare-cloud-costs\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@comparecloudcosts/mcp-server\"],\n      \"env\": {\n        \"CCC_API_KEY\": \"ccc_live_your_key_here\"\n      }\n    }\n  }\n}\n```\n\n### VS Code\n\nAdd to `.vscode/mcp.json` (note VS Code uses the `servers` key):\n\n```json\n{\n  \"servers\": {\n    \"compare-cloud-costs\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@comparecloudcosts/mcp-server\"],\n      \"env\": {\n        \"CCC_API_KEY\": \"ccc_live_your_key_here\"\n      },\n      \"type\": \"stdio\"\n    }\n  }\n}\n```\n\nRequires Node.js ≥ 18.\n\n## How the tools map to the real API\n\nAll pricing data comes from `GET https://comparecloudcosts.com/api/v1/pricing` with header `X-API-Key: <CCC_API_KEY>` (documented in the \"Public API\" section of https://comparecloudcosts.com/docs). The endpoint is a faceted filter over the pricing database; the mappings below follow its server-side filter semantics exactly.\n\n### `compare_cloud_pricing`\n\n| Tool argument | API parameter | Notes |\n| --- | --- | --- |\n| `category` | `product` | The API has **no** category filter that accepts these values — its `category` parameter matches per-record labels like \"General purpose\". The category lens is the `product` parameter: `vm→compute`, `database→database`, `serverless→serverless`, `storage→storage`, `ai→ai`, `gpu→gpu`, `containers→containers`, `app-hosting→app-hosting`. (The API also special-cases `gpu` to GPU instances only, and `compute` to non-GPU.) Skipping this mapping would silently default every query to `compute`. |\n| `provider` | `provider` | Provider slugs pass through unchanged (`aws`, `azure`, `gcp`, …). |\n| `min_vcpu` | `minVcpu` | Numeric minimum. |\n| `min_ram_gb` | `minMemory` | Numeric minimum, GB. |\n| `region` | `geography` | The API has no region-slug parameter. Region IDs (`us-east-1`, `eu-west-1`, `sa-east-1`), Azure location names, and place names are translated to the API's geography buckets (`north america`, `south america`, `europe`, `asia pacific`, `middle east & africa`). Bucket values are sent **lowercase** — the API compares them against `LOWER(geography)` without lowercasing its input (verified against the production API). `global`/empty means no geography filter. Unrecognized strings pass through. |\n\nResults are ordered by price ascending (cheapest first) by the API. The server requests a 500-record page and returns the total count plus the 50 lowest-priced records, trimmed to the comparison-relevant fields.\n\n### `search_ai_models`\n\n`product=ai` plus `provider` (passed through) and `model_family` → the API's free-text `search` parameter. Records are returned with their `attributes` (modality, model tier, etc.); token prices are per the record's `unit` (typically per 1M tokens).\n\n### `estimate_workload_architecture`\n\nWired to the site's real estimator: `POST https://comparecloudcosts.com/api/workloads` with `{ \"workloadId\": \"<id>\" }`, which returns per-provider monthly totals and a component breakdown (instance types, quantities, monthly prices) computed from catalog pricing records (refreshed about once a week). The tool returns those totals and components as-is. Unknown IDs return the API's \"Workload not found\" plus the list of valid IDs — numbers are never invented.\n\n### `lookup_datacenter_compliance`\n\nRegional availability is computed from the site's facets endpoint, `GET https://comparecloudcosts.com/api/facets?product=compute[&geography=…]` (the same endpoint that powers the website's filter sidebar), which returns catalog-wide record counts per geography and per provider with proper faceted-search semantics. This is deliberately **not** derived from a sample of pricing records — the pricing endpoint returns records cheapest-first, which badly under-reports non-US geographies.\n\n**Honest limitation:** per-datacenter compliance certifications (SOC 2, ISO 27001, HIPAA, PCI-DSS, FedRAMP, GDPR) are **not** exposed by any public API — the pricing records carry no certification fields. When a `compliance_standard` is requested, the tool says so explicitly and points to https://comparecloudcosts.com/datacenters and https://comparecloudcosts.com/compliance instead of fabricating coverage.\n\nAlso note: at the time of writing, the catalog's geography tagging for compute records is concentrated in North America (with a small Asia Pacific set), so geography-filtered queries for other regions may return zero records. That is the catalog's real coverage, reported as-is.\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnpm start            # stdio server on dist/index.js\nnode test/smoke.mjs  # optional smoke test (set CCC_SMOKE_KEY to include API calls)\n```\n\n## Registry / directory files\n\n- `server.json` — official MCP Registry manifest (`com.comparecloudcosts/mcp-server`); the matching `mcpName` field is in `package.json`, as the Registry requires.\n- `glama.json` — Glama ownership-claim file (maintainer: the repository owner).\n\n## License\n\nMIT\n","readmeFilename":"README.md","homepage":"https://comparecloudcosts.com/mcp","keywords":["mcp","model-context-protocol","cloud-pricing","finops","cloud-costs","aws","azure","gcp"],"repository":{"url":"git+https://github.com/rodrigo-orzari/ccc-mcp-server.git","type":"git"},"author":{"name":"Rodrigo Orzari"},"bugs":{"url":"https://github.com/rodrigo-orzari/ccc-mcp-server/issues"},"license":"MIT"}