skills/mcp-lifeguard/SKILL.md
Health probe and auto-recovery for constitutional federation MCP servers. Pings arifOS (8080), GEOX (8081), WEALTH (8082), WELL (8083) every 5 minutes. Restarts dead containers and alerts on model fallback chain failures.
npx skillsauth add ariffazil/openclaw-workspace MCP LifeguardInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use when:
[bundle-mcp] failed to start server| Node | URL | Transport | Expected | |------|-----|-----------|----------| | arifOS | http://127.0.0.1:8080/mcp | streamable-http | 200 / JSON | | GEOX | http://127.0.0.1:8081/mcp | streamable-http | 405 (POST only) | | WEALTH | http://127.0.0.1:8082/mcp | streamable-http | JSON-RPC error | | WELL | http://127.0.0.1:8083/mcp | streamable-http | JSON-RPC error |
Note: WEALTH and WELL return JSON-RPC errors on GET — this is normal. A connection refused or timeout is the real failure signal.
for port in 8080 8081 8082 8083; do
code=$(curl -s -o /dev/null -w "%{http_code}" --max-time 3 "http://127.0.0.1:${port}/mcp" || echo "000")
echo "Port $port: HTTP $code"
done
for port in 8080 8081 8082 8083; do
rt=$(curl -s -o /dev/null -w "%{time_total}" --max-time 5 "http://127.0.0.1:${port}/mcp" || echo "999")
echo "Port $port: ${rt}s"
done
# Map ports to containers
mcp_map=(
"8080:arifosmcp"
"8081:geox_eic"
"8082:wealth-organ"
"8083:well"
)
for entry in "${mcp_map[@]}"; do
port=${entry%%:*}
container=${entry##*:}
code=$(curl -s -o /dev/null -w "%{http_code}" --max-time 5 "http://127.0.0.1:${port}/mcp" || echo "000")
if [ "$code" = "000" ] || [ "$code" = "502" ] || [ "$code" = "503" ]; then
docker restart "$container"
echo "$(date -Iseconds) RESTARTED $container (port $port, code $code)"
fi
done
# MiniMax
curl -s https://api.minimax.io/v1/models -H "Authorization: Bearer $MINIMAX_API_KEY" --max-time 5 | grep -q "MiniMax" && echo "MiniMax: OK" || echo "MiniMax: FAIL"
# DeepSeek
curl -s https://api.deepseek.com/v1/models -H "Authorization: Bearer $DEEPSEEK_API_KEY" --max-time 5 | grep -q "deepseek" && echo "DeepSeek: OK" || echo "DeepSeek: FAIL"
# Ollama local
curl -s http://127.0.0.1:11434/api/tags --max-time 5 | grep -q "qwen2.5:7b" && echo "Ollama: OK" || echo "Ollama: FAIL"
| Condition | Action |
|-----------|--------|
| MCP HTTP 000/502/503 | Auto-restart container + log |
| MCP response > 3s | WARN in heartbeat |
| Model provider 401/402 | Disable from fallback chain + alert |
| Ollama cold-start > 15s | Pre-warm model via /api/generate |
curl -s http://127.0.0.1:11434/api/generate \
-H "Content-Type: application/json" \
-d '{"model":"qwen2.5:7b","prompt":"warmup","stream":false,"options":{"num_predict":1}}' \
--max-time 30 > /dev/null
echo "Ollama warmed"
~/.openclaw/workspace/logs/mcp-lifeguard.logdevelopment
Federation-wide gold (XAUUSD) trading capability. Python stack, OANDA broker, backtesting, macro signals, RSI strategy. Every organ has a role.
development
Capital claim state management — tracks claim lifecycle across WEALTH organ.
development
Archived constitutional warga placeholder retained only for audit provenance. Do not use for active work; use the live arifOS governance and constitutional skills instead.
testing
Warga (citizen) agent skills for AAA federation members. See subdirectories for specialized warga skills.