Burrow system tools
Burrow runs a local MCP server over the user's Mac: live + historical system
state (read-only) and gated maintenance. The governing habit is diagnose
first — when a question is about this machine, or you spot a system symptom
mid-task, reach for the read-only tools, name the cause, then propose a fix.
Read-only tools never change anything, so there's no reason to hesitate.
Diagnose first (read-only — always safe)
- burrow_doctor — one-call health sweep: engine present, Full Disk Access,
memory pressure, disk headroom, SMART disk health, Time Machine backup age,
recent decode errors. Start here for any vague "something's wrong / is my
Mac healthy?" — it tells you which area to drill into. It does not
report SIP / Gatekeeper / FileVault / firewall over MCP (only the GUI fills
those in), so for "is my Mac secure?" read them from the shell rather than
claiming the tool checked them.
- burrow_snapshot — current vitals (CPU, memory, disk, network, temperature,
top processes, a 0–100 health score). For "what's happening right now".
- burrow_top_processes — top CPU right now. For "what's using my CPU / why
is it hot or loud?"
- burrow_process_usage — ranks over a window by cpu_time / peak_cpu /
avg_cpu / peak_mem. Prefer this for "all day / since this morning / what's
draining my battery?"
- burrow_history / burrow_diff — a trend over time, or what changed since
a point ("it got slow in the last hour").
- burrow_disk_forecast — "when will my disk fill up?" (pointless once the
disk is already full — go straight to analyze). burrow_analyze
<path> — "what's eating space in <folder>?" Supports
depth (descend
into the largest subdirectories in one call), limit, and min_size — e.g.
depth: 2, min_size: 104857600 maps hotspots without a call per directory.
Scanning a home folder or ~/Library can take minutes: pass the most specific
path you can.
- burrow_ports — "what's listening / what's on port 3000?" (pid + owner).
- burrow_cleanup_history / burrow_deleted_files — what Burrow has cleaned,
and exactly which files it removed.
- burrow_list_apps — installed apps + the exact names uninstall accepts (call
this before any uninstall). burrow_info — whether Burrow is even recording
data (use when results look empty or stale).
- Reclaim candidates (read-only, report-only — they find things worth
deleting but never delete): burrow_dupes
paths (duplicate files),
burrow_photos path (visually near-duplicate images), burrow_orphans
path (files belonging to no installed app), burrow_sentinel (apps
sitting in the Trash whose leftovers you could sweep), burrow_slim_check
binary (how much thinning a fat binary would reclaim), burrow_net
(which app is moving bytes right now), burrow_rules_dryrun dir (what a
community rules directory would target).
- burrow_anomalies — processes whose last-24h CPU has regressed against
their own 14-day baseline. Reach for it when the user says something feels
off but nothing looks obviously high: this is per-process, so a program that
always sits at 40% isn't flagged and one that went 2% → 15% is.
- burrow_agent_audit — what agents (including you, earlier) have already run
through this server: the tool, the exact arguments, dry-run or real, and the
outcome. Check it before repeating a cleanup, and whenever you're not sure a
call went through.
Then act (gated — preview by default)
Maintenance tools mutate the system. They run dry-run by default; a real run
needs confirm: true and the user's Settings opt-in, so a confirmed call may
still be refused and reported as blocked. Always show the dry-run preview and
get the user's explicit go before passing confirm: true — never assume a real
run will execute.
- burrow_clean / burrow_optimize — remove caches/logs/junk / run safe
maintenance. The clean scan can take minutes on a full disk; a result with
timed_out: true means the run was killed, not that nothing needed cleaning.
- burrow_uninstall — remove apps + leftovers (to Trash unless
permanent;
resolve names via burrow_list_apps first; it aborts unless the matcher hits
exactly the apps you named).
- burrow_purge / burrow_installer — preview-only over MCP (dev build
artifacts / leftover installers); the real run is interactive in the app.
Resources, prompts, and long scans
Burrow also exposes its read-only answers as resources, which you can attach
instead of re-calling a tool: burrow://doctor, burrow://snapshot/latest,
burrow://ports, burrow://info, burrow://forecast/disk,
burrow://cleanup/history, burrow://cleanup/deleted-files,
burrow://agent-audit, burrow://anomalies, burrow://report/weekly, plus
burrow://history/{minutes}, burrow://processes/{metric} and
burrow://report/{days}. Each read says how long it stays fresh — five seconds
for a live snapshot, a minute for a digest — so re-read rather than trusting a
minutes-old attachment.
Its prompts (diagnose_slow_mac, reclaim_disk_space,
explain_last_cleanup, investigate_process, pre_uninstall_check) encode the
tool orderings that avoid wrong answers — worth offering when the user's request
matches one.
Slow scans (burrow_analyze on a big folder, burrow_clean, burrow_dupes)
may come back as a task handle instead of a result if your client supports
the tasks extension. Poll tasks/get until it reaches a terminal status rather
than assuming the call failed.
Be proactive
The biggest win is catching problems the user hasn't mentioned. If, mid-task, you
hit or notice a system symptom — a build failing because the disk is nearly full,
a process pinning the CPU, a port already in use — pause, run the relevant
read-only tool, tell the user what you found, and offer the fix. That's the
behaviour to lean into; don't wait to be asked.
Patterns
- Low on disk (the most common real emergency) →
burrow_analyze with
depth: 2 on the suspect folder (largest user dirs first; skip the forecast
if the disk is already full) → burrow_dupes / burrow_photos /
burrow_orphans / burrow_sentinel for reclaim candidates → burrow_clean
preview → burrow_purge / burrow_installer previews. If user folders don't
account for the usage, check APFS local snapshots
(tmutil listlocalsnapshots /) and purgeable space — Burrow doesn't report
those yet, so shell out for that piece.
- Slow / hot / loud →
burrow_doctor → burrow_top_processes (now) or
burrow_process_usage (over time) → name the culprit → offer a clean/optimize
preview if relevant.
- "Feels off" but nothing looks high →
burrow_anomalies.
- "Did that cleanup actually run?" →
burrow_agent_audit.
- What's listening →
burrow_ports. For SIP / FileVault / firewall, use the
shell — burrow_doctor doesn't cover them over MCP.
- Empty or stale results →
burrow_info to confirm Burrow is recording.
Full per-tool params + the safety model live in the Burrow repo at
docs/agent-tools.md.
1---2name: burrow-system-tools3description: Diagnose and fix the user's Mac with Burrow's local MCP tools (burrow_doctor, burrow_snapshot, burrow_top_processes, burrow_process_usage, burrow_ports, burrow_analyze, burrow_disk_forecast, burrow_dupes, burrow_anomalies, burrow_agent_audit, burrow_clean, …). Use whenever the Mac is slow, hot, loud, low on disk, draining battery, or misbehaving; when the user asks what's using CPU/memory, what's listening on a port, what's eating disk space, where the duplicate or leftover files are, whether anything is behaving unusually, or what an agent already changed; AND proactively — if you notice a system problem mid-task (low disk, a runaway process, a port conflict), reach for these tools to diagnose and offer a fix without being asked. Requires Burrow's MCP server connected (burrow_* tools available).4---56# Burrow system tools78Burrow runs a local MCP server over the user's Mac: live + historical system9state (read-only) and gated maintenance. The governing habit is **diagnose10first** — when a question is about *this machine*, or you spot a system symptom11mid-task, reach for the read-only tools, name the cause, *then* propose a fix.12Read-only tools never change anything, so there's no reason to hesitate.1314## Diagnose first (read-only — always safe)1516- **burrow_doctor** — one-call health sweep: engine present, Full Disk Access,17 memory pressure, disk headroom, SMART disk health, Time Machine backup age,18 recent decode errors. **Start here for any vague "something's wrong / is my19 Mac healthy?"** — it tells you which area to drill into. It does **not**20 report SIP / Gatekeeper / FileVault / firewall over MCP (only the GUI fills21 those in), so for "is my Mac secure?" read them from the shell rather than22 claiming the tool checked them.23- **burrow_snapshot** — current vitals (CPU, memory, disk, network, temperature,24 top processes, a 0–100 health score). For "what's happening right now".25- **burrow_top_processes** — top CPU *right now*. For "what's using my CPU / why26 is it hot or loud?"27- **burrow_process_usage** — ranks over a *window* by cpu_time / peak_cpu /28 avg_cpu / peak_mem. Prefer this for "all day / since this morning / what's29 draining my battery?"30- **burrow_history** / **burrow_diff** — a trend over time, or what changed since31 a point ("it got slow in the last hour").32- **burrow_disk_forecast** — "when will my disk fill up?" (pointless once the33 disk is already full — go straight to analyze). **burrow_analyze34 <path>** — "what's eating space in <folder>?" Supports `depth` (descend35 into the largest subdirectories in one call), `limit`, and `min_size` — e.g.36 `depth: 2, min_size: 104857600` maps hotspots without a call per directory.37 Scanning a home folder or ~/Library can take minutes: pass the most specific38 path you can.39- **burrow_ports** — "what's listening / what's on port 3000?" (pid + owner).40- **burrow_cleanup_history** / **burrow_deleted_files** — what Burrow has cleaned,41 and exactly which files it removed.42- **burrow_list_apps** — installed apps + the exact names uninstall accepts (call43 this before any uninstall). **burrow_info** — whether Burrow is even recording44 data (use when results look empty or stale).45- **Reclaim candidates** (read-only, report-only — they find things worth46 deleting but never delete): **burrow_dupes** `paths` (duplicate files),47 **burrow_photos** `path` (visually near-duplicate images), **burrow_orphans**48 `path` (files belonging to no installed app), **burrow_sentinel** (apps49 sitting in the Trash whose leftovers you could sweep), **burrow_slim_check**50 `binary` (how much thinning a fat binary would reclaim), **burrow_net**51 (which app is moving bytes right now), **burrow_rules_dryrun** `dir` (what a52 community rules directory would target).53- **burrow_anomalies** — processes whose last-24h CPU has regressed against54 *their own* 14-day baseline. Reach for it when the user says something feels55 off but nothing looks obviously high: this is per-process, so a program that56 always sits at 40% isn't flagged and one that went 2% → 15% is.57- **burrow_agent_audit** — what agents (including you, earlier) have already run58 through this server: the tool, the exact arguments, dry-run or real, and the59 outcome. Check it before repeating a cleanup, and whenever you're not sure a60 call went through.6162## Then act (gated — preview by default)6364Maintenance tools mutate the system. They run **dry-run by default**; a real run65needs `confirm: true` *and* the user's Settings opt-in, so a confirmed call may66still be refused and reported as blocked. **Always show the dry-run preview and67get the user's explicit go before passing `confirm: true`** — never assume a real68run will execute.6970- **burrow_clean** / **burrow_optimize** — remove caches/logs/junk / run safe71 maintenance. The clean scan can take minutes on a full disk; a result with72 `timed_out: true` means the run was killed, not that nothing needed cleaning.73- **burrow_uninstall** — remove apps + leftovers (to Trash unless `permanent`;74 resolve names via `burrow_list_apps` first; it aborts unless the matcher hits75 exactly the apps you named).76- **burrow_purge** / **burrow_installer** — preview-only over MCP (dev build77 artifacts / leftover installers); the real run is interactive in the app.7879## Resources, prompts, and long scans8081Burrow also exposes its read-only answers as **resources**, which you can attach82instead of re-calling a tool: `burrow://doctor`, `burrow://snapshot/latest`,83`burrow://ports`, `burrow://info`, `burrow://forecast/disk`,84`burrow://cleanup/history`, `burrow://cleanup/deleted-files`,85`burrow://agent-audit`, `burrow://anomalies`, `burrow://report/weekly`, plus86`burrow://history/{minutes}`, `burrow://processes/{metric}` and87`burrow://report/{days}`. Each read says how long it stays fresh — five seconds88for a live snapshot, a minute for a digest — so re-read rather than trusting a89minutes-old attachment.9091Its **prompts** (`diagnose_slow_mac`, `reclaim_disk_space`,92`explain_last_cleanup`, `investigate_process`, `pre_uninstall_check`) encode the93tool orderings that avoid wrong answers — worth offering when the user's request94matches one.9596Slow scans (`burrow_analyze` on a big folder, `burrow_clean`, `burrow_dupes`)97may come back as a **task handle** instead of a result if your client supports98the tasks extension. Poll `tasks/get` until it reaches a terminal status rather99than assuming the call failed.100101## Be proactive102103The biggest win is catching problems the user hasn't mentioned. If, mid-task, you104hit or notice a system symptom — a build failing because the disk is nearly full,105a process pinning the CPU, a port already in use — **pause, run the relevant106read-only tool, tell the user what you found, and offer the fix.** That's the107behaviour to lean into; don't wait to be asked.108109## Patterns110111- **Low on disk** (the most common real emergency) → `burrow_analyze` with112 `depth: 2` on the suspect folder (largest user dirs first; skip the forecast113 if the disk is already full) → `burrow_dupes` / `burrow_photos` /114 `burrow_orphans` / `burrow_sentinel` for reclaim candidates → `burrow_clean`115 preview → `burrow_purge` / `burrow_installer` previews. If user folders don't116 account for the usage, check APFS local snapshots117 (`tmutil listlocalsnapshots /`) and purgeable space — Burrow doesn't report118 those yet, so shell out for that piece.119- **Slow / hot / loud** → `burrow_doctor` → `burrow_top_processes` (now) or120 `burrow_process_usage` (over time) → name the culprit → offer a clean/optimize121 *preview* if relevant.122- **"Feels off" but nothing looks high** → `burrow_anomalies`.123- **"Did that cleanup actually run?"** → `burrow_agent_audit`.124- **What's listening** → `burrow_ports`. For SIP / FileVault / firewall, use the125 shell — `burrow_doctor` doesn't cover them over MCP.126- **Empty or stale results** → `burrow_info` to confirm Burrow is recording.127128Full per-tool params + the safety model live in the Burrow repo at129`docs/agent-tools.md`.