crew-cloud
Configure the official AWS and Azure MCP servers safely for a repo.
Skill by mbadali25
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/mbadali25-crew-cloud
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, cloud, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/crew-cloud
What's inside
- Skill name
crew-cloud- Description
- Configure the official AWS and Azure MCP servers safely for a repo. Use when the user says set up AWS MCP, add the Azure MCP server, connect to my cloud account, look up AWS docs or pricing, or asks how to give the crew read access to cloud resources.
- License
- GPL-2.0
- Instructions
- 281 lines in SKILL.md · view on GitHub
Before installing
- Instructions read files in your home folder (~/.ssh, ~/.aws…)
Files (1)
- SKILL.md
SKILL.md (first lines)
# Cloud MCP servers
Both clouds ship official MCP servers. Both authenticate as **you**, with your
existing credentials — which is the part that deserves care before the part
about which package to install.
---
## Read the risk first
An MCP server that reaches your account does so with whatever your credential
chain grants. If your default AWS profile is an admin role, so is the agent's.
There is no "read-only mode" flag that saves you; the constraint has to come from
the credential.
Three rules, and `crew-setup` should enforce them by asking:
1. **A dedicated profile, scoped read-only**, pointed at a non-production account
wherever possible. Not your daily driver profile.
2. **Never `AWS_PROFILE=production`** or a subscription with write scope, in any
repo where an agent runs unattended.
3. **Start with the documentation and pricing servers**, which touch no account
at all, and only add account-reaching servers when a task actually needs one.
crew's cloud guard (below) can refuse destructive `aws`/`az` commands and
commands run as the wrong identity, but a guard on the shell does not cover an
MCP tool call. The credential is the real boundary. A cloud credential in the
agent's environment is also one `env` away from its context and transcript:
`guards.envGuard` (off by default; README "Environment guard") refuses the
commands that print it, and a sealed, per-command credential keeps it out of
the environment in the first place.
---
## The cloud guard and identity pinning
`hooks/scripts/cloud_guard.py`, a PreToolUse hook on the Bash **and** PowerShell
tools. **It ships off.** Turn it on per machine or per repo:
```json
{ "guards": { "cloudGuard": "report" } }
```
`report` logs to `.crew/guard.log` what it *would* have refused, shows you the
same as a message, and refuses nothing — it answers with **no** permission
decision, so your normal prompts run exactly as they would without it (it never
answers `allow`). Run it for a few days first. `block` enforces. A repo can
never turn off a machine-global `block` (the `guards` ratchet).
What each recognised command gets is the existing per-rule key, `block` by
default: `guards.cloudDestructive` for `aws … delete-*/terminate-*/purge-*`,
`aws s3 rm|rb`, `aws s3 sync --delete`, `az … delete|purge` and `Remove-Az*`;
`guards.sqlDestructive` for `DROP`/`TRUNCATE` sent to `psql`, `mysql`, `sqlcmd`,
`sqlite3` or `Invoke-Sqlcmd`; `guards.terraformApply` for `terraform`/`tofu`
`apply`/`destroy`; `guards.forcePush` and `guards.adminMerge` for git and gh.
`ask` prompts; `allow` lets it through and logs it — except that since crew
1.0.42 a terraform destroy (or an apply of a plan crew cannot read) asks even
under `allow`, and `environments.*` lets non-production applies run unattended
under `ask` (README "Cloud guard", docs/crew/config-rationale.md).
`guards.deployWorkflow` (T-0009) judges `gh workflow run <wf>` and its REST
twin, `gh api -X POST repos/<o>/<r>/actions/workflows/<wf>/dispatches`, when
`<wf>` matches a key of the repo-only `environments.workflows` map
(`{"deploy.yml": "input:environment", "deploy-prod.yml": "production"}`). A
workflow matching no key is not judged. Under `ask` in both layers a nonProd
environment runs unattended; production does only with
`environments.prodUnattended` true in both layers. `allow` covers nonProd only:
production without `prodUnattended`, and an environment crew cannot identify
(no input, conflicting values, two workflow arguments, no workflow named),
still ask and are refused unattended. Not seen: an unlisted spelling of the
workflow (display name, numeric id), the workflow YAML, `gh run rerun`,
`gh alias`, `curl`.
DISPATCH GRAMMAR. A dispatch line is judged only when every word is a plain
literal or one whole single-quoted word, joined only by `;` `&&` `||` `&`,
newlines, `>`/`>>`/`&>`/`&>>` to a plain word and `2>&1`; anything else — a
pipe, any `<`, `$`, double quotes, a glob, a nested or `xargs`-fed dispatch, a
copy or alias of `gh`, a command word made at run time whose arguments could
follow part of a dispatch (`$X $Y run x`, `$C`, `xargs -I CMD CMD workflow
run x`, `Start-Process $x`, an alias to a run-time value), gh reading stdin or
a file (`--json`, `--input`, `-F k=@f`), a PowerShell launcher or alias
holding gh, `workflow` or a run-time word with any parameter that is not a
full, value-taking name (a switch, `-Fi`, `-Args`), and a malformed
`environments` block in either layer — is could-not-tell; gh and `workflow`
count only in one command, so `alias g=gh; echo workflow` is not judged. A
could-not-tell line is asked when attended, refused unattended, and approved
one exact command at a time by the marker the refusal names. Write
`-f` fields and single quotes instead (README "The dispatch grammar"); a
literal `--help` is not judged.
Not destructive, so not refused: `aws … --dry-run` / `--dryrun`, `Remove-Az*
-WhatIf`, and `terraform apply -help`. SQL is read in the client's own dialect —
PostgreSQL for `psql` (a backslash is a plain character except in `E'…'`),
MySQL for `mysql`/`mariadb` (`#` comments, `\'` escapes, `/*! … */` runs),
T-SQL for `sqlcmd`/`Invoke-Sqlcmd` — so a correct literal is not misread as a
statement.
Refused whatever the policy, as `[cloudGuard]`, because crew could not read
them: a command nested more than six shells or substitutions deep, and hook
input that is not a readable Bash/PowerShell call. A destructive-capable tool
(`terraform`, `aws`, `az`, a SQL client, `git push`) run through `xargs` or
`parallel`, whose arguments come from stdin, is judged under that tool's own
rule as if it were destructive — `echo destroy | xargs terraform` is a
`terraformApply` refusal. A pipe is followed through every stage:
`echo 'DROP TABLE t;' | tee q | psql` is a `sqlDestructive` refusal.
### Pin the identity this repo may act as
In the repo's `.crew/config.json` (repo-only — a machine-global `cloud` block is
ignored, like `production`):
```json
{ "cloud": {
"awsProfiles": ["acme-dev", "acme-sandbox-*"],
"awsRegions": ["eu-west-1"],
"azureSubscriptions": ["00000000-0000-0000-0000-000000000000", "Acme Dev"] } }
```
**AWS.** Every `aws` command's profile is read from `--profile`, then theFrom mbadali25/useful-claude-add-ons, GPL-2.0.
More from mbadali25/useful-claude-add-ons
- 0.603score
crew-graph
mbadali25
Build and query a code graph of this repository with graphify, keeping it on the filesystem as graph.json and fresh on commit.
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
crew-best-practices
mbadali25
Community best practices for working with Claude Code - context management, planning, TDD, hooks, skills, subagents, slash commands and MCP - with what crew…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
crew-qa-standards
mbadali25
Harness, QA-review and environment standards plus a report-only audit (parallel tests, pinned linters CI really runs, gate rules that can fail, QA environment…
SkillAFreshness: A★ 2Claude Code +9 - 0.599score
crew-diagrams
mbadali25
Author architecture, process, sequence, ER and data-flow diagrams as Mermaid that pass a measured readability check (no crossing lines, nothing drawn through…
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
crew-context
mbadali25
Manage context exhaustion - warn near the limit, write handoff notes, and resume work after a clear or compact.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
crew-debugging
mbadali25
Find the cause of a defect before proposing a fix - read errors, reproduce, check recent changes, gather evidence from this repo's code map and verification…
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
crew-docs
mbadali25
Keep CHANGELOG.md, README.md, SECURITY.md, TODO.md, ADRs, generated docs, and the API and feature reference current as work lands.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
crew-memory
mbadali25
Conventions for durable project memory across repos, including Obsidian vault integration.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
crew-notify
mbadali25
Set up outbound notifications to Microsoft Teams or Telegram - deploy results and "Claude stopped and is waiting" questions - and explain the two-way MCP…
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
crew-change
mbadali25
The change-request template, the ten questions a change board requires, and how each field maps onto ServiceDesk Plus, Jira and a local file.
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
crew-providers
mbadali25
Set up, verify, and invoke external model providers - Codex, Kimi Code or GitHub Copilot for QA review, Gemini for design second opinions.
SkillAFreshness: A★ 2Claude Code +9 - 0.595score
crew-execute
mbadali25
Execute an approved plan task by task, in this session - TDD per step, a ruling instead of a silent deviation, and only four conditions that stop for a…
SkillAFreshness: A★ 2Claude Code +9
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 17
- Last commit (this folder)
- Oct 10, 2026 (18 days ago)
- Last release
- Jul 28, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- GPL-2.0
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from mbadali25
- 0.603score
crew-qa-standards
mbadali25
Harness, QA-review and environment standards plus a report-only audit (parallel tests, pinned linters CI really runs, gate rules that can fail, QA environment…
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
crew-graph
mbadali25
Build and query a code graph of this repository with graphify, keeping it on the filesystem as graph.json and fresh on commit.
SkillAFreshness: A★ 2Claude Code +9 - 0.603score
crew-best-practices
mbadali25
Community best practices for working with Claude Code - context management, planning, TDD, hooks, skills, subagents, slash commands and MCP - with what crew…
SkillAFreshness: A★ 2Claude Code +9 - 0.599score
crew-diagrams
mbadali25
Author architecture, process, sequence, ER and data-flow diagrams as Mermaid that pass a measured readability check (no crossing lines, nothing drawn through…
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
crew-debugging
mbadali25
Find the cause of a defect before proposing a fix - read errors, reproduce, check recent changes, gather evidence from this repo's code map and verification…
SkillAFreshness: A★ 2Claude Code +9 - 0.598score
crew-context
mbadali25
Manage context exhaustion - warn near the limit, write handoff notes, and resume work after a clear or compact.
SkillAFreshness: A★ 2Claude Code +9
Cite this page
crew-cloud skill. Agent Mart. https://agentmart.dev/skills/mbadali25-crew-cloud (last updated 2026-10-24)