Skip to main content
Glama
cacheout-app

cacheout-mcp

Official
by cacheout-app

cacheout-mcp

MCP server for macOS disk cache management — lets AI agents free disk space on demand.

Why

When you run AI agents (OpenClaw, Claude Code, etc.) on a Mac Mini or any macOS machine, disk pressure can silently degrade performance. Swap thrashing, failed builds, Docker OOM — all from running out of space that's locked up in developer caches.

cacheout-mcp gives your agent a set of tools to detect and fix disk pressure in real-time:

Agent detects 2 GB free → calls cacheout_smart_clean(target_gb=15) → 15 GB freed in 3 seconds

Related MCP server: container-mcp

Three Execution Modes

Mode

When

How it works

Socket

Cacheout daemon running with Unix socket

Connects to daemon for real-time data, trend analysis, health scores

App

Cacheout.app installed, no running daemon

Delegates to Cacheout CLI binary (--cli flag)

Standalone

No Cacheout.app (headless servers)

Cleans caches directly via Python, reads sysctl for memory stats

Mode is auto-detected at startup (socket → app → standalone). Override with CACHEOUT_MODE=standalone or CACHEOUT_MODE=app.

Install

# From PyPI (when published)
pip install cacheout-mcp

# From source
cd cacheout-mcp
pip install -e .

MCP Configuration

Claude Code / Claude Desktop

Add to ~/.claude/claude_desktop_config.json or your project's .mcp.json:

{
  "mcpServers": {
    "cacheout": {
      "command": "cacheout-mcp",
      "env": {}
    }
  }
}

OpenClaw / Custom Agents

{
  "mcpServers": {
    "cacheout": {
      "command": "python",
      "args": ["-m", "cacheout_mcp.server"],
      "env": {
        "CACHEOUT_MODE": "standalone"
      }
    }
  }
}

With uv (no install needed)

{
  "mcpServers": {
    "cacheout": {
      "command": "uvx",
      "args": ["cacheout-mcp"]
    }
  }
}

Tools

cacheout_get_disk_usage

Check current disk space. No parameters.

→ {"total": "500.1 GB", "free": "23.4 GB", "used_percent": 95.3}

cacheout_scan_caches

Scan all cache directories and report sizes. Optional filters:

  • categories: List of slugs to scan (omit for all)

  • min_size_mb: Only show categories above this size

→ {"total_cleanable": "45.2 GB", "categories": [{"slug": "xcode_derived_data", "size_human": "15.0 GB", ...}]}

cacheout_clear_cache

Clear specific categories by slug. Requires explicit category list.

  • categories: Required list of slugs

  • dry_run: Preview without deleting

← {"categories": ["xcode_derived_data", "homebrew_cache"], "dry_run": false}
→ {"total_freed": "18.2 GB", "results": [...]}

cacheout_smart_clean

The primary tool for agents. Specify how much space you need; it clears safest caches first.

  • target_gb: Required — how many GB to free

  • dry_run: Preview mode

  • include_caution: Include Docker and other high-risk categories

  • free_memory: Also run memory purge after disk cleanup (adds memory_freed, purge_result to response)

← {"target_gb": 10.0}
→ {"target_met": true, "total_freed_human": "12.3 GB", "disk_after": {"free_gb": 17.5}}

cacheout_status

Server status, mode, and available categories.

cacheout_get_memory_stats

Check RAM, swap, memory pressure, and memory tier. No parameters.

→ {"total_physical_mb": 16384.0, "memory_tier": "comfortable", "estimated_available_mb": 6096.0, ...}

cacheout_get_process_memory

List top memory-consuming processes. Optional top_n and sort_by parameters. Returns envelope: {mode, capabilities, data: {processes, count, sort_by_applied}, partial}.

cacheout_get_compressor_health

Check macOS memory compressor ratio, compression/decompression rates, and thrashing detection. No parameters. Returns envelope: {mode, capabilities, data: {compressor_ratio, thrashing, ...}, partial}.

cacheout_memory_intervention

Run memory interventions. Required parameters:

  • intervention_name: Canonical name (e.g., "purge")

  • confirm: false for dry-run preview, true to execute

Returns envelope: {mode, capabilities, data: {dry_run, intervention, ...}, partial}.

