RE

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.zip

Installs 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.
136 charsno explicit “when” trigger
Intermediate

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

You give it
Edited MCP layer, core, or Kart file
You get back
Reloaded MCP servers and updated code

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-process
  • fleet_reload(target="all") — whitelist + Kart bounce, then auto-chains generation-swap when code_version.stale is still true

TOOL PRE-LOAD (first action after invocation)

ToolSearch query: "select:fleet_reload,fleet_restart,fleet_system_status"

Sequence

  1. Hot reload Willow + Kart — call mcp__willow__fleet_reload with target "all". This hot-swaps the Willow module whitelist and bounces the kart-worker unit (skipped automatically if a Kart task is in-flight — check the kart field in the result and report it). With WILLOW_TRUE_HOTRELOAD=1, a still-stale code_version triggers generation-swap automatically.
  2. Read code_version from the result. If stale is false, the reload covered everything — go to step 4.
  3. Escalate if still stale — call fleet_reload(target="code") when the flag is on; otherwise fleet_reload cannot load tool bodies. Last resort: mcp__willow__fleet_restart (default include_kart=True). The MCP process exits; reconnect the IDE MCP client (see below).
  4. Restart Grove — Grove tools are bundled in sap/unified_mcp.sh for Claude Code sessions; the fleet_restart above covers them. For standalone grove-serve (Felix/remote nodes), restart grove-mcp.service separately.
  5. Verify — call mcp__willow__fleet_system_status; confirm code_version.stale is now false and report the Kart restart status + Willow/Postgres health.

IDE MCP reconnect (after fleet_restart)

IDEReconnect
Claude Code/mcp
CursorSettings → MCP → toggle willow off/on, or reload window
Codex CLIRestart codex session / re-read ~/.codex/config.toml MCP

Targets / Arguments

  • /restart-server or all — full sequence above (reload → escalate if stale → verify).
  • /restart-server willowfleet_reload Willow modules only (no Kart bounce): pass target "gate"/"postgres"/"store" etc. as needed.
  • /restart-server kart — bounce the Kart worker only: fleet_reload target "kart". Use after editing core/kart_worker.py, core/kart_execute.py, or core/kart_sandbox.py / kart-sandbox.json when no MCP code changed.
  • /restart-server postgres — reconnect Postgres only (fleet_reload target "postgres").
  • /restart-server grove — restart Grove only.
  • /restart-server code — generation-swap only (fleet_reload target "code"); requires WILLOW_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.py or willow/fylgja/config/kart-sandbox.jsonKart will run stale code otherwise
  • After editing grove_db.py in the grove repo
  • When willow_status shows code_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 pkill the MCP server — it breaks the client connection; use fleet_restart + IDE reconnect.
  • A full fleet_restart requires MCP reconnect in the IDE — always remind the user.
  • Report the kart field 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.

SkillInstallsUpdatedSafetyDifficulty
restart-server (this skill)019dNo flagsIntermediate
turborepo611moReviewIntermediate
bazel-build-optimization142moNo flagsAdvanced
ml-pipeline-workflow94moNo flagsAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

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.

61191

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.

14116

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.

995

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.

672

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.

670

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.

664

Search skills

Search the agent skills registry