cloud-engineer-mcp
Provides tools for managing Google Cloud resources, including compute, storage, networking, and more, through the official Google Cloud MCP server.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cloud-engineer-mcpdeploy an S3 bucket with versioning"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
cloud-engineer-mcp
One MCP endpoint for AWS, Azure, and GCP — without context bloat.
cloud-engineer-mcp is a Model Context Protocol gateway. It fans your agent's
requests out to the official AWS, Azure, and Google Cloud MCP servers, then uses a local sentence-transformer
to return only the handful of tools relevant to the current task — typically 15 out of 600–900.
Stop drowning your agent in cloud tools. Surface the 15 it actually needs.
The problem
Plug the official AWS, Azure, and GCP MCP servers into Cursor or Claude Desktop and your agent sees
~800 tool definitions every turn. That's 10–15K tokens of context burned before the user has typed anything,
worse tool-selection accuracy, and noticeable latency on every tools/list call.
Related MCP server: MCP Gateway
What this does
Auto-discovers every AWS profile in
~/.aws/config, every Azure subscription viaaz account list, and every GCP project viagcloud projects list.Starts one subprocess per account against the official cloud MCP servers (
awslabs.ccapi-mcp-server,@azure/mcp,@google-cloud/gcloud-mcp).Indexes every tool description with a local
all-MiniLM-L6-v2model (22M params, ~80MB on disk, ~5ms per query, no API calls).Returns the top-K tools for the current conversation via a
set_contexttool. Pin recently-used backends so workflows stay coherent.Speaks both transports: stdio for IDEs (Cursor, VS Code, Claude Desktop) and Streamable HTTP for remote/team deployments.
Try it in 60 seconds (no cloud credentials needed)
git clone https://github.com/cloud-engineer-mcp/cloud-engineer-mcp.git
cd cloud-engineer-mcp
uv sync
uv run cloud-engineer-mcp demoThe demo subcommand boots a self-contained gateway against bundled mock backends. No AWS/Azure/GCP setup
required. It's the same code path the real gateway uses — useful for evaluating the project, integrating into
CI, or rehearsing a conference demo.
Use it for real
Authenticate any cloud CLIs you'd like the gateway to discover (you only need the ones you use):
aws sso login --profile <profile> # or aws configure
az login
gcloud auth login && gcloud config set project <project>Then install (see Installation below) and register with your IDE:
uv run cloud-engineer-mcp install-backends # pre-download AWS/Azure/GCP MCP packages (optional but recommended)
uv run cloud-engineer-mcp cursor-install # or claude-desktop-installRestart Cursor. Ask it "deploy an S3 bucket with versioning" and watch tools/list surface only the relevant
S3 tools from your AWS profile — even though the gateway is indexing tools across all three clouds.
How tool selection works
The agent calls
set_context("I need to deploy an S3 bucket with versioning").The gateway encodes the context with the local sentence-transformer.
On the next
tools/listit computes cosine similarity against every backend tool description and returns the top-K.When the agent calls a tool from backend B, every tool in B gets a score boost (a "pin") that decays over the next few turns — so workflows that need 3–4 related tools stay coherent.
Embeddings are cached to disk between restarts (
.cloud-engineer-mcp/embeddings_cache.npz).
No LLM calls. No re-indexing. ~5ms p99 per selection.
Architecture
MCP Clients (Cursor, VS Code, Claude Desktop, HTTP)
│
▼
┌─────────────────────────────────────────────────┐
│ cloud-engineer-mcp gateway │
│ ├─ Tool selector (local embeddings) │
│ ├─ Tool registry (namespaced: aws__create) │
│ ├─ Session state (context + pinning) │
│ └─ Backend manager (subprocess lifecycle) │
└─────────────────────────────────────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
AWS MCP Azure MCP GCP MCP your backends
(per profile) (per sub) (per proj) (config.yml)More in docs/ARCHITECTURE.md.
Stability
cloud-engineer-mcp is beta. The stdio transport is production-grade and stable. The HTTP transport, demo
subcommand, and metrics format may change in 1.x. Selector behavior (top-K, pinning) is tunable but the public
interface (set_context, namespaced tool names) is stable. See CHANGELOG.md for breaking changes.
Installation
Note:
cloud-engineer-mcpis not yet published to PyPI. Install from source as shown below.
From source
Install uv if you don't have it, then:
git clone https://github.com/cloud-engineer-mcp/cloud-engineer-mcp.git
cd cloud-engineer-mcp
uv sync # add --extra dev if you plan to contributeuv sync creates a managed virtualenv in .venv and installs the project. Prefix commands with
uv run (e.g. uv run cloud-engineer-mcp demo) or activate the venv with source .venv/bin/activate.
Prerequisites
Python 3.12+
uv— used to install and run the gateway (and providesuvxfor AWS backends)For AWS backends: the
awsCLI v2For Azure backends: Node.js 20+ and the
azCLIFor GCP backends: Node.js 20+ and the
gcloudCLI
You only need the tools for clouds you plan to use. The gateway gracefully skips providers whose CLI is missing.
Configuration
Copy the example and adjust:
cp config.example.yml config.yml
$EDITOR config.ymlKey settings:
Setting | Default | Description |
|
| Max tools returned per |
|
| Sentence-transformer model |
|
| Floor cosine similarity for inclusion |
|
| Persist embeddings between restarts |
|
| Per-provider auto-discovery |
|
| HTTP bind address (leave loopback by default) |
|
| HTTP port |
|
| Per-IP token bucket |
See config.example.yml and docs/FAQ.md for the full reference.
CLI
Prefix each command with uv run (shown below), or activate the venv (source .venv/bin/activate) and drop the prefix.
uv run cloud-engineer-mcp demo # mock backends, no cloud setup
uv run cloud-engineer-mcp serve --transport stdio
uv run cloud-engineer-mcp serve --transport http
uv run cloud-engineer-mcp serve --transport both
uv run cloud-engineer-mcp check # validate config
uv run cloud-engineer-mcp discover # preview auto-discovered accounts
uv run cloud-engineer-mcp list-tools # list every tool exposed
uv run cloud-engineer-mcp install-backends # pre-download AWS/Azure/GCP MCP packages
uv run cloud-engineer-mcp cursor-install # register in .cursor/mcp.jsonIDE integration
Cursor / VS Code
uv run cloud-engineer-mcp cursor-installOr manually drop into .cursor/mcp.json (template: examples/cursor-config.json):
{
"mcpServers": {
"cloud-engineer-mcp": {
"command": "cloud-engineer-mcp",
"args": ["serve", "--config", "/abs/path/to/config.yml", "--transport", "stdio"]
}
}
}Claude Desktop
See examples/claude-desktop-config.json.
Remote HTTP
{
"mcpServers": {
"cloud-engineer-mcp": {
"url": "https://your-gateway.example.com/mcp",
"transport": "streamable-http",
"headers": { "Authorization": "Bearer <your-token>" }
}
}
}⚠ Always set CLOUD_ENGINEER_MCP_AUTH_TOKEN and put the gateway behind TLS when exposing HTTP off
localhost. The gateway holds delegated cloud credentials; treat it like the keys to your cloud account because
that's effectively what it is. See SECURITY.md.
Docker
docker compose up -dThe compose file mounts ~/.aws, ~/.azure, and ~/.config/gcloud read-only. The container binds to
127.0.0.1 by default; export with explicit auth and TLS.
Observability
/livez— process up (always 200)./readyz— at least one backend READY and embedding model loaded./metrics— JSON or Prometheus text format viaAcceptheader.Structured JSON logs to stderr (set
logging.format: consolefor dev).
See docs/ARCHITECTURE.md for log fields and metric names.
Why AGPL-3.0?
cloud-engineer-mcp is licensed under AGPL-3.0-or-later. If you deploy it as a network service,
the network-use clause applies: improvements and modifications you ship should be made available under
the same license. We chose AGPL deliberately so the project remains a healthy open commons and forks
benefit everyone. Internal use, agent integration, and use behind an authenticated boundary are all fine.
If AGPL doesn't fit your needs, get in touch via discussions.
Contributing
We welcome contributions. See CONTRIBUTING.md. Good first issues are tagged
good first issue.
Security
Report vulnerabilities privately per SECURITY.md. Please do not open public issues for security-sensitive problems.
License
AGPL-3.0-or-later © cloud-engineer-mcp contributors.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/anirudhbiyani/cloud-engineer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server