cacheout_system_health

Combined disk + memory + alert health check with a 0-100 score. No parameters. In socket mode, fetches from daemon. In standalone, computes locally.

cacheout_check_alerts

Read watchdog alerts (near-zero cost file read). Optional acknowledge parameter.

cacheout_get_recommendations

Get predictive memory/disk recommendations. Socket mode includes trend-based types (exhaustion_imminent, compressor_degrading). Standalone returns snapshot types only.

cacheout_configure_autopilot

Validate and apply autopilot/watchdog configuration. Required config parameter (dict with version, enabled, optional rules/webhook/telegram). This is a write/validate/apply tool.

Cache Categories (23 total)

Slug

Risk

What it cleans

xcode_derived_data

Safe

Build artifacts, indexes

uv_cache

Safe

Fast Python installer cache

homebrew_cache

Safe

Downloaded bottles/tarballs

npm_cache

Safe

npm package cache

yarn_cache

Safe

Yarn package cache

pnpm_store

Safe

pnpm content-addressable store

bun_cache

Safe

Bun package manager cache

typescript_cache

Safe

TypeScript compiler + Next.js SWC cache

playwright_browsers

Safe

Playwright browser binaries

cocoapods_cache

Safe

CocoaPods specs and pods

node_gyp_cache

Safe

Native Node.js addon headers

prisma_engines

Safe

Prisma ORM query engine binaries

swift_pm_cache

Safe

Swift Package Manager cache

gradle_cache

Safe

Gradle build cache

pip_cache

Safe

Python pip cache

chatgpt_desktop_cache

Safe

ChatGPT desktop app cache

vscode_cache

Safe

VS Code updates and extensions

electron_cache

Safe

Shared Electron framework cache

browser_caches

Review

Brave/Chrome cached web content

xcode_device_support

Review

iOS device debug symbols

simulator_devices

Review

iOS/watchOS simulator data (uses xcrun)

torch_hub

Review

PyTorch models (slow to re-download)

docker_disk

Caution

Docker virtual disk (all images/containers)

Smart Clean Priority

When smart_clean is called, categories are cleaned in this order:

  1. Safe categories, sorted by clean_priority (build artifacts first)

  2. Review categories (browser caches, device support)

  3. Caution categories (Docker) — only if include_caution=true

Stops as soon as target_gb is freed.

Environment Variables

Variable

Default

Description

CACHEOUT_MODE

auto-detect

Force standalone or app mode

CACHEOUT_BIN

auto-detect

Path to Cacheout binary

Adding the CLI to Cacheout.app

If you maintain the Cacheout Swift app, add the CLIHandler.swift file to your Sources and update CacheoutApp.swift to check CLIHandler.shouldHandleCLI() on init. This enables Cacheout --cli scan, Cacheout --cli clean, etc. for app-mode integration.

License

MIT

Available Tools

13 tools
cacheout_check_alertsA

Check if the Cacheout watchdog has raised any disk/swap/memory alerts. This is a near-zero-cost check (reads a small JSON file). Use this at the start of tasks, before builds, or after errors — NOT on a polling loop. Returns null if no alert is active. If an alert exists, review it and take action with smart_clean, then call again with acknowledge=true to clear it.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries burden. Discloses cost ('near-zero-cost, reads a small JSON file'), return value ('null if no alert'), and workflow for clearing alerts with acknowledge=true. Could explicitly state read-only nature for default call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise: three sentences, front-loaded purpose, no fluff, each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a simple tool with one parameter and output schema. Covers purpose, usage, parameter, return behavior, and workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one boolean parameter 'acknowledge' with clear meaning explained in description. Schema has 0% description coverage, so description adds full value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Check' and resource 'Cacheout watchdog alerts'. Distinguishes from siblings by noting it's a near-zero-cost check, unlike other tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use: 'at the start of tasks, before builds, or after errors', and what not to do: 'NOT on a polling loop'. Also provides post-alert workflow instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cacheout_clear_cacheA
DestructiveIdempotent

Clear specific cache categories to free disk space.

Removes the contents of the specified cache directories. The directories themselves are preserved — only their contents are deleted. All cleared caches will regenerate automatically when their respective tools are used.

