racksmith
Racksmith
Agentic bare-metal lab operations — inventory, commissioning, deploy, fabric audit, and job scheduling — with first-class Hermes Agent skills and an MCP tool server.
Live demo: amiirhosseini.github.io/racksmith
Interactive lab health + agent plan preview (GitHub Pages, no server).
Racksmith helps operators run MAAS-style hardware labs without drowning in failed commissions, silent BMC outages, VLAN drift, and empty Ready pools. It ships a simulation backend so you can try the full workflow with zero hardware.
No cloud server required. Browse the live demo, walkthrough, and source. Optional local CLI/API for your laptop only.
Why it exists
Bare-metal labs fail in boring, expensive ways:
Commissioning hangs or fails and nobody notices until a job queue stalls
TOR VLANs drift from inventory intent
Deployed hosts never get released → Ready capacity hits zero
Operators re-learn the same remediation path every week
Racksmith turns those paths into inspectable plans, guardrailed actions, and Hermes skills that improve as you use them.
Features
Area | What you get |
MAAS client | Async REST client for commission / allocate / deploy / release / power |
Sim lab | Deterministic 12-node Toronto-style lab for demos & CI |
Health engine | Findings for BMC, thermal, commissioning, capacity, switch fabric |
Agent planner | Natural-language goals → ranked action plans |
MCP server | Tools for Hermes / Claude / any MCP client |
Hermes skills |
|
Job queue | Testflinger-style enqueue → allocate → deploy worker |
HTTP API | FastAPI for dashboards and automation |
Quick start (simulation)
git clone https://github.com/Amiirhosseini/racksmith.git
cd racksmith
python -m venv .venv
# Linux / macOS
source .venv/bin/activate
# Windows PowerShell
# .\.venv\Scripts\Activate.ps1
pip install -e ".[dev]"
cp config/racksmith.example.yaml config/racksmith.yaml
racksmith health
racksmith machines
racksmith plan "fix failed commissioning and show capacity"
racksmith run "commission failed machines" --executeStart the API:
racksmith serve
# http://127.0.0.1:8787/docsHermes Agent integration
1. Install Hermes
Follow the official installer: https://hermes-agent.nousresearch.com/docs/getting-started/installation
2. Install Racksmith skills
pip install -e .
racksmith install-hermes-skillsOr point Hermes at this repo’s skill tree in ~/.hermes/config.yaml:
skills:
external_dirs:
- /absolute/path/to/racksmith/hermes/skills3. Run the MCP server
racksmith mcpExample Hermes chat prompts:
/lab-health— morning lab audit/lab-commissionrecover failed hosts/fleet-deployallocate Ubuntu noble onamd-epyc/switch-auditcheck TOR VLAN drift
Talk to a real MAAS
# config/racksmith.yaml
backend: maas
maas:
url: http://maas.example:5240/MAAS
api_key: consumer_key:token_key:token_secret
verify_tls: truepip install -e ".[oauth,dev]"
export RACKSMITH_BACKEND=maas
export RACKSMITH_MAAS_URL=http://maas.example:5240/MAAS
export RACKSMITH_MAAS_API_KEY='consumer:token:secret'
racksmith healthArchitecture
┌──────────────────┐ ┌─────────────────┐ ┌──────────────────┐
│ Hermes / MCP │────▶│ Racksmith API │────▶│ MAAS or SimLab │
│ CLI / skills │ │ planner/tools │ │ machines+power │
└──────────────────┘ └────────┬────────┘ └──────────────────┘
│
▼
┌─────────────────┐
│ Health + Fabric │
│ Job scheduler │
└─────────────────┘CLI cheat sheet
racksmith health
racksmith machines --status Ready
racksmith plan "deploy ubuntu noble on 100g"
racksmith run "deploy ubuntu noble on 100g" --execute --yes
racksmith commission <system_id> --ssh
racksmith job kernel-smoke --tags intel-xeon --run
racksmith serve --host 0.0.0.0 --port 8787
racksmith mcpHTTP API
Method | Path | Purpose |
GET |
| Liveness |
GET |
| Full lab snapshot + findings |
GET |
| Machine inventory |
POST |
|
|
POST |
| Execute a tool action |
POST |
| Enqueue lab job |
POST |
| Worker tick |
Safety model
Default agent.mode is assist:
Plans are always allowed
Mutating actions (
deploy,power_cycle,release,mark_broken) need--yes/confirm=true
Set agent.mode: autopilot only on dedicated labs with clear ownership.
Development
pip install -e ".[dev,oauth]"
pytest -q
ruff check src testsdocker compose up --buildProject layout
racksmith/
├── src/racksmith/ # Python package
│ ├── maas/ # MAAS client + simulator
│ ├── monitoring/ # Health findings
│ ├── network/ # Switch intent audit
│ ├── scheduler/ # Job queue
│ ├── agent/ # Planner + MCP server
│ ├── api/ # FastAPI app
│ └── cli.py
├── hermes/skills/ # Hermes / agentskills.io skills
├── config/ # Example + default YAML
├── tests/
└── docs/Roadmap
Live NETCONF / SONiC config apply (gated)
Prometheus metrics exporter
Testflinger webhook receiver
Multi-lab federation
Redfish-native inventory enrichment
Contributing
See CONTRIBUTING.md. Bug reports and lab war-stories welcome.
License
Apache License 2.0 — see LICENSE.
Acknowledgments
Canonical MAAS — metal-as-a-service inspiration and API shapes
Nous Research Hermes Agent — self-improving agent runtime + skills
agentskills.io — portable skill format
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/Amiirhosseini/racksmith'
If you have feedback or need assistance with the MCP directory API, please join our Discord server