npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

gcp-billing-mcp-server

v0.1.4

Published

MCP server for querying Google Cloud pricing data from memory

Downloads

76

Readme

GCP Billing MCP Server (In-Memory)

A Model Context Protocol (MCP) server for querying Google Cloud Platform (GCP) pricing data.

This server loads a pre-generated data file () into memory upon startup and exposes tools to search and filter this information via the MCP protocol.

Prerequisites

  1. Node.js: Version 18 or higher.
  2. Data File: You need to generate the file (NOT the version!). To do this, use the script from the original project (or your equivalent).
    • Ensure dependencies are installed ( in the original project).
    • Create a file with your .
    • Run (this can take hours). **Verify this script saves **.
    • Copy the resulting file into the folder of this project ().

Installation

# Install globally (optional)
npm install -g @your-scope/gcp-billing-mcp-server

# Or clone the repo and install locally
git clone https://your-repo-url.com.git
cd gcp-billing-mcp-server
npm install
npm run build

Configuration

The server looks for the JSON data file using the environment variable . If not specified, it defaults to .

You can define this when running the server:

GCP_PRICING_DATA_JSON_PATH="/path/to/your/gcp_structured_pricing_data.json" gcp-billing-mcp-server

Or create a file in the directory where you run the server:

# .env
GCP_PRICING_DATA_JSON_PATH=/path/to/your/gcp_structured_pricing_data.json

Running the Server

If installed globally:

gcp-billing-mcp-server

If cloned locally:

npm start
# Or for development with auto-rebuild:
npm run dev

The server will load the JSON file into memory on startup (this might take a moment depending on file size and system memory) and then listen for MCP connections via stdio.

Usage with MCP Clients

Configure your MCP client (like Claude Desktop, VS Code Copilot Chat, etc.) to use this server.

Example for Claude Desktop ():

{
  "mcpServers": {
    "gcp-billing": {
      "command": "gcp-billing-mcp-server", // Or the path to the executable if not global
      "env": {
        // Optional: Specify the path if not using the default location
        // "GCP_PRICING_DATA_JSON_PATH": "/path/to/your/data.json"
      }
    }
  }
}

Example for VS Code (settings.json or .vscode/mcp.json):

{
  "mcp": {
    "servers": {
      "gcp-billing": {
        "command": "gcp-billing-mcp-server", // Or the path to the executable
        "env": {
          // "GCP_PRICING_DATA_JSON_PATH": "/path/to/your/data.json"
        }
      }
    }
  }
}

Exposed Tools

search_gcp_pricing

Searches the in-memory GCP pricing data based on specified criteria.

Description: Performs a filtered search on the loaded GCP pricing data. Requires a region and at least one search criterion (keywords in OR in ). Returns all matching SKUs. Warning: The response can be very large.

Input Schema:

{
  "type": "object",
  "properties": {
    "region": {
      "type": "string",
      "description": "GCP region to filter by (mandatory, case-insensitive, e.g., us-central1, europe-west1, global)"
    },
    "displayNameKeywords": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Array of keywords to search in 'displayName' (AND logic, case-insensitive). Provide this OR taxonomyKeywords."
    },
    "taxonomyKeywords": {
      "type": "array",
      "items": { "type": "string" },
      "description": "Array of keywords to search in 'taxonomy_categories' (AND logic, partial match, case-insensitive). Provide this OR displayNameKeywords."
    }
    // Limit parameter removed
  },
  "required": ["region"]
}

Response: An array of JSON objects, each representing an SKU matching the criteria.

Model Recommendation: Due to the potentially very large size of the response (all matching SKUs are returned) and the need for subsequent calculation or summarization, it is highly recommended to use a powerful LLM with a large context window, such as Gemini 1.5 Pro, when interacting with this tool. Simpler models might struggle to process the full output.

Example Usage (in an MCP Client):

// Search for N1 VMs in us-central1
{
  "name": "search_gcp_pricing",
  "arguments": {
    "region": "us-central1",
    "displayNameKeywords": ["n1", "vm", "instance"]
  }
}

// Search for preemptible GPUs in europe-west4
{
  "name": "search_gcp_pricing",
  "arguments": {
    "region": "europe-west4",
    "taxonomyKeywords": ["gpu", "preemptible"]
  }
}

Development

npm install
npm run build
npm run dev # Runs in watch mode

License

MIT