IMPORTANT: Use cacheout_scan_caches first to see sizes, then pass the slugs of categories you want to clear. Use dry_run=true to preview.

Args: params: Categories to clear and whether to dry-run.

Returns: str: JSON report of what was cleaned and total space freed. { "total_freed": "12.3 GB", "total_freed_bytes": 13204889600, "dry_run": false, "results": [ { "slug": "xcode_derived_data", "name": "Xcode DerivedData", "bytes_freed": 8500000000, "freed_human": "8.5 GB", "success": true, "error": null } ] }

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true and idempotentHint=true. The description adds significant context: directories are preserved, only contents deleted, caches regenerate automatically, and dry_run behavior is detailed. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a one-line summary, bulleted details, and a clear example of the return format. Every sentence adds value, and the most critical information (preview with scan_caches) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's destructive nature (annotations), the description fully covers what happens, the recommended workflow, and the return value format via the output schema example. No gaps remain for an agent to misinterpret.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema properties (categories and dry_run) have detailed descriptions, so schema coverage is effectively 100% despite the 0% note. The description adds minimal extra meaning beyond those schema descriptions. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Clear specific cache categories to free disk space'), identifies the resource (cache categories), and distinguishes from siblings like cacheout_scan_caches by advising to use that tool first. The verb and outcome are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: run cacheout_scan_caches first to see sizes, then pass slugs, and use dry_run=true to preview. It does not compare directly with smart_clean, but the workflow is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cacheout_configure_autopilotA
Idempotent

Configure the autopilot policy for the headless daemon.

Uses a validate-then-write flow:

  1. Writes candidate config to autopilot.candidate.json (0600)

  2. If daemon running: validates via socket; else validates locally

  3. Invalid: deletes candidate, returns errors

  4. Valid: atomically renames candidate to autopilot.json

  5. If daemon: sends SIGHUP and polls for config generation increment

The local validator mirrors the daemon's shared validator exactly:

  • version must be 1

  • enabled must be boolean

  • Rules: actions must be 'pressure-trigger' or 'reduce-transparency'

  • Webhook (if present): url required, format = 'generic', timeout_s 1-60

  • Telegram (if present): bot_token + chat_id required, timeout_s 1-60

Args: params: Config object to validate and apply.

Returns: str: JSON with success status, validation errors, and any warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description details the entire validate-then-write flow, including file writes, validation via socket or locally, atomic rename, SIGHUP, and polling. This goes well beyond the annotations which only hint at idempotency and non-destructiveness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: purpose first, then numbered steps, then validation rules. It is slightly verbose but every part adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity, the description covers the config structure, validation details, execution flow, and return format. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description fully compensates by specifying validation rules for version, enabled, rules, webhook, and telegram, including exact required fields and value ranges.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Configure the autopilot policy for the headless daemon', which is a specific verb-resource combination. It distinguishes from siblings which deal with alerts, cache, health, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. There are 11 sibling tools, but no mention of when to choose this one over them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cacheout_get_compressor_healthA
Read-onlyIdempotent

Get macOS memory compressor health metrics.

Returns compressor ratio, compression/decompression rates (via dual-sample), thrashing detection, pressure level, and trend information.

Takes two samples ~1 second apart to compute instantaneous rates. Thrashing is flagged when decompression_rate > 100/sec AND > 2x compression_rate (aligned with CompressorTracker.swift thresholds).

Trend requires multiple invocations over time — a single call returns "unknown" with partial=true.

In standalone mode, reads vm_stat and sysctl directly. In app mode, delegates to --cli memory-stats.

Returns: str: JSON envelope with mode, capabilities, data (ratio, rates, thrashing), partial.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond annotations by detailing the dual-sample measurement (~1 second apart), thrashing detection criteria, trend behavior requiring multiple invocations, and mode differences (standalone vs app). This adds significant behavioral context that annotations alone do not cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the primary purpose and provides detailed, relevant information in a structured order. While thorough, some sentences could be merged to reduce length slightly without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description adequately covers behavior, return envelope, and mode handling. It lacks error conditions or prerequisites, but for a health-read tool this is acceptable. Overall, it provides sufficient context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no meaningful parameters (only an empty params object), so the baseline is 4. The description does not need to elaborate on parameters and focuses on the tool's operation instead, which is appropriate given the schema's emptiness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves 'macOS memory compressor health metrics' with specific outputs like ratio, rates, thrashing detection, pressure level, and trend. It differentiates well from sibling tools like cacheout_get_memory_stats and cacheout_system_health by focusing exclusively on compressor health.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how the tool works (dual-sampling, thrashing thresholds) but does not explicitly state when to use it over alternatives. No direct comparison with siblings or exclusion conditions are provided, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cacheout_get_disk_usageA
Read-onlyIdempotent

