restart-server
Automates hot-reloading for MCP-based development environments.
Install
mkdir -p .claude/skills/restart-server && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/18696" && unzip -o skill.zip -d .claude/skills/restart-server && rm skill.zipInstalls to .claude/skills/restart-server
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Hot-reload MCP servers — Willow (in-process), the Kart worker (systemd), and Grove. Use after editing any MCP layer, core, or Kart file.Key capabilities
- →Hot-reload Willow modules in-process
- →Bounce the Kart worker systemd unit
- →Restart Grove tools
- →Verify system status after reload
- →Perform generation-swap for tool bodies
- →Reconnect IDE MCP client after full restart
How it works
The skill calls `mcp__willow__fleet_reload` to hot-swap Willow modules and bounce the Kart worker. It then verifies the `code_version` and escalates to a full restart if code remains stale, followed by restarting Grove.
Inputs & outputs
When to use restart-server
- →Reloading MCP servers
- →Restarting Kart workers
- →Hot-swapping code without reconnecting
About this skill
/restart-server — MCP + Kart Hot Reload
Reload Willow, the Kart worker, and Grove. Willow hot-swaps a module whitelist
in-process; tool bodies in sap_mcp.py and most core.* need generation-swap
reload (target="code") or a full process restart. The Kart worker is a separate
systemd service (kart-worker.service) — merged Kart code stays stale until that
unit is bounced, which fleet_reload/fleet_restart now do for you (idle-only).
Operator opt-in: true hot reload (no MCP reconnect)
Set WILLOW_TRUE_HOTRELOAD=1 in your .cursor/mcp.json (or private MCP env).
Do not commit this to the tracked public-fallback template unless the fleet
opts in fleet-wide (ADR-20260704). With the flag on:
fleet_reload(target="code")— generation-swap tool bodies in-processfleet_reload(target="all")— whitelist + Kart bounce, then auto-chains generation-swap whencode_version.staleis still true
TOOL PRE-LOAD (first action after invocation)
ToolSearch query: "select:fleet_reload,fleet_restart,fleet_system_status"
Sequence
- Hot reload Willow + Kart — call
mcp__willow__fleet_reloadwith target"all". This hot-swaps the Willow module whitelist and bounces thekart-workerunit (skipped automatically if a Kart task is in-flight — check thekartfield in the result and report it). WithWILLOW_TRUE_HOTRELOAD=1, a still-stalecode_versiontriggers generation-swap automatically. - Read
code_versionfrom the result. Ifstaleis false, the reload covered everything — go to step 4. - Escalate if still stale — call
fleet_reload(target="code")when the flag is on; otherwisefleet_reloadcannot load tool bodies. Last resort:mcp__willow__fleet_restart(defaultinclude_kart=True). The MCP process exits; reconnect the IDE MCP client (see below). - Restart Grove — Grove tools are bundled in
sap/unified_mcp.shfor Claude Code sessions; the fleet_restart above covers them. For standalone grove-serve (Felix/remote nodes), restartgrove-mcp.serviceseparately. - Verify — call
mcp__willow__fleet_system_status; confirmcode_version.staleis now false and report the Kart restart status + Willow/Postgres health.
IDE MCP reconnect (after fleet_restart)
| IDE | Reconnect |
|---|---|
| Claude Code | /mcp |
| Cursor | Settings → MCP → toggle willow off/on, or reload window |
| Codex CLI | Restart codex session / re-read ~/.codex/config.toml MCP |
Targets / Arguments
/restart-serverorall— full sequence above (reload → escalate if stale → verify)./restart-server willow—fleet_reloadWillow modules only (no Kart bounce): pass target"gate"/"postgres"/"store"etc. as needed./restart-server kart— bounce the Kart worker only:fleet_reloadtarget"kart". Use after editingcore/kart_worker.py,core/kart_execute.py, orcore/kart_sandbox.py/kart-sandbox.jsonwhen no MCP code changed./restart-server postgres— reconnect Postgres only (fleet_reloadtarget"postgres")./restart-server grove— restart Grove only./restart-server code— generation-swap only (fleet_reloadtarget"code"); requiresWILLOW_TRUE_HOTRELOAD=1.
Kart bounce policy (idle-only)
fleet_reload/fleet_restart skip the Kart restart while a task is in-flight —
bouncing the unit SIGKILLs the running task (the reaper later requeues it). If
the result shows kart.status == "skipped", either wait for the task to finish
and re-run, or bounce it deliberately on the host:
systemctl --user restart kart-worker # host shell / ! prefix — not Kart
This host-shell fallback is also the path when the MCP server itself is down (it
can't restart anything if it isn't running) or systemctl is unavailable on the
node (the tool reports kart.status == "unavailable").
When to use
- After editing
sap/sap_mcp.py,core/pg_bridge.py, or any Willow fleet module - After editing
core/kart_worker.py/core/kart_execute.py/core/kart_sandbox.pyorwillow/fylgja/config/kart-sandbox.json— Kart will run stale code otherwise - After editing
grove_db.pyin the grove repo - When
willow_statusshowscode_version.stale == true(server behind HEAD) - When grove tools error or disappear, or Postgres goes stale
Rules
- Always verify after reload. A silent failure is worse than a loud one.
- If reload fails, report the error — don't retry silently. Never
pkillthe MCP server — it breaks the client connection; use fleet_restart + IDE reconnect. - A full
fleet_restartrequires MCP reconnect in the IDE — always remind the user. - Report the
kartfield every time so a skipped/unavailable bounce isn't mistaken for "everything is current."
When not to use it
- →When no MCP layer, core, or Kart file has been edited
- →When a Kart task is in-flight and cannot be interrupted
- →When the MCP server is down and cannot execute commands
Limitations
- →Kart worker restart is skipped if a task is in-flight
- →Generation-swap for tool bodies requires `WILLOW_TRUE_HOTRELOAD=1`
- →A full `fleet_restart` requires manual IDE MCP client reconnection
How it compares
This skill provides a structured sequence for hot-reloading and restarting specific MCP components, ensuring code updates are applied correctly and verified, unlike manually restarting services which might miss dependencies or verification
Compared to similar skills
restart-server side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| restart-server (this skill) | 0 | 19d | No flags | Intermediate |
| turborepo | 61 | 1mo | Review | Intermediate |
| bazel-build-optimization | 14 | 2mo | No flags | Advanced |
| ml-pipeline-workflow | 9 | 4mo | No flags | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by rudi193-cmd
View all by rudi193-cmd →You might also like
turborepo
vercel
Turborepo monorepo build system guidance. Triggers on: turbo.json, task pipelines, dependsOn, caching, remote cache, the "turbo" CLI, --filter, --affected, CI optimization, environment variables, internal packages, monorepo structure/best practices, and boundaries. Use when user: configures tasks/workflows/pipelines, creates packages, sets up monorepo, shares code between apps, runs changed/affected packages, debugs cache, or has apps/packages directories.
bazel-build-optimization
wshobson
Optimize Bazel builds for large-scale monorepos. Use when configuring Bazel, implementing remote execution, or optimizing build performance for enterprise codebases.
ml-pipeline-workflow
wshobson
Build end-to-end MLOps pipelines from data preparation through model training, validation, and production deployment. Use when creating ML pipelines, implementing MLOps practices, or automating model training and deployment workflows.
linkerd-patterns
wshobson
Implement Linkerd service mesh patterns for lightweight, security-focused service mesh deployments. Use when setting up Linkerd, configuring traffic policies, or implementing zero-trust networking with minimal overhead.
deployment-pipeline-design
wshobson
Design multi-stage CI/CD pipelines with approval gates, security checks, and deployment orchestration. Use when architecting deployment workflows, setting up continuous delivery, or implementing GitOps practices.
glab
NikiforovAll
Expert guidance for using the GitLab CLI (glab) to manage GitLab issues, merge requests, CI/CD pipelines, repositories, and other GitLab operations from the command line. Use this skill when the user needs to interact with GitLab resources or perform GitLab workflows.