CloudPulse MCP Server
Provides cross-cloud infrastructure visibility for Cloudflare services including Workers and Pages, enabling AI agents to diagnose issues and inspect configurations without leaving the editor.
Enables inspection and monitoring of Cloudflare Workers, including tail logs via WebSocket, as part of cross-cloud infrastructure diagnostics.
Supports integration with GitHub Copilot in Agent Mode, allowing users to access CloudPulse tools directly through Copilot Chat for natural language infrastructure diagnostics.
Provides comprehensive Vercel integration including project inspection, environment variable checking, log correlation with AWS, and service link diagnostics for Vercel deployments.
CloudPulse MCP Server
Cross-cloud infrastructure visibility for AI agents. Diagnose issues across AWS, Vercel, GCP, and Cloudflare without ever leaving your editor.
Why CloudPulse?
Pain point | CloudPulse fix |
Frontend error on Vercel → must open AWS console |
|
AI can't see if an SG blocks port 5432 |
|
Hitting Lambda concurrency limits silently |
|
Topology unknown before debugging |
|
Related MCP server: AgentWatch
Quick Start
1. Install / run with npx
npx cloudpulse-mcpThe 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:
{
"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:
{
"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:
npm run buildThen create .vscode/mcp.json in this repository:
{
"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:
Credential | How to provide |
AWS |
|
Vercel |
|
Vercel Team |
|
GCP |
|
Cloudflare |
|
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_regiondiagnose_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_regionChecks performed:
Vercel env vars contain a
DATABASE_URL/DB_URLAWS 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_regionRoadmap
Phase | Status | Scope |
1 – MVP | ✅ Done | Vercel + AWS (Lambda, RDS, CloudWatch, Security Groups, S3) |
2 – Extend | ✅ Done | GCP Cloud Run + Cloud SQL + Logging; Cloudflare Workers + Pages; S3 CORS |
3 – Intelligence | 🔜 | Pre-built diagnostic playbooks for CORS, 504 timeout, cold-start loops |
Development
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/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.tsAdding a new cloud platform
Create
src/providers/<platform>/index.tsexporting:is<Platform>Configured(): booleanProvider-specific data functions
Wire the functions into the relevant tools under
src/tools/Add the platform name to the
CloudPlatformunion insrc/types.ts
License
MIT © CloudPulse Contributors
Available Tools
4 toolscheck_resource_limitsA
Query quota limits and current usage across configured cloud platforms. Highlights resources approaching or exceeding their limits (default warning threshold: 80%). Use this to proactively catch Lambda concurrency limits, Vercel plan caps, and similar issues before they cause outages.
| Name | Required | Description | Default |
|---|---|---|---|
| platforms | No | Platforms to check. Omit to check all configured platforms. | |
| warn_threshold | No | Usage percentage at which to emit a warning. Default: 80. | |
| aws_region | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively communicates that this is a read-only query operation (implied by 'Query') and adds useful context about the warning threshold behavior. However, it doesn't mention authentication requirements, rate limits, error conditions, or what format the results will be returned in, which are important for a tool interacting with multiple cloud platforms.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in two sentences: the first states the core purpose, and the second provides usage guidance with concrete examples. Every element serves a clear purpose with zero wasted words, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, no annotations, and no output schema, the description provides adequate purpose and usage context but lacks important behavioral details. It doesn't explain what the output looks like, how errors are handled, or authentication requirements. Given the complexity of querying multiple cloud platforms, more complete guidance would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 67% schema description coverage (2 of 3 parameters documented in schema), the description adds significant value by explaining the purpose of the 'warn_threshold' parameter and providing context about what platforms it works with. While it doesn't explicitly mention the 'platforms' or 'aws_region' parameters, it gives enough semantic context about the tool's scope to help understand parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Query quota limits and current usage'), identifies the target resources ('across configured cloud platforms'), and distinguishes this tool from siblings by focusing on proactive monitoring rather than diagnosis or logging. It provides concrete examples of what it monitors ('Lambda concurrency limits, Vercel plan caps').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('to proactively catch...issues before they cause outages'), providing clear context for its purpose. However, it doesn't mention when not to use it or explicitly differentiate it from sibling tools like 'diagnose_service_link' or 'list_cloud_topology', which might also involve cloud resources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diagnose_service_linkA
Diagnose connectivity issues between a source service and a target resource. Checks Vercel environment variables, AWS Security Group inbound rules on the required port, and external API reachability. Returns a list of diagnostic results with actionable messages.
| Name | Required | Description | Default |
|---|---|---|---|
| source_service | Yes | The origin service that initiates the connection. | |
| target_resource | Yes | The resource to connect to. Format: '<type>:<identifier>'. Examples: 'aws-rds:my-db', 'aws-lambda:my-function', 'external-api:https://api.example.com' | |
| port | No | TCP port to verify access on. Auto-detected from common resource types when omitted. | |
| aws_region | No | ||
| vercel_project | No | Vercel project name or ID for env-var checks. | |
| s3_origin | No | When target is aws-s3, check CORS for this origin (e.g. 'https://my-app.pages.dev'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes what the tool checks (three specific areas) and what it returns (diagnostic results with actionable messages), which is helpful. However, it doesn't disclose important behavioral traits like whether this is a read-only operation, whether it makes any changes to systems, authentication requirements, rate limits, or error handling. The description adds value but leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly sized and front-loaded. The first sentence establishes the core purpose, the second specifies the three diagnostic checks, and the third describes the return format. Every sentence earns its place with no wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, connectivity diagnostics across multiple cloud platforms) and no annotations or output schema, the description is adequate but incomplete. It explains what the tool does and returns at a high level, but doesn't cover important contextual details like authentication requirements, whether it performs active probes or passive checks, error conditions, or the format of diagnostic results. For a diagnostic tool with no structured output documentation, more completeness would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 83% schema description coverage, the schema already documents most parameters well. The description adds meaningful context by explaining the diagnostic scope (Vercel env vars, AWS Security Groups, API reachability) which helps understand what the parameters enable. It doesn't provide additional parameter-specific details beyond the schema, but the high schema coverage means less burden on the description. The description compensates adequately for the 17% coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb ('diagnose connectivity issues') and resources ('between a source service and a target resource'), distinguishing it from sibling tools like 'check_resource_limits' or 'get_correlated_logs'. It explicitly mentions what the tool checks (Vercel environment variables, AWS Security Group rules, external API reachability) and what it returns (diagnostic results with actionable messages).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: for diagnosing connectivity issues between services and resources. It doesn't explicitly state when NOT to use it or name alternatives among sibling tools, but the specificity of its purpose strongly implies it's for connectivity diagnostics rather than resource monitoring or log analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cloud_topologyA
Scan all configured cloud platforms (AWS, Vercel, GCP, Cloudflare) and return a unified topology of active services including their endpoints and regions. Run this first to understand the infrastructure landscape.
| Name | Required | Description | Default |
|---|---|---|---|
| platforms | No | Platforms to include. Omit to auto-detect all configured platforms. | |
| aws_region | No | AWS region to scan. Defaults to AWS_REGION env var or us-east-1. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions scanning 'all configured cloud platforms' and returning a 'unified topology,' which gives some context about scope and output format. However, it doesn't disclose important behavioral aspects like authentication requirements, rate limits, execution time, or what happens if platforms aren't properly configured.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two sentences that each serve distinct purposes: the first explains what the tool does, and the second provides usage guidance. There's zero wasted language, and the most important information (the scanning action) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (scanning multiple cloud platforms) and lack of both annotations and output schema, the description is somewhat incomplete. While it explains the purpose and usage timing well, it doesn't address authentication needs, error handling, or the structure of the returned topology. For a discovery tool with no output schema, more detail about the return format would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema. The baseline score of 3 is appropriate when the schema does the heavy lifting for parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Scan all configured cloud platforms'), the resource ('active services'), and the output ('unified topology of active services including their endpoints and regions'). It distinguishes this tool from siblings by emphasizing its discovery/scanning purpose rather than diagnostics or log analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('Run this first to understand the infrastructure landscape'), providing clear guidance about its role as an initial discovery step. This differentiates it from sibling tools like check_resource_limits or diagnose_service_link that would be used after understanding the topology.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v0.1.2- First observed
check_resource_limits - First observed
diagnose_service_link - First observed
get_correlated_logs - First observed
list_cloud_topology
TDQS
Each tool has a clearly distinct purpose with no overlap: check_resource_limits focuses on quota monitoring, diagnose_service_link on connectivity diagnostics, get_correlated_logs on log aggregation, and list_cloud_topology on infrastructure discovery. The descriptions reinforce unique scopes, making misselection unlikely.
All tool names follow a consistent verb_noun pattern (e.g., check_resource_limits, diagnose_service_link), using snake_case uniformly. This predictability aids agent understanding and tool selection without confusion.
Four tools is a reasonable count for a cloud monitoring server, covering key areas like limits, diagnostics, logs, and topology. It feels slightly lean but well-scoped, as each tool addresses a distinct monitoring need without bloat.
The toolset covers core cloud monitoring workflows: proactive limits checking, connectivity diagnosis, log correlation, and topology mapping. Minor gaps exist, such as lack of alerting or remediation tools, but agents can work around these with the provided diagnostic and data-fetching capabilities.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- SuperlogOAuthsh.superlog
Open-source agent that observes and fixes your application. Query logs, traces, metrics, incidents.
AI agent observability for production traces, natural-language insights, and improvement loops.
Data + AI observability — monitor and troubleshoot production-grade agents and the context they use.
Compare, estimate, and deploy cloud infrastructure across AWS, GCP, and Azure for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides AI agents with natural language control over AWS, Azure, GCP, and Alibaba Cloud infrastructure through dynamic API discovery and execution. Supports 51,900+ cloud operations and includes OpenTofu integration for complete infrastructure lifecycle management.3MIT
- AlicenseNot gradedqualityAmaintenanceA terminal live-tail and a browser dashboard — one process, one event stream, served from localhost. Unified timeline across Claude Code, Codex, Gemini CLI, Cursor, Hermes, and OpenClaw. Token + cost accounting, compaction + anomaly detection, hybrid search, SVG call graphs, monaco-style diff attribution, agent-aware replay ("what would the agent say if I edited the prompt?"), policy editor, MCP s1314MIT

Synlake MCP Serverofficial
AlicenseAqualityDmaintenanceEnables AI agents to discover, evaluate, and provision cloud infrastructure across AWS, GCP, and Azure with cross-cloud normalization, cost comparisons, and deployable execution kits.517MIT- AlicenseNot gradedqualityBmaintenanceGives AI coding agents (Claude Code, Cursor, etc.) unified, secure access to dev infrastructure (Vercel, GitHub, Supabase, Cloudflare, GCP) via a single MCP token.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Galadriel-Tech-Solutions/cloudpulse-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server