Get current disk space on the boot volume.

Returns total, used, and free disk space with human-readable sizes. Use this to check if disk pressure exists before deciding to clean.

Returns: str: JSON with total, free, used space and percentages. { "total": "500.1 GB", "free": "23.4 GB", "used": "476.7 GB", "free_gb": 23.4, "used_percent": 95.3 }

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds valuable details about the output format (total, free, used with human-readable sizes and percentages) and includes a concrete example, which goes beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three brief sentences plus a returns block. It front-loads the purpose, provides usage guidance, and gives output details without any redundant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (zero parameters, safe read operation), the description fully covers what the agent needs: purpose, usage context, and detailed return format. The output schema is present, but the description's example enhances understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage and contains a single empty params object. The description explicitly states 'No parameters required.', adding meaning that the schema lacks. This clarifies usage for the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool gets current disk space on the boot volume, with a clear verb 'Get' and a specific resource 'disk usage'. It distinguishes from sibling tools like cacheout_get_memory_stats (memory) and cacheout_check_alerts (alerts).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using this tool to check for disk pressure before deciding to clean, providing a clear use case. While it doesn't explicitly state when not to use it, the context is sufficient given the uniqueness of disk monitoring among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cacheout_get_memory_statsA
Read-onlyIdempotent

Get current system memory statistics on macOS.

Returns physical RAM breakdown (free, active, inactive, wired, compressed), swap usage, compressor ratio, memory pressure level, and an actionable memory tier classification.

Use this to check memory health before builds, heavy tasks, or when investigating performance issues. The memory_tier field provides a quick assessment: abundant > comfortable > moderate > constrained > critical.

In app mode, delegates to CacheOut CLI. In standalone mode, reads sysctl values directly (no CacheOut.app needed).

