关于 Cloudpulse Mcp Server
CloudPulse 是面向 AI Agent 和开发者的 MCP 服务,用于排查 AWS、Vercel、GCP 与 Cloudflare 上的基础设施问题。它整合服务拓扑、日志、连通性检查和配额信息,并从环境读取凭据而不存储凭据。
主要功能
- 01统一云服务拓扑
- 02关联 Vercel 与 AWS 日志
- 03服务连通性诊断
- 04云资源配额检查
- 05只读凭据处理
适用场景
- 01绘制已配置云平台的服务图
- 02跨 Vercel 与 AWS 日志追踪故障
- 03检查服务无法访问资源的原因
- 04发现接近配额上限的资源
MCP 相关
向 MCP 客户端提供拓扑发现、日志关联、连通性诊断和资源限额检查工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y cloudpulse-mcpAWS_ACCESS_KEY_ID密钥AWS access key IDAWS_SECRET_ACCESS_KEY密钥AWS secret access keyAWS_REGIONAWS region (e.g. us-east-1)VERCEL_TOKEN密钥Vercel personal access tokenGOOGLE_APPLICATION_CREDENTIALS密钥Path to GCP service account JSON fileGOOGLE_CLOUD_PROJECTGCP project IDCLOUDFLARE_API_TOKEN密钥Cloudflare API tokenCLOUDFLARE_ACCOUNT_IDCloudflare account ID本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
4收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| platforms | array | 否 | 要包含的平台。省略则自动检测所有已配置的平台。 |
| aws_region | string | 否 | 要扫描的 AWS 区域。默认使用 AWS_REGION 环境变量,或 us-east-1。 |
详细介绍
CloudPulse MCP Server
为 AI Agent 提供跨云基础设施可见性。无需离开编辑器,即可诊断 AWS、Vercel、GCP 和 Cloudflare 上的问题。
为什么选择 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 遵循只读、不存储政策:
| 凭据 | 提供方式 |
|---|---|
| AWS | AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY、AWS_PROFILE 或 EC2 实例角色 |
| Vercel | VERCEL_TOKEN(来自 vercel.com/account/tokens 的个人访问令牌) |
| Vercel Team | VERCEL_TEAM_ID(可选) |
| GCP | GOOGLE_APPLICATION_CREDENTIALS |
| Cloudflare | CLOUDFLARE_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
添加新的云平台
- 创建
src/providers/<platform>/index.ts,并导出:is<Platform>Configured(): boolean- 提供商专属的数据函数
- 将这些函数接入
src/tools/下的相关工具 - 将平台名称添加到
src/types.ts中的CloudPlatform联合类型
许可证
MIT © CloudPulse Contributors
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。