mcpField
C
Cloudpulse Mcp Server

Cloudpulse Mcp Server

本地服务
github.com/Galadriel-Tech-Solutions云与基础设施128 周前更新

关于 Cloudpulse Mcp Server

CloudPulse 是面向 AI Agent 和开发者的 MCP 服务,用于排查 AWS、Vercel、GCP 与 Cloudflare 上的基础设施问题。它整合服务拓扑、日志、连通性检查和配额信息,并从环境读取凭据而不存储凭据。

主要功能

  1. 01统一云服务拓扑
  2. 02关联 Vercel 与 AWS 日志
  3. 03服务连通性诊断
  4. 04云资源配额检查
  5. 05只读凭据处理

适用场景

  1. 01绘制已配置云平台的服务图
  2. 02跨 Vercel 与 AWS 日志追踪故障
  3. 03检查服务无法访问资源的原因
  4. 04发现接近配额上限的资源

MCP 相关

向 MCP 客户端提供拓扑发现、日志关联、连通性诊断和资源限额检查工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"lhf552004-cloudpulse": {
"command": "npx",
"args": [
"-y",
"cloudpulse-mcp"
],
"env": {
"AWS_ACCESS_KEY_ID": "<AWS_ACCESS_KEY_ID>",
"AWS_SECRET_ACCESS_KEY": "<AWS_SECRET_ACCESS_KEY>",
"AWS_REGION": "<AWS_REGION>",
"VERCEL_TOKEN": "<VERCEL_TOKEN>",
"GOOGLE_APPLICATION_CREDENTIALS": "<GOOGLE_APPLICATION_CREDENTIALS>",
"GOOGLE_CLOUD_PROJECT": "<GOOGLE_CLOUD_PROJECT>",
"CLOUDFLARE_API_TOKEN": "<CLOUDFLARE_API_TOKEN>",
"CLOUDFLARE_ACCOUNT_ID": "<CLOUDFLARE_ACCOUNT_ID>"
}
}
}
}
启动命令npx -y cloudpulse-mcp
需要配置的环境变量
AWS_ACCESS_KEY_ID密钥AWS access key ID
AWS_SECRET_ACCESS_KEY密钥AWS secret access key
AWS_REGIONAWS region (e.g. us-east-1)
VERCEL_TOKEN密钥Vercel personal access token
GOOGLE_APPLICATION_CREDENTIALS密钥Path to GCP service account JSON file
GOOGLE_CLOUD_PROJECTGCP project ID
CLOUDFLARE_API_TOKEN密钥Cloudflare API token
CLOUDFLARE_ACCOUNT_IDCloudflare account ID

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmcloudpulse-mcp0.1.2

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
platformsarray否要包含的平台。省略则自动检测所有已配置的平台。
aws_regionstring否要扫描的 AWS 区域。默认使用 AWS_REGION 环境变量,或 us-east-1。

详细介绍

CloudPulse MCP Server

为 AI Agent 提供跨云基础设施可见性。无需离开编辑器,即可诊断 AWS、Vercel、GCP 和 Cloudflare 上的问题。

许可证:MIT Node.js ≥18


为什么选择 CloudPulse?

痛点CloudPulse 的解决方案
Vercel 上出现前端错误 → 必须打开 AWS 控制台get_correlated_logs 自动合并两边的时间线
AI 无法判断安全组是否阻止了 5432 端口diagnose_service_link 实时检查安全组规则
悄然触及 Lambda 并发限制check_resource_limits 在用量达到 80% 时发出警告
调试前不了解拓扑结构list_cloud_topology 可在几秒内映射所有活动服务

快速开始

1. 使用 npx 安装 / 运行
npx cloudpulse-mcp

服务器会自动检测机器上已有的凭据(AWS CLI、环境变量等)。

2. 配置 AI 客户端

Claude Desktop – 添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "cloudpulse": {
      "command": "npx",
      "args": ["-y", "cloudpulse-mcp"],
      "env": {
        "VERCEL_TOKEN": "<your-vercel-token>",
        "AWS_PROFILE": "default",
        "AWS_REGION": "us-east-1"
      }
    }
  }
}

Cursor – 添加到项目中的 .cursor/mcp.json:

{
  "mcpServers": {
    "cloudpulse": {
      "command": "npx",
      "args": ["-y", "cloudpulse-mcp"],
      "env": {
        "VERCEL_TOKEN": "<your-vercel-token>",
        "AWS_REGION": "us-east-1"
      }
    }
  }
}

VS Code + GitHub Copilot(Agent 模式) – 需要 VS Code 1.99+ 和 GitHub Copilot 扩展。

首先,构建项目:

npm run build

然后在此仓库中创建 .vscode/mcp.json:

{
  "servers": {
    "cloudpulse": {
      "type": "stdio",
      "command": "node",
      "args": ["${workspaceFolder}/dist/index.js"],
      "env": {
        "VERCEL_TOKEN": "${env:VERCEL_TOKEN}",
        "AWS_REGION": "${env:AWS_REGION}",
        "AWS_PROFILE": "${env:AWS_PROFILE}"
      }
    }
  }
}

${env:VAR} 会从 shell 环境中读取,无需将密钥存入源代码管理。

使用方法:打开 Copilot Chat,切换到 Agent 模式,点击 选择工具 并启用 CloudPulse 工具,然后直接提出问题:

Why can't my Vercel project reach AWS RDS instance "my-db"?

凭据与安全

CloudPulse 遵循只读、不存储政策:

凭据提供方式
AWSAWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY、AWS_PROFILE 或 EC2 实例角色
VercelVERCEL_TOKEN(来自 vercel.com/account/tokens 的个人访问令牌)
Vercel TeamVERCEL_TEAM_ID(可选)
GCPGOOGLE_APPLICATION_CREDENTIALS
CloudflareCLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID

不会记录或存储任何凭据。 所有值均在调用时从环境变量中读取。


可用工具

list_cloud_topology

扫描所有已配置的平台,并返回统一的服务映射。

Input (all optional):
  platforms       – ["aws", "vercel"]  filter platforms
  aws_region      – "us-east-1"
get_correlated_logs

从 Vercel 和 AWS CloudWatch 获取并合并日志,形成统一时间线。

Input:
  start_time *    – ISO-8601 or epoch ms  e.g. "2024-06-01T10:00:00Z"
  end_time        – defaults to now
  trace_id        – filter by trace/request ID across all sources
  aws_log_group_prefix  – default "/aws/lambda"
  vercel_project  – project name or ID
  aws_region
diagnose_service_link

检查服务 A 无法访问资源 B 的原因。

Input:
  source_service *  – "vercel" | "lambda" | "ec2" | ...
  target_resource * – "<type>:<id>"  e.g. "aws-rds:my-db", "external-api:https://..."
  port              – auto-detected (5432 for RDS, 443 for APIs, ...)
  vercel_project
  aws_region

执行的检查:

  • Vercel 环境变量是否包含 DATABASE_URL / DB_URL
  • AWS 安全组是否允许所需端口上的入站 TCP 流量
  • 外部 API HEAD 可达性测试
check_resource_limits

查询配额,并标记接近限制的资源。

Input (all optional):
  platforms        – filter platforms
  warn_threshold   – usage % to warn at (default 80)
  aws_region

路线图

阶段状态范围
1 – MVP✅ 已完成Vercel + AWS(Lambda、RDS、CloudWatch、安全组、S3)
2 – 扩展✅ 已完成GCP Cloud Run + Cloud SQL + Logging;Cloudflare Workers + Pages;S3 CORS
3 – 智能化🔜针对 CORS、504 超时、冷启动循环的预置诊断手册

开发

git clone https://github.com/Galadriel-Tech-Solutions/cloudpulse-mcp
cd cloudpulse-mcp
npm install
npm run dev        # run from source with tsx
npm run build      # compile to dist/
项目结构
src/
├── index.ts                     # MCP server + tool registration
├── types.ts                     # shared domain types
├── utils.ts                     # concurrency, formatting helpers
├── providers/
│   ├── aws/
│   │   ├── index.ts             # client factory + isAWSConfigured()
│   │   ├── cloudwatch.ts        # CloudWatch Logs
│   │   ├── lambda.ts            # Lambda function listing
│   │   ├── rds.ts               # RDS/Aurora instances & clusters
│   │   ├── ec2.ts               # Security Group inspection
│   │   ├── s3.ts                # S3 buckets + CORS checks
│   │   └── quotas.ts            # Service Quotas API
│   ├── gcp/
│   │   ├── index.ts             # isGCPConfigured() + resolveGCPProject()
│   │   ├── cloud-run.ts         # Cloud Run services
│   │   ├── cloud-sql.ts         # Cloud SQL instances (sqladmin v1beta4)
│   │   └── logging.ts           # Cloud Logging
│   ├── cloudflare/
│   │   └── index.ts             # Pages, Workers, Worker tail logs (WebSocket)
│   └── vercel/
│       └── index.ts             # Vercel REST API v9
└── tools/
    ├── list-cloud-topology.ts
    ├── get-correlated-logs.ts
    ├── diagnose-service-link.ts
    └── check-resource-limits.ts
添加新的云平台
  1. 创建 src/providers/<platform>/index.ts,并导出:
    • is<Platform>Configured(): boolean
    • 提供商专属的数据函数
  2. 将这些函数接入 src/tools/ 下的相关工具
  3. 将平台名称添加到 src/types.ts 中的 CloudPlatform 联合类型

许可证

MIT © CloudPulse Contributors

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。