Returns: str: JSON with memory statistics. { "total_physical_mb": 8192.0, "free_mb": 512.3, "active_mb": 3200.1, "inactive_mb": 1024.5, "wired_mb": 2048.7, "compressed_mb": 800.2, "compressor_ratio": 2.5, "swap_used_mb": 256.0, "pressure_level": 1, "memory_tier": "moderate", "estimated_available_mb": 1536.8, "mode": "standalone" }

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds mode-dependent behavior (app mode vs standalone mode) and details about the memory_tier field. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured, front-loading the purpose and listing all returned fields. The sample output is helpful but slightly lengthy. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (many return fields, mode behavior), the description covers all aspects: what it returns, when to use, and mode details. Annotations and the implicit output schema are sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no actual parameters (the input schema's nested object has no properties). The description adds no parameter info because none is needed. Schema coverage is 0%, but that is irrelevant as there are no parameters to describe.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool gets current system memory statistics on macOS, listing all returned fields and their purpose. It is distinct from sibling tools like cacheout_get_disk_usage and cacheout_get_compressor_health.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context for when to use the tool: 'check memory health before builds, heavy tasks, or when investigating performance issues.' It lacks explicit when-not-to-use or alternative tool references, but the usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cacheout_get_process_memoryA
Read-onlyIdempotent

Get top processes by memory usage on macOS.

Returns a ranked list of the top N processes sorted by memory consumption. In standalone mode, uses RSS from ps (labeled as an estimate). In app mode, uses physical footprint from the Cacheout CLI.

Sort keys are mode-dependent:

  • standalone: 'rss' (default)

  • app: 'phys_footprint' (default)

The capabilities map in the response shows which sort keys are available. sort_by_pageins is gated to false in all modes this phase.

Args: params: top_n (default 10) and optional sort_by key.

Returns: str: JSON envelope with mode, capabilities, data (processes + sort info), partial.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. The description adds valuable context: explains the two modes (standalone RSS estimate vs app physical footprint), notes that sort_by_pageins is gated false, and describes the response envelope (mode, capabilities, data). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (5 sentences) and well-structured: first sentence describes purpose, then return format, mode details, sort key behavior, and finally parameters. No superfluous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and annotations, the description covers all major aspects: purpose, mode dependency, sort key behavior, parameter defaults, and response structure. It adequately informs usage without missing critical details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has detailed descriptions for both parameters (top_n and sort_by). The description adds context by linking sort_by to mode-dependency and mentioning the pageins gate. This goes beyond the schema, providing additional semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get top processes by memory usage') and resource ('top processes on macOS'). It distinguishes itself from all sibling tools, which deal with caches, alerts, disk, etc. No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the tool retrieves top processes sorted by memory consumption, and clarifies mode-dependent behavior (standalone vs app). While it doesn't explicitly state when not to use it, the context is sufficient and no alternative tool exists among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cacheout_get_recommendationsA
Read-onlyIdempotent

Get predictive memory recommendations from the Cacheout engine.

Returns advisory recommendations about memory health, including compressor degradation, swap pressure, high-growth processes, Rosetta-translated processes, and agent memory pressure.

Mode-dependent behavior:

  • socket: Full recommendations from daemon (all 7 types when conditions apply)

  • app: Snapshot-only recommendations from CLI (no trend-based types)

  • standalone: Basic recommendations from sysctl (compressor_low_ratio, swap_pressure only)

The partial flag in _meta indicates degraded results:

  • Always true in app/standalone modes (no trend data)

  • True in socket mode only when daemon's process scan was incomplete

Returns: str: JSON with recommendations array and _meta. { "recommendations": [ { "type": "compressor_low_ratio", "message": "Compression ratio 1.5 is below 2.0", "process": null, "pid": null, "impact_value": 1.5, "impact_unit": "ratio", "confidence": "low", "source": "standalone" } ], "_meta": { "mode": "standalone", "count": 1, "partial": true, "source": "standalone" } }

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. The description adds valuable behavioral context: mode-dependent result quality, the meaning of the partial flag, and the list of recommendation types. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: starts with overall purpose, then details mode behavior, partial flag, and includes an example output. Every sentence serves a purpose, no fluff. It is front-loaded and appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple modes, partial flag, structured output), the description covers all essential aspects: mode-dependent behavior, partial flag semantics, and a full output schema example. It is complete enough for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema description coverage is 100%. The description adds context about return format and mode-dependent behavior, which compensates for the lack of parameters. Baseline 4 for zero parameters is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets predictive memory recommendations from the Cacheout engine, listing specific recommendation types. This verb+resource combination distinguishes it from siblings like cacheout_get_memory_stats or cacheout_get_compressor_health.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains mode-dependent behavior (socket, app, standalone) and when the partial flag is true, giving the agent context on when results are degraded. It does not explicitly compare to siblings or state when not to use, but the mode details provide sufficient guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cacheout_memory_interventionA
Destructive

Execute a memory reclamation intervention on macOS.

IMPORTANT: Always call with confirm=false first to preview what will happen, then call again with confirm=true to execute.

Available interventions:

  • purge: Flush the Unified Buffer Cache (UBC) to reclaim purgeable memory. Works in both standalone and app modes.

  • trigger_pressure_warn: Manual pressure event (app only, not yet available)

  • reduce_transparency: Toggle transparency setting (app only, not yet available)

  • delete_sleepimage: Remove sleepimage file (app only, not yet available)

  • cleanup_snapshots: Clean orphaned APFS snapshots (app only, not yet available)

  • flush_compositor: Display mode toggle (app only, not yet available)

In standalone mode, only 'purge' is supported. In app mode, only 'purge' is currently wired; other interventions will unlock as the CLI surface grows.

The response always includes a capabilities map showing which interventions are available in the current mode.

Args: params: intervention_name, confirm flag, and optional target_pid.

