关于 Google Cloud MCP Server
Google Cloud MCP Server 是一个 MCP 服务,用于连接 Google Cloud 服务,并为计费、日志、监控、追踪等资源提供上下文与工具。它面向需要通过自然语言查询和分析 GCP 资源的开发与运维人员。
主要功能
- 01覆盖计费、日志、监控、追踪等八类服务
- 02计费成本分析与异常检测
- 03错误分组查询与趋势分析
- 04IAM 策略与权限检查
- 05Spanner 查询与表结构查看
适用场景
- 01查询项目近期成本并检查计费异常
- 02按严重级别检索日志或查询服务错误分组
- 03检查部署所需的 IAM 权限是否满足
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 Google Cloud 各服务的工具,例如 gcp-billing-* 与 gcp-logging-* 等。客户端可通过这些工具读取 GCP 资源信息。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Google Cloud MCP 服务
一个连接 Google Cloud 服务的 Model Context Protocol 服务,为与你的 Google Cloud 资源交互提供上下文和工具。
服务
支持的 Google Cloud 服务:
账单
管理和分析 Google Cloud 账单,并获取成本优化建议:
工具: gcp-billing-list-accounts、gcp-billing-get-account-details、gcp-billing-list-projects、gcp-billing-get-project-info、gcp-billing-list-services、gcp-billing-list-skus、gcp-billing-analyse-costs、gcp-billing-detect-anomalies、gcp-billing-cost-recommendations、gcp-billing-service-breakdown
示例提示词:
- “显示我的所有账单账号”
- “分析项目 my-app-prod-123 过去 30 天的成本”
- “为账单账号 billingAccounts/123456-789ABC-DEF012 生成成本建议”
- “检查项目 my-ecommerce-456 中的账单异常”
错误报告
监控和分析应用错误,并自动进行调查并提供修复建议:
工具: gcp-error-reporting-list-groups、gcp-error-reporting-get-group-details、gcp-error-reporting-analyse-trends
示例提示词:
- “显示项目 my-webapp-prod-789 过去一小时的错误组”
- “获取错误组 projects/my-app-123/groups/xyz789 的详细信息”
- “分析项目 analytics-prod-456 中服务 my-api 的错误趋势”
IAM
查询和分析 IAM 策略与权限:
工具: gcp-iam-get-project-policy、gcp-iam-test-project-permissions、gcp-iam-test-resource-permissions、gcp-iam-validate-deployment-permissions、gcp-iam-list-deployment-services、gcp-iam-analyse-permission-gaps
示例提示词:
- “获取项目 my-webapp-prod-123 的 IAM 策略”
- “测试我是否拥有项目 data-lake-456 中的 storage.buckets.create 权限”
- “检查项目 microservices-789 中 Cloud Run 的部署权限”
- “分析在项目 k8s-prod-321 的 GKE 集群中进行部署时的权限缺口”
日志记录
查询和筛选 Google Cloud Logging 中的日志条目:
工具: gcp-logging-query-logs、gcp-logging-query-time-range、gcp-logging-search-comprehensive
示例提示词:
- “显示项目 my-app-prod-123 过去一小时严重级别为 ERROR 的日志”
- “搜索项目 backend-456 中服务 my-api 包含‘timeout’的日志”
- “查询项目 compute-prod-789 中资源类型为 gce_instance 的日志”
Spanner
与 Google Cloud Spanner 数据库交互:
工具: gcp-spanner-execute-query、gcp-spanner-list-tables、gcp-spanner-list-instances、gcp-spanner-list-databases、gcp-spanner-query-natural-language、gcp-spanner-query-count
示例提示词:
- “列出项目 ecommerce-prod-123 中 Spanner 实例 my-instance 的所有数据库”
- “在项目 my-app-456 的数据库 user-db 中执行 SQL:SELECT COUNT(*) FROM users”
- “显示项目 retail-789 的数据库 inventory-db 中 orders 表的结构”
监控
从 Google Cloud Monitoring 检索并分析指标:
工具: gcp-monitoring-query-metrics、gcp-monitoring-list-metric-types、gcp-monitoring-query-natural-language
示例提示词:
- “显示项目 web-app-prod-123 过去 6 小时的 CPU 使用率指标”
- “列出项目 infrastructure-456 中 Compute Engine 可用的指标类型”
- “查询项目 backend-services-789 中实例的内存使用情况”
Profiler
使用 Google Cloud Profiler 分析应用性能:
工具: gcp-profiler-list-profiles、gcp-profiler-analyse-performance、gcp-profiler-compare-trends
示例提示词:
- “列出项目 my-java-app-123 过去 24 小时的 CPU 性能分析文件”
- “分析项目 backend-prod-456 中服务 my-api 的性能瓶颈”
- “比较项目 performance-test-789 中部署 v1.2 与 v1.3 的堆性能分析文件”
Trace
分析来自 Google Cloud Trace 的分布式跟踪:
工具: gcp-trace-get-trace、gcp-trace-list-traces、gcp-trace-find-from-logs、gcp-trace-query-natural-language
示例提示词:
- “获取项目 distributed-app-789 中 ID 为 abc123def456 的跟踪详情”
- “显示项目 microservices-prod-123 过去一小时内失败的跟踪”
- “查找项目 web-backend-456 中与跟踪 xyz789 相关的日志”
- “查询项目 ecommerce-prod-321 中服务 checkout-api 的跟踪”
快速开始
配置完成后,你可以使用自然语言与 Google Cloud 服务交互:
"What are my current billing costs for project my-webapp-prod-123?"
"Show me errors from project ecommerce-api-456 in the last hour"
"Check if I have permission to deploy to Cloud Run in project microservices-789"
"Find logs containing 'database timeout' from project backend-prod-321 yesterday"
"List Spanner databases in instance prod-db for project data-store-654"
"What's the CPU usage of Compute Engine instances in project infrastructure-987?"
身份验证
此服务支持两种 Google Cloud 身份验证方式:
-
服务账号密钥文件(推荐):将
GOOGLE_APPLICATION_CREDENTIALS环境变量设置为服务账号密钥文件的路径。这是标准的 Google Cloud 身份验证方式。 -
环境变量:直接设置
GOOGLE_CLIENT_EMAIL和GOOGLE_PRIVATE_KEY环境变量。这适用于不便存储密钥文件的环境。
如果已设置 GOOGLE_CLOUD_PROJECT 环境变量,服务也会使用该变量;否则,它会尝试从身份验证凭据中确定项目 ID。
安装
# Clone the repository
git clone https://github.com/krzko/google-cloud-mcp.git
cd google-cloud-mcp
# Install dependencies
pnpm install
# Build
pnpm build
向 Google Cloud 进行身份验证:
gcloud auth application-default login
在客户端中配置 mcpServers:
{
"mcpServers": {
"google-cloud-mcp": {
"command": "node",
"args": [
"/Users/foo/code/google-cloud-mcp/dist/index.js"
],
"env": {
"GOOGLE_APPLICATION_CREDENTIALS": "/Users/foo/.config/gcloud/application_default_credentials.json"
}
}
}
}
开发
启动服务
# Build the project
pnpm build
# Start the server
pnpm start
开发模式
# Build the project
pnpm build
# Start the server and inspector
npx -y @modelcontextprotocol/inspector node dist/index.js
故障排除
服务超时问题
如果使用 Smithery 运行服务时遇到超时问题,请尝试以下操作:
- 在配置中设置
debug: true以启用调试日志 - 确保设置了
lazyAuth: true,以延迟身份验证,直到实际需要时再进行 - 确保凭据文件可访问且有效
- 检查日志中是否有错误消息
重要: 服务运行仍需进行身份验证,但启用延迟加载后,服务会立即启动,并在需要时进行身份验证,而不是在初始化期间进行。
身份验证问题
此服务支持两种身份验证方式:
- 服务账号密钥文件:将
GOOGLE_APPLICATION_CREDENTIALS环境变量设置为服务账号密钥文件的路径 - 环境变量:设置
GOOGLE_CLIENT_EMAIL和GOOGLE_PRIVATE_KEY环境变量
如果遇到身份验证问题,请确保:
- 服务账号拥有必要的权限
- 密钥文件格式正确且可访问
- 环境变量设置正确
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。