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 分