Google Cloud MCP Server
Provides examples of how to interact with the MCP server's HTTP transport using curl commands for initializing connections, making requests, and accessing server-sent events.
Provides access to Google Cloud services including Logging, Spanner, Monitoring, and Cloud Trace. Enables querying logs, executing Spanner database queries, retrieving monitoring metrics, analyzing trace data, and discovering Google Cloud resources.
Enables executing SQL queries on Spanner databases, listing databases and instances, retrieving schema information, and obtaining query execution metrics.
Used for package management in the project, allowing installation of dependencies, building, and running the MCP server.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Google Cloud MCP Server show me recent errors from the production logs"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Cloud MCP Server
A Model Context Protocol (MCP) server for Google Cloud services including Logging, Spanner, Monitoring, and Cloud Trace.
Features
Google Cloud Logging: Query logs, list log entries, and search across different log sources
Google Cloud Spanner: Execute queries, list databases and instances, get schema information
Google Cloud Monitoring: Query metrics, list metric descriptors, get monitoring data
Google Cloud Trace: Retrieve trace data and analyze distributed system performance
Resource Discovery: Automatically discover and list available Google Cloud resources
Project Management: Tools for managing Google Cloud project settings
Related MCP server: Cloud Logging API Server
Transport Support
This server supports two transport modes:
1. Stdio Transport (Default)
The traditional MCP stdio transport for use with MCP clients like Claude Desktop.
2. HTTP Transport (New!)
A web-based HTTP transport implementing the MCP Streamable HTTP specification.
Installation
# Clone the repository
git clone <repository-url>
cd google-cloud-mcp
# Install dependencies
pnpm install
# Build the project
pnpm buildConfiguration
Environment Variables
GOOGLE_APPLICATION_CREDENTIALS: Path to your Google Cloud service account key fileGOOGLE_CLOUD_PROJECT: Your default Google Cloud project IDGOOGLE_CLIENT_EMAIL: Service account email (alternative to credentials file)GOOGLE_PRIVATE_KEY: Service account private key (alternative to credentials file)LAZY_AUTH: Set to 'false' to initialize auth immediately (default: 'true')DEBUG: Set to 'true' for debug loggingMCP_TRANSPORT: Transport type - 'stdio' (default) or 'http'MCP_HTTP_PORT: Port for HTTP transport (default: 3000)
Google Cloud Authentication
You can authenticate in several ways:
Service Account Key File (Recommended):
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account-key.jsonEnvironment Variables:
export GOOGLE_CLIENT_EMAIL=your-service-account@project.iam.gserviceaccount.com export GOOGLE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"Application Default Credentials: If running on Google Cloud, ADC will be used automatically.
Usage
Using Stdio Transport (Default)
# Start with stdio transport
pnpm start
# Or explicitly specify stdio
MCP_TRANSPORT=stdio pnpm startUsing HTTP Transport
# Start with HTTP transport
MCP_TRANSPORT=http pnpm start
# Or with custom port
MCP_TRANSPORT=http MCP_HTTP_PORT=8080 pnpm startWhen using HTTP transport, the server will be available at:
MCP Endpoint:
http://127.0.0.1:3000/mcpHealth Check:
http://127.0.0.1:3000/health
HTTP Transport Features
The HTTP transport implements the MCP Streamable HTTP specification with:
Session Management: Automatic session ID assignment and tracking
Server-Sent Events (SSE): For real-time communication and server-initiated messages
Request/Response Handling: Proper JSON-RPC 2.0 message handling
Security: Origin validation to prevent DNS rebinding attacks
CORS Support: Cross-origin requests support for web applications
Connection Management: Automatic cleanup of stale connections
HTTP Transport Usage Examples
Initialize Connection
curl -X POST http://127.0.0.1:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {
"name": "test-client",
"version": "1.0.0"
}
}
}'The response will include a Mcp-Session-Id header that should be used in subsequent requests.
Make Requests with Session
curl -X POST http://127.0.0.1:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Mcp-Session-Id: <session-id>" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}'Server-Sent Events Stream
curl -X GET http://127.0.0.1:3000/mcp \
-H "Accept: text/event-stream" \
-H "Mcp-Session-Id: <session-id>"Available Tools
Logging Tools
gcp-logging-query: Query Google Cloud Logsgcp-logging-list-entries: List log entries with filters
Spanner Tools
gcp-spanner-execute-query: Execute SQL queries on Spanner databasesgcp-spanner-list-databases: List Spanner databasesgcp-spanner-list-instances: List Spanner instancesgcp-spanner-get-schema: Get database schema informationgcp-spanner-query-count: Get query execution metrics
Monitoring Tools
gcp-monitoring-query: Query monitoring metricsgcp-monitoring-list-metrics: List available metric descriptorsgcp-monitoring-get-resource-metrics: Get metrics for specific resources
Trace Tools
get-trace: Retrieve trace data by trace IDsearch-traces: Search for traces with filtersget-trace-summary: Get summary statistics for traces
Project Tools
gcp-get-project-info: Get current project informationgcp-list-enabled-services: List enabled APIs and services
Available Resources
Logging Resources
gcp://logging/logs/{logName}: Individual log resourcesgcp://logging/entries: Recent log entries
Spanner Resources
gcp://spanner/instances: List of Spanner instancesgcp://spanner/databases/{instanceId}: Databases in an instancegcp://spanner/schema/{instanceId}/{databaseId}: Database schema
Monitoring Resources
gcp://monitoring/metrics: Available monitoring metricsgcp://monitoring/resources: Monitored resource types
Trace Resources
gcp://trace/traces: Recent trace data
Available Prompts
analyze-logs: Analyze log patterns and errorsquery-optimization: Optimize Spanner queriestroubleshoot-performance: Troubleshoot application performance issuessecurity-analysis: Analyze security-related logs and traces
Development
# Install dependencies
pnpm install
# Run in development mode with stdio transport
pnpm dev
# Run in development mode with HTTP transport
MCP_TRANSPORT=http pnpm dev
# Build the project
pnpm build
# Run tests
pnpm test
# Lint the code
pnpm lint
# Format the code
pnpm formatTroubleshooting
Authentication Issues
Check your credentials:
gcloud auth application-default loginVerify service account permissions:
Logging Viewer
Spanner Database User
Monitoring Viewer
Cloud Trace User
Test authentication:
DEBUG=true pnpm start
HTTP Transport Issues
Port conflicts: If port 3000 is in use, specify a different port:
MCP_HTTP_PORT=8080 MCP_TRANSPORT=http pnpm startCORS issues: The server only accepts requests from localhost, 127.0.0.1, and .local domains for security.
Session management: Make sure to include the
Mcp-Session-Idheader in requests after initialization.
Performance Issues
Enable lazy authentication:
LAZY_AUTH=true pnpm startReduce logging verbosity: Remove
DEBUG=truefrom production environments.
Security Considerations
HTTP Transport Security
The server binds only to
127.0.0.1(localhost) by defaultOrigin header validation prevents DNS rebinding attacks
Sessions are automatically cleaned up
Request timeouts prevent resource exhaustion
Google Cloud Security
Use service accounts with minimal required permissions
Regularly rotate service account keys
Monitor access logs for unusual activity
Use VPC-native clusters when possible
License
MIT License - see LICENSE file for details.
Available Tools
17 toolsexecute-spanner-queryD
Inputs: sql (required), instanceId, databaseId, params.
find-traces-from-logsD
Inputs: filter (required), projectId, limit.
get-project-idD
Inputs: no named parameters.
get-traceD
Inputs: traceId (required), projectId.
list-metric-typesD
Inputs: filter, pageSize, timeout.
list-spanner-databasesD
Inputs: instanceId (required).
list-spanner-instancesD
Inputs: _dummy.
list-spanner-tablesD
Inputs: instanceId, databaseId.
list-tracesD
Inputs: projectId, filter, limit, startTime.
logs-time-rangeD
Inputs: startTime (required), endTime, filter, limit.
natural-language-metrics-queryD
Inputs: query (required), startTime, endTime, alignmentPeriod.
natural-language-spanner-queryD
Inputs: query (required), instanceId, databaseId.
natural-language-trace-queryD
Inputs: query (required), projectId.
query-logsD
Inputs: filter (required), limit.
query-metricsD
Inputs: filter (required), startTime (required), endTime, alignmentPeriod.
set-project-idD
Inputs: projectId (required).
spanner-query-countD
Inputs: instanceId, databaseId, queryType, status, +3 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 17 tools
Most tools have distinct purposes targeting different Google Cloud services (Spanner, Cloud Trace, Cloud Monitoring, Cloud Logging), though some overlap exists between query tools like 'query-logs' and 'find-traces-from-logs' which might cause confusion. The natural language query tools for different services are clearly differentiated by their target domains.
The naming follows a mostly consistent verb-noun pattern with hyphens, but there are inconsistencies: 'get-project-id' and 'set-project-id' use a different structure than others, and some tools use compound nouns (e.g., 'natural-language-metrics-query') while others are simpler. The overall pattern is readable but mixed.
With 17 tools, the count is slightly high but reasonable for covering multiple Google Cloud services like Spanner, Trace, Logging, and Monitoring. It provides a comprehensive surface without being overwhelming, though it borders on the heavy side for a single server.
The tool set covers querying and listing operations for Spanner, Trace, Logging, and Monitoring, but lacks obvious CRUD operations (e.g., create/update/delete resources) and management functions. This creates gaps for full lifecycle management, though core query workflows are supported.
Maintenance
Related MCP Connectors
The BigQuery remote MCP server is a fully managed service that uses the Model Context Protocol to connect AI applications and LLMs to BigQuery data sources. It provides secure, standardized tools for AI agents to list datasets and tables, retrieve schemas, generate and execute SQL queries through natural language, and analyze data—enabling direct access to enterprise analytics data without requiring manual SQL coding.
The Google Compute Engine MCP server is a fully-managed Model Context Protocol server that provides tools to manage Google Compute Engine resources through AI agents. It enables capabilities including instance management (creating, starting, stopping, resetting, listing), disk management, handling instance templates and group managers, viewing machine and accelerator types, managing images, and accessing reservation and commitment information. The server operates as a zero-deployment, enterprise-grade endpoint at https://compute.googleapis.com/mcp with built-in IAM-based security.
The Google GKE MCP server is a managed Model Context Protocol server that provides AI applications with tools to manage Google Kubernetes Engine (GKE) clusters and Kubernetes resources. It exposes a structured, discoverable interface that allows AI agents to interact with GKE and Kubernetes APIs, enabling them to inspect cluster configurations, retrieve Kubernetes resource YAMLs, monitor operations like cluster upgrades, diagnose issues, and optimize costs—all without needing to parse text output or use complex kubectl commands.
MCP server for querying and analyzing data from ad platforms, analytics tools, and spreadsheets
Related MCP Servers
- AlicenseCqualityDmaintenanceA Model Context Protocol server that connects to Google Cloud services, allowing users to query logs, interact with Spanner databases, and analyze Cloud Monitoring metrics through natural language interaction.40196 npm80Apache 2.0
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables interaction with Google Cloud Logging API, allowing users to write, read, and manage log entries and configurations through natural language.-
- FlicenseNot gradedqualityDmaintenanceAn MCP server that provides access to Google Cloud Monitoring API, enabling interaction with cloud resources monitoring data through natural language commands.-
- FlicenseNot gradedqualityDmaintenanceAn MCP Server that provides a natural language interface to Google Cloud Resource Settings API, enabling users to view and manage settings for Google Cloud resources through conversation.-