Controller ctrl-01
Spoke · web spoke-01
Spoke · app spoke-02
Spoke · data spoke-03
Empty bay — not enrolled

AI agents · real Ansible · bastion fabric

Give agents Ansible.
Not the keys.

MCP tools that search, schema, check, then execute — on a hub that only reaches hosts you enroll over SSH. Trust is topology and argSpec, not vibes.

MCP Hub / Spoke check-first Apache-2.0

Two tracks

Agent loop + fleet fabric

Agent ritual
01
search_modules
Gallery search across allowlisted collections
02
get_module_schema
Slim argSpec for the FQCN — form args correctly
03
run_module(..., check_mode=true)
Dry-run first — default path for agents
04
run_module(..., check_mode=false)
Apply only when the check looks right
Hub / spoke

Nothing is a target until enrolled. Hub inventory is source of truth — client -i rejected. Spokes execute localhost only.

Mesh (no) Hub/spoke
Agent attach Any node Hub only
Lateral MCP Possible None
Inventory Gossip Hub SoT