gcp-mcp

MCP.Pizza Chef: eniayomi

The gcp-mcp is a Model Context Protocol server that allows AI assistants like Claude to query and manage Google Cloud Platform resources using natural language. It supports multiple GCP projects, multi-region environments, and ensures secure credential handling by running locally with your GCP credentials. This server enables seamless conversational interaction with GCP, improving cloud resource management through AI-driven workflows.

Use This MCP server To

Query GCP resources using natural language commands Modify GCP resource configurations conversationally Manage multiple GCP projects in one interface Perform multi-region GCP resource operations Securely handle GCP credentials locally without exposure Automate cloud resource management via AI assistants Integrate GCP management into AI chat workflows Retry failed GCP API calls automatically for reliability

README

GCP MCP

A Model Context Protocol (MCP) server that enables AI assistants like Claude to interact with your Google Cloud Platform environment. This allows for natural language querying and management of your GCP resources during conversations.

GCP MCP Demo

Features

  • πŸ” Query and modify GCP resources using natural language
  • ☁️ Support for multiple GCP projects
  • 🌐 Multi-region support
  • πŸ” Secure credential handling (no credentials are exposed to external services)
  • πŸƒβ€β™‚οΈ Local execution with your GCP credentials
  • πŸ”„ Automatic retries for improved reliability

Prerequisites

  • Node.js
  • Claude Desktop/Cursor/Windsurf
  • GCP credentials configured locally (application default credentials)

Installation

  1. Clone the repository:
git clone https://github.com/eniayomi/gcp-mcp
cd gcp-mcp
  1. Install dependencies:
npm install

Configuration

Claude Desktop

  1. Open Claude desktop app and go to Settings -> Developer -> Edit Config

  2. Add the following entry to your claude_desktop_config.json:

via npm:

{
  "mcpServers": {
    "gcp": {
      "command": "sh",
      "args": ["-c", "npx -y gcp-mcp"]
    }
  }
}

If you installed from source:

{
  "mcpServers": {
    "gcp": {
      "command": "npm",
      "args": [
        "--silent",
        "--prefix",
        "/path/to/gcp-mcp",
        "start"
      ]
    }
  }
}

Replace /path/to/gcp-mcp with the actual path to your project directory if using source installation.

Cursor

  1. Open Cursor and go to Settings (⌘,)
  2. Navigate to AI -> Model Context Protocol
  3. Add a new MCP configuration:
{
  "gcp": {
    "command": "npx -y gcp-mcp"
  }
}

Windsurf

  1. Open ~/.windsurf/config.json (create if it doesn't exist)
  2. Add the MCP configuration:
{
  "mcpServers": {
    "gcp": {
      "command": "npx -y gcp-mcp"
    }
  }
}

GCP Setup

  1. Set up GCP credentials:

    • Set up application default credentials using gcloud auth application-default login
  2. Refresh your AI assistant (Claude Desktop/Cursor/Windsurf)

Usage

Start by selecting a project or asking questions like:

  • "List all GCP projects I have access to"
  • "Show me all Cloud SQL instances in project X"
  • "What's my current billing status?"
  • "Show me the logs from my Cloud Run services"
  • "List all GKE clusters in us-central1"
  • "Show me all Cloud Storage buckets in project X"
  • "What Cloud Functions are deployed in us-central1?"
  • "List all Cloud Run services"
  • "Show me BigQuery datasets and tables"

Available Tools

  1. run-gcp-code: Execute GCP API calls using TypeScript code
  2. list-projects: List all accessible GCP projects
  3. select-project: Select a GCP project for subsequent operations
  4. get-billing-info: Get billing information for the current project
  5. get-cost-forecast: Get cost forecast for the current project
  6. get-billing-budget: Get billing budgets for the current project
  7. list-gke-clusters: List all GKE clusters in the current project
  8. list-sql-instances: List all Cloud SQL instances in the current project
  9. get-logs: Get Cloud Logging entries for the current project

Example Interactions

  1. List available projects:
List all GCP projects I have access to
  1. Select a project:
Use project my-project-id
  1. Check billing status:
What's my current billing status?
  1. View logs:
Show me the last 10 log entries from my project

Supported Services

  • Google Compute Engine
  • Cloud Storage
  • Cloud Functions
  • Cloud Run
  • BigQuery
  • Cloud SQL
  • Google Kubernetes Engine (GKE)
  • Cloud Logging
  • Cloud Billing
  • Resource Manager
  • More coming soon...

Troubleshooting

To see logs:

tail -n 50 -f ~/Library/Logs/Claude/mcp-server-gcp.log

Common issues:

  1. Authentication errors: Ensure you've run gcloud auth application-default login
  2. Permission errors: Check IAM roles for your account
  3. API errors: Verify that required APIs are enabled in your project

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

gcp-mcp FAQ

How does gcp-mcp handle GCP credentials securely?
It runs locally using your configured GCP application default credentials, ensuring no credentials are exposed externally.
Can gcp-mcp manage multiple GCP projects simultaneously?
Yes, it supports multiple GCP projects for comprehensive cloud management.
Does gcp-mcp support multi-region GCP environments?
Yes, it can operate across multiple GCP regions to manage distributed resources.
What AI assistants are compatible with gcp-mcp?
It is designed to work with AI assistants like Claude, and can be integrated with others supporting MCP such as GPT-4 and Gemini.
How does gcp-mcp improve reliability in API calls?
It includes automatic retries for failed requests to enhance operation stability.
What are the prerequisites for installing gcp-mcp?
Node.js, Claude Desktop/Cursor/Windsurf, and locally configured GCP credentials are required.
Is gcp-mcp limited to read-only queries?
No, it supports both querying and modifying GCP resources via natural language.
How is gcp-mcp installed and configured?
Clone the repo, install dependencies with npm, and configure your AI assistant to connect to the server.