Skip to main content
Glama

mac-cleaner-mcp

공식 Model Context Protocol TypeScript SDK를 통해 제공되는 보수적인 macOS 개발자/저장 공간 정리 도구입니다. 전체 디스크 최적화 도구는 아닙니다. 먼저 보고하고, 광범위한 파괴적 위치를 거부하며, 드라이 런(dry run)을 지원합니다.

도구

  • scan_junk: DerivedData, iOS DeviceSupport, Gradle/Android 캐시, Homebrew 캐시, Node 패키지 캐시, Docker 회수 가능 공간, ~/Library/Caches, 대용량 Downloads 파일(>100MB), 그리고 발견된 node_modules.

  • clean_junk: 카테고리를 받으며 기본값은 dryRun: true입니다. DerivedData, DeviceSupport, Android/Gradle, Homebrew, Docker만 정리할 수 있습니다. Downloads, node_modules, 광범위한 캐시 루트는 의도적으로 거부됩니다.

  • get_disk_usage: 선택한 경로에 대해 df를 실행합니다.

Related MCP server: mac-disk-cleaner

설치 및 실행

macOS, Node.js 20+가 필요하며, 선택적으로 Docker가 필요합니다. root로 실행하지 마십시오.

git clone https://github.com/FFFames/mac-cleaner-mcp.git
cd mac-cleaner-mcp
npm install
npm run build
node dist/index.js

MCP는 stdio를 사용하므로 프로세스는 MCP 클라이언트가 실행해야 합니다. 정리는 파일을 삭제할 수 있습니다. dryRun: false로 설정하기 전에 드라이 런 출력을 검토하고 백업을 유지하십시오.

Claude Desktop / Cursor

클라이언트의 MCP 구성에 dist/index.js의 절대 경로를 추가하십시오:

{"mcpServers":{"mac-cleaner":{"command":"node","args":["/ABSOLUTE/PATH/mac-cleaner-mcp/dist/index.js"]}}}

클라이언트를 다시 시작하고 scan_junk를 호출한 다음, 선택한 카테고리와 dryRun: true로 clean_junk를 호출하십시오. 결과를 검토한 후에만 false를 사용하십시오. Cursor는 MCP 설정을 통해 동일한 stdio MCP 서버 구성을 지원합니다.

Poke / 원격 브리지

로컬 Poke 호환 브리지의 경우, 이 서버를 자식 프로세스로 실행하고 인증된 HTTPS 엔드포인트를 통해 MCP JSON-RPC stdin/stdout을 프록시하십시오. 간단한 옵션은 자체 브리지 프로세스 앞에 SSH/HTTP 브리지 또는 ngrok을 두는 것입니다:

ngrok http 8787

브리지의 업스트림 명령을 node /ABSOLUTE/PATH/mac-cleaner-mcp/dist/index.js로 구성한 다음, HTTPS ngrok URL을 Poke/MCP 연결에 등록하십시오. 인증되지 않은 엔드포인트를 절대 노출하지 마십시오. ngrok 인증 토큰을 사용하고, 호출자를 허용 목록에 추가하며, URL/토큰을 교체하십시오. 클리너 자체는 로컬 전용이며 네트워크 리스너가 없습니다.

안전

구현은 명시적 카테고리 허용 목록을 사용하고, 셸 와일드카드 확장이 없으며, 기본적으로 드라이 런을 사용하고, Downloads, node_modules, 전체 사용자 캐시 루트를 거부합니다. 사용 전에 소스를 검토하고 중요하지 않은 계정에서 테스트하십시오.

Available Tools

3 tools
clean_junkA

Safely remove selected caches. Always dry-run first.

NameRequiredDescriptionDefault
dryRunNo
categoriesYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must disclose behavior on its own. It hints at safety with 'Safely' and the dry-run instruction, which implies this is a destructive operation that can be previewed. But it does not state what gets permanently destroyed, whether confirmation is needed, or any permission requirements.

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?

Two short, front-loaded sentences deliver purpose and the critical safety tip with zero waste. The instruction is immediately actionable.

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

Completeness3/5

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

The tool is a simple mutation with two parameters and no output schema. The description covers the essential safety guidance but omits what happens after running (e.g., return value, confirmation prompts) and does not specify any prerequisites or side effects beyond the dry-run caution. It is adequate but not exhaustive.

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?

Schema description coverage is 0%, so the description should compensate, but it adds no parameter-specific information. The schema's enum values (e.g., 'derivedData', 'brew') are self-explanatory, and the default for dryRun is documented in the schema, but the description does not clarify how parameters interact or what the consequence of each selection is.

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 states a clear verb ('remove') and resource ('selected caches'), and the qualifier 'selected' signals user-controlled scope. It distinguishes this from scan_junk (which likely scans) and get_disk_usage (which measures usage) via the explicit removal action.

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 instruction 'Always dry-run first' provides an important safety guideline for usage. However, it does not explicitly mention when to use this tool versus alternatives (e.g., 'run scan_junk first to identify caches'), leaving that routing implicit.

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

