Cloudpulse

io.github.lhf552004由 GitHub 账号 lhf552004 发布v0.1.2更新于 Oct 24, 2026

Cross-cloud observability for AI agents. Covers AWS, GCP, Vercel, and Cloudflare.

概览

AI 生成的概览

本地 MCP 服务器,让 AI 助手以只读方式查看 AWS、GCP、Vercel 和 Cloudflare,绘制服务拓扑、合并日志并诊断连通性。

可以做什么
将已配置的云平台服务汇总为统一拓扑视图,可按平台和区域筛选。抓取并合并 Vercel 与 AWS CloudWatch 日志为一条时间线,可按时间范围、trace ID、日志组前缀和项目筛选。诊断某服务为何无法访问另一资源,检查 Vercel 环境变量、AWS 安全组规则和外部端点可达性。查询配额并标记接近用量上限的资源,告警阈值可配置。
适用场景
适合排查跨云问题,例如 Vercel 前端无法连接 AWS 数据库,或希望助手在不逐个打开各云控制台的情况下了解基础设施和配额余量。
运行要求
通过 npx 在本地运行(需要 Node.js)。凭据从环境变量或本机已有配置读取:AWS_ACCESS_KEY_ID 与 AWS_SECRET_ACCESS_KEY 或 AWS 配置文件、AWS_REGION、VERCEL_TOKEN、GOOGLE_APPLICATION_CREDENTIALS 与 GOOGLE_CLOUD_PROJECT、CLOUDFLARE_API_TOKEN 与 CLOUDFLARE_ACCOUNT_ID。需要访问各云厂商 API 的网络。
安装前请注意
需要权限较广的云凭据:AWS 访问密钥、VERCEL_TOKEN、GCP 服务账号文件和 CLOUDFLARE_API_TOKEN。README 声明只读、不存储,且不记录凭据,但这些密钥本身可访问本服务器范围之外的资源,应尽量缩小权限。诊断工具会向外部 API 目标发起 HEAD 请求。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Cloudpulse,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

CloudPulse MCP Server

Cross-cloud infrastructure visibility for AI agents. Diagnose issues across AWS, Vercel, GCP, and Cloudflare without ever leaving your editor.

[License: MIT] [Node.js ≥18]


Why CloudPulse?

Pain pointCloudPulse fix
Frontend error on Vercel → must open AWS consoleget_correlated_logs merges both timelines automatically
AI can't see if an SG blocks port 5432diagnose_service_link inspects the security group rules live
Hitting Lambda concurrency limits silentlycheck_resource_limits warns at 80% usage
Topology unknown before debugginglist_cloud_topology maps every active service in seconds

Quick Start

1. Install / run with npx

bash
npx cloudpulse-mcp

The server auto-detects credentials already present on your machine (AWS CLI, environment variables, etc.).

2. Configure your AI client

Claude Desktop – add to ~/Library/Application Support/Claude/claude_desktop_config.json:

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

Cursor – add to .cursor/mcp.json in your project:

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 Mode) – requires VS Code 1.99+ and the GitHub Copilot extension.

First, build the project:

bash
npm run build

Then create .vscode/mcp.json in this repository:

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} reads from your shell environment — no secrets in source control.

To use: open Copilot Chat, switch to Agent mode, click Select Tools and enable the CloudPulse tools, then ask naturally:

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

Credentials & Security

CloudPulse follows a read-only, no-storage policy:

CredentialHow to provide
AWSAWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY, or AWS_PROFILE, or EC2 instance role
VercelVERCEL_TOKEN (personal access token from vercel.com/account/tokens)
Vercel TeamVERCEL_TEAM_ID (optional)
GCPGOOGLE_APPLICATION_CREDENTIALS
CloudflareCLOUDFLARE_API_TOKEN + CLOUDFLARE_ACCOUNT_ID

No credentials are logged or stored. All values are read from environment variables at call time.


Available Tools

list_cloud_topology

Scan all configured platforms and return a unified service map.

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

get_correlated_logs

Fetch and merge logs from Vercel + AWS CloudWatch into one timeline.

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

Check why service A can't reach resource 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

Checks performed:

  • Vercel env vars contain a DATABASE_URL / DB_URL
  • AWS Security Group allows inbound TCP on the required port
  • External API HEAD reachability test

check_resource_limits

Query quotas and flag resources nearing their limits.

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

Roadmap

PhaseStatusScope
1 – MVP✅ DoneVercel + AWS (Lambda, RDS, CloudWatch, Security Groups, S3)
2 – Extend✅ DoneGCP Cloud Run + Cloud SQL + Logging; Cloudflare Workers + Pages; S3 CORS
3 – Intelligence🔜Pre-built diagnostic playbooks for CORS, 504 timeout, cold-start loops

Development

bash
git clone https://github.com/Galadriel-Tech-Solutions/cloudpulse-mcpcd cloudpulse-mcpnpm installnpm run dev        # run from source with tsxnpm run build      # compile to dist/

Project structure

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

Adding a new cloud platform

  1. Create src/providers/<platform>/index.ts exporting:
    • is<Platform>Configured(): boolean
    • Provider-specific data functions
  2. Wire the functions into the relevant tools under src/tools/
  3. Add the platform name to the CloudPlatform union in src/types.ts

License

MIT © CloudPulse Contributors

来源:README.md,提交 c4bf91b

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.2最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分