Returns: str: JSON envelope with mode, capabilities, data, partial.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true; description adds valuable context on dry-run vs execution, mode-dependent availability, and response capabilities map. Fully transparent about side effects and prerequisites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured: one-line summary, bold usage note, bullet list, mode details, return info. Front-loaded and concise given complexity; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers core usage, interventions, modes, and response hints. Lacks error conditions or performance impact notes, but output schema handles return details. Adequately complete for a moderately complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema description coverage is 0%, the description explains the intervention list, confirm flag purpose, and mode constraints. Target_pid is noted as reserved. Adds meaningful context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Execute a memory reclamation intervention on macOS,' specifying the verb and resource. It distinguishes from sibling tools by focusing on memory purge/reclaim, unlike cache or disk utilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit two-step usage pattern (confirm=false then confirm=true) and lists available interventions with mode constraints. However, no direct comparison to sibling tools for when to use this vs alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cacheout_scan_cachesA
Read-onlyIdempotent

Scan macOS cache directories and report their sizes.

Scans developer tool caches (Xcode, Homebrew, npm, pip, Docker, etc.) and reports the size of each. Results are sorted by size (largest first).

Use this to understand what's consuming disk space before cleaning.

Args: params: Optional filters — specific category slugs or minimum size.

Returns: str: JSON array of cache categories with sizes, sorted largest first. [ { "slug": "xcode_derived_data", "name": "Xcode DerivedData", "size_bytes": 15032000000, "size_human": "15.0 GB", "item_count": 4230, "risk_level": "safe", "description": "Build artifacts...", "rebuild_note": "Xcode rebuilds on next build" } ]

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that results are 'sorted by size (largest first)' and that it 'scans developer tool caches.' It does not disclose potential performance impacts, caching behavior, or authentication requirements. Given the strong annotation baseline, the additional context is modest but adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: three sentences plus a brief args/returns block. It front-loads the core purpose, then adds relevant detail (which caches, sorting), and ends with usage guidance. Every sentence is valuable. No repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (filter parameters, multiple cache categories) and the presence of an output schema (documented return format), the description covers the main intent and usage. It lacks nuance about the 'risk_level' and 'rebuild_note' fields in the return, but those are detailed in the schema. The description is complete enough for informed invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool description does not elaborate on the parameters. However, the input schema provides detailed descriptions for both 'categories' (list of slugs) and 'min_size_mb' (minimum size filter). Since schema_description_coverage is 0% (the description text covers none of the parameters), but the schema itself is comprehensive, the description adds no extra meaning. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: 'Scan macOS cache directories and report their sizes.' It specifies the resource (macOS caches) and verb (scan/report). It lists which developer caches are scanned, distinguishing it from sister tools like cacheout_clear_cache (cleans) or cacheout_system_health (health check). The tool is unambiguously a read-only analysis tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to understand what's consuming disk space before cleaning.' This provides clear context for when to invoke the tool (pre-cleaning) and implies it's not for cleaning itself. However, it does not explicitly mention when not to use it (e.g., not for checking alerts or general health). But the guidance is direct and sufficient for most agents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cacheout_smart_cleanA
Destructive

Intelligently free disk space by clearing caches in priority order.

This is the PRIMARY tool for agents managing disk pressure. Specify how many GB you need freed, and the server clears the safest caches first:

  1. Build artifacts (Xcode DerivedData) — always regenerates

  2. Package manager caches (Homebrew, npm, pip) — re-downloads as needed

  3. Browser caches — rebuilds on browsing

  4. Docker (only if include_caution=true) — destructive, last resort

The server stops as soon as the target is met. Use dry_run=true to preview which categories would be cleaned and how much space would be freed.

Typical use: An agent detects low disk space (or needs room for swap/builds) and calls smart_clean(target_gb=10.0) to free 10 GB immediately.

Args: params: Target GB to free, dry_run flag, and caution inclusion.