get_disk_usageC

Report disk capacity and free space.

NameRequiredDescriptionDefault
pathNo/

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only operation ('report') but doesn't describe the output format, whether it scans the entire disk or just a mount point, or any side effects. This minimal disclosure is insufficient for a tool with no annotation coverage.

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 a single, concise sentence that fronts the core action. There is no fluff. However, its brevity omits essential context, making it minimal rather than well-structured; it earns its place but doesn't provide enough value.

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

Completeness2/5

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

For a tool with one optional parameter and no output schema, the description is incomplete. It fails to clarify whether the report covers the whole disk, a specific path, or what the output looks like. It doesn't explain how the path parameter affects results, leaving the agent without enough information to use the tool correctly.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate for the undocumented 'path' parameter. However, the description makes no mention of 'path' whatsoever. An agent receives no explanation of what the parameter does, its default value, or how it affects the report.

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 the tool's purpose: 'Report disk capacity and free space.' It uses a specific verb (report) and resource (disk usage), and the subject matter distinctly separates it from siblings scan_junk and clean_junk, which deal with junk files. However, it doesn't explicitly mention the path parameter or differentiate itself by name, so it falls short of a 5.

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?

No guidance is provided on when to use this tool versus alternatives. The description doesn't mention the siblings or any conditions for when checking disk usage would be appropriate, leaving the agent to infer when this tool should be invoked.

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

scan_junkD

Scan macOS developer/system caches and reclaimable space.

NameRequiredDescriptionDefault
categoriesNo

TDQS

D1.8/5.0
Behavior2/5

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

With no annotations, the description must cover behavior. It says 'Scan' which implies a read-only operation, but it does not explicitly state that it does not modify anything, nor does it disclose what it returns (e.g., a list of caches, sizes). No permissions or side effects are mentioned, leaving significant behavioral ambiguity.

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

Conciseness2/5

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

The description is a single sentence, which is concise, but it is under-specified rather than efficiently detailed. It front-loads the verb 'Scan' but provides no useful structure or breakdown of capabilities. It is more an under-specification than a model of conciseness.

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

Completeness1/5

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

Given no annotations, no output schema, and a parameter with zero schema descriptions, the description is grossly incomplete. An agent cannot determine what the tool returns, how to use the categories parameter, or how this tool relates to cleaning and disk usage. Essential information is entirely absent.

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

Parameters1/5

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

The only parameter, 'categories', is an array with enum values, but the schema lacks any descriptions (coverage 0%). The description does not mention the parameter at all, so the agent has no idea what values to pass or what they control. Description fails to compensate for the schema gap.

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

Purpose3/5

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

The description states the verb 'Scan' and the resource 'macOS developer/system caches and reclaimable space', which conveys a broad intent but is vague. It does not distinguish from sibling tools like clean_junk or get_disk_usage, and the phrase 'reclaimable space' is not a concrete resource. It is not a tautology, but it lacks specificity.

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives such as clean_junk or get_disk_usage. There is no mention of prerequisites, typical use cases, or exclusions. The agent is left to infer the tool's role in the workflow.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.0.0
    • First observedclean_junk
    • First observedget_disk_usage
    • First observedscan_junk

TDQS

B3.1/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clear, distinct purpose: scanning for junk, cleaning junk, and reporting disk usage. No overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (scan_junk, clean_junk, get_disk_usage), making them predictable and readable.

Tool Count5/5

With only 3 tools, the set is minimal but well-scoped for its intended purpose. The count is within the ideal 3-15 range and each tool contributes to the core workflow.

Completeness4/5

The set covers the essential lifecycle: scan to find junk, clean to remove it, and get_disk_usage for context. Minor gaps like granular junk category selection or detailed scan reports are absent but not critical.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables LLM agents to safely reclaim disk space by deleting build artifact directories like node_modules, .venv, and target, with strong guardrails to prevent accidental or malicious deletion.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables natural-language management of macOS disk cleanup by scanning large files, AI model weights, and caches, identifying duplicates, and safely moving files to Trash or permanently deleting them with confirmation.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables monitoring Linux RAM/swap and /tmp tmpfs pressure, detecting and safely sweeping orphaned development workers behind a protected denylist with dry-run safeguards, and removing age-gated stale sockets and scratch caches.
    5
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to scan a developer machine for disk space hogs, audit git worktrees for stale or orphaned ones, re-check individual findings, and run allowlisted cleanup actions as dry runs unless explicitly confirmed. Risky items are reported with warnings and refused by default.
    1
    MIT