From claude-code-swarm
Inspect and optionally install MCP providers declared by the current swarm team. Non-invasive by default — reports status without modifying user MCP configuration unless explicitly requested.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-code-swarm:swarm-mcpThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You manage the **MCP (Model Context Protocol) surface** for the configured swarm team. Your role is to inspect declared providers, report health, and optionally install or sync with explicit user consent.
You manage the MCP (Model Context Protocol) surface for the configured swarm team. Your role is to inspect declared providers, report health, and optionally install or sync with explicit user consent.
.mcp.json, .claude/settings.json, .claude/settings.local.json, or user-global config without explicit user opt-in.The swarm team loader (scripts/team-loader.mjs) has already populated the following cache files (one pass, at session start):
.swarm/claude-swarm/tmp/teams/<template>/mcp-providers.json — team-declared provider install specs.swarm/claude-swarm/tmp/teams/<template>/mcp-health.json — pre-computed health report (regenerated each session).swarm/claude-swarm/tmp/teams/<template>/scope/<role>.json — per-role scope files consumed by the PreToolUse hook.swarm/claude-swarm/tmp/teams/<template>/loadouts/<role>.json — debug view of resolved per-role loadoutDo NOT regenerate these files. They're owned by the team-loader.
Parse $ARGUMENTS as the first token to determine which subcommand to run.
check — Dry-run health reportPurpose: show declared providers vs active set, flag missing / refs / disabled / orphaned scope references.
Steps:
.swarm/claude-swarm/tmp/teams/<template>/mcp-health.json. If missing, ask the user to reload the team (/swarm <template>) — the loader populates this file.ok[] — servers declared AND active (checkmark + source)missing[] — declared, not active (warning + suggest install)refs[] — symbolic refs deferred to consumer (inform)disabled[] — declared with disabled: trueactiveOnly[] — active but not declared (informational)orphanedReferences[] — loadout scope references not backed by anythinginstall [name] — Explicit MCP installPurpose: append a team-declared provider (from mcp-providers.json) to the project .mcp.json after explicit user confirmation. If [name] is omitted, list installable entries and ask the user to pick.
Steps:
.swarm/claude-swarm/tmp/teams/<template>/mcp-providers.json..mcp.json.name:
a. Strip openteams-specific fields (ref, description, disabled) from the provider spec.
b. If .mcp.json already contains the same name, diff the specs and show both to the user. Ask whether to overwrite.
c. Show the full diff that would land in .mcp.json.
d. Wait for explicit user approval (yes / install / y) before writing..mcp.json atomically. Inform the user they will need to restart Claude Code for the new server to connect.Refuse to proceed if:
disabled: true (skip with a message)ref: but no bundled registry to resolve it (skip with a suggestion to run /swarm-mcp resolve-ref)permissions-sync — Explicit permissions syncPurpose: merge loadout-driven permissions into .claude/settings.local.json under a clearly-marked swarm block. settings.local.json is user-owned and typically gitignored, so we never touch .claude/settings.json.
Steps:
.swarm/claude-swarm/tmp/teams/<template>/scope/<role>.json → permissions.{allow,deny,ask}mcp__<server>__* (for bare server access) and mcp__<server>__<tool> (for exclude entries).claude/settings.local.json (or initialize an empty object if absent)."permissions": {
"allow": [
"/* swarm:<template>:start */",
"...",
"/* swarm:<template>:end */"
]
}
(If JSON doesn't tolerate comments, use a sentinel entry like "// swarm:<template>:start".)clean — Remove swarm-generated agentsPurpose: remove .claude/agents/<team>-* files written by swarm, respecting the generated_by: claude-code-swarm marker. Never touches hand-authored agents.
Steps:
.claude/agents/*.md (or ~/.claude/agents/<project-slug>-<team>-*.md if the current team uses user scope).generated_by: claude-code-swarm ANDteam_name: <current-template> (if --team given) or any swarm team (default).swarm/claude-swarm/tmp/teams/<template>/ cache files when --with-artifacts is given.resolve-ref <ref> — (Deferred)For future use. Currently prints a stub message indicating ref resolution requires an OpenHive hive connection or a bundled registry (not yet shipped).
If $ARGUMENTS is empty, run the check subcommand — the safest and most informative default.
.mcp.json without explicit user confirmation.claude/settings.json (committed project settings) — only .claude/settings.local.json~/.claude/ without explicit opt-ininstall or permissions-sync without a clear user yes/swarm or loadTeam does that)npx claudepluginhub alexngai/claude-code-swarm --plugin claude-code-swarmCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.