Returns: str: JSON report with before/after disk state and what was cleaned. { "target_gb": 10.0, "target_met": true, "total_freed_human": "12.3 GB", "dry_run": false, "disk_before": {"free_gb": 5.2, ...}, "disk_after": {"free_gb": 17.5, ...}, "cleaned": [...], "skipped": [...] }

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true. The description adds valuable context: the priority order of caches, that the server stops upon meeting the target, and the dry_run option. It does not contradict annotations and enhances understanding of side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a numbered priority list, example usage, and return format. It is front-loaded with the purpose. Minor redundancy could be trimmed, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the cleaning order, dry-run preview, and provides a sample return JSON. It covers most important aspects for an AI agent to use the tool effectively, though details about the 'cleaned' and 'skipped' fields are left to the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description omits the 'free_memory' parameter, mentioning only target_gb, dry_run, and include_caution. The input schema has comprehensive descriptions for all four parameters, so the description adds little value and is misleading by omission.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool frees disk space by clearing caches in priority order, with a specific verb and resource. It explicitly positions itself as the primary tool for disk pressure management, distinguishing it from siblings like cacheout_clear_cache and cacheout_scan_caches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (low disk space, need room for builds/swap) and provides a typical use case. It does not explicitly state when not to use it or compare with alternatives, but the context is clear enough for an AI agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cacheout_statusA
Read-onlyIdempotent

Get cacheout-mcp server status, mode, and available categories.

Returns the execution mode (standalone or app), the Cacheout binary path if in app mode, and a list of all available cache category slugs.

Use this to verify the server is running and understand its capabilities.

Returns: str: JSON with mode, binary path, and category list.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by specifying the return value structure (mode, binary path, category list) and the use case for verification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with three short sentences covering purpose, return values, and usage. Every sentence provides necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no parameters and an output schema. The description fully covers what the tool does, what it returns, and when to use it, making it complete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage but only contains an empty object parameter. The description does not need to explain parameters as there are none of substance, and baseline for 0 parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Get') and resource ('cacheout-mcp server status, mode, and available categories'), distinguishing it from sibling tools like cacheout_check_alerts and cacheout_clear_cache which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to verify the server is running and understand its capabilities', providing clear context. Does not explicitly exclude alternatives, but the purpose is specific enough that no exclusion is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cacheout_system_healthA
Read-onlyIdempotent

Get overall system health score with alerts.

Returns a health score (0-100, -1 if no data), the data source, and any active alerts from the daemon.

In socket mode (daemon running), fetches health data directly from the daemon's Unix socket for <1ms latency. In CLI/standalone mode, computes the health score locally using the canonical formula.

The health score formula: base = 100 critical pressure: -50, warn pressure: -25 swap penalty: min(50, swap_used_percent / 2) compressor penalty: min(30, max(0, (3.0 - ratio) * 10)) score = max(0, base - penalties)

Returns: str: JSON with score (Int, -1 if no data), source, and alerts array.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint and idempotentHint, and the description adds valuable behavioral details: health score formula, penalties, and mode-dependent behavior (socket vs standalone). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: purpose first, then return details, mode explanation, and formula. Every sentence is informative, and the code-like formula is concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no required parameters and the presence of an output schema (indicated), the description adequately covers the tool's behavior, mode, formula, and return format. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters to document (schema has no properties), and the description correctly notes 'No parameters required.' With 0 parameters, baseline is 4, and no additional semantics are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get overall system health score with alerts', specifying the resource and action. It does not explicitly differentiate from siblings like cacheout_check_alerts or cacheout_get_compressor_health, but the purpose is distinct enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains two modes (socket vs CLI/standalone) with latency implications, providing some context on when to use. However, it lacks explicit guidance on when not to use this tool or alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool targets a distinct function: alerts, memory stats, disk usage, cache scanning, cache clearing, smart cleaning, etc. Even similar tools like clear_cache and smart_clean are clearly differentiated by purpose and usage pattern.

Naming Consistency4/5

All tools use the 'cacheout_' prefix with an underscore-separated verb_noun structure. While most follow verb_noun (e.g., check_alerts, get_disk_usage), a few like memory_intervention and system_health use noun_noun, causing minor inconsistency.

Tool Count5/5

13 tools is well-scoped for a system health and cache management server. Each tool covers a necessary operation without being too numerous or too few, balancing comprehensiveness with simplicity.

Completeness5/5

The tool surface covers monitoring (disk, memory, alerts, health score), cache scanning and cleaning (specific and smart), memory intervention, recommendations, and configuration. No obvious gaps for the intended domain of macOS cache and resource management.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/cacheout-app/cacheout-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server