mcp-macclean
mcp-macclean
本机多包管理器缓存清理 MCP 服务。
支持统一发现、预览并(经确认后)清理:
mavenpnpmnpmyarnpipuvgomacos_caches
默认安全策略:只预览,不删除。真正删除需要同时满足:
调用
execute_cleanup时confirm=true.env中MACCLEAN_ALLOW_EXECUTE=true
安装
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"配置
cp .env.example .env按需编辑 .env。关键项:
配置 | 含义 | 默认 |
| 是否允许真实删除 |
|
| 默认 targets | 全部 |
| plan/execute 明细最多返回条数(按体积 Top-N) |
|
| Maven 本地仓库父目录(含 |
|
| npm cache 根目录 |
|
| yarn cache,空则自动探测 | 空 |
| pnpm store,空则自动探测 | 空 |
| pip cache,空则自动探测 | 空 |
| uv cache,空则自动探测 | 空 |
| Go module cache | 空 |
| Go build cache | 空 |
| 默认是否清理 Go mod |
|
| 默认是否清理 Go build |
|
|
|
|
| 官方命令超时(秒) |
|
更完整注释见 .env.example。
MCP 注册示例
Claude Code / MCP client 配置示例:
{
"mcpServers": {
"macclean": {
"command": "/绝对路径/mcp-macclean/.venv/bin/python",
"args": ["-m", "macclean.server"],
"cwd": "/绝对路径/mcp-macclean"
}
}
}注意:
必须使用虚拟环境里的 Python(或已
pip install -e .的解释器),不要写裸的python。在本机若python指向 pyenv 的 2.7,会立刻No module named macclean,MCP 表现为Connection closed。command与cwd请写绝对路径;~在部分 MCP 客户端中不会展开。
也可使用 venv 入口脚本启动 MCP:
.venv/bin/macclean-mcp
# 或
.venv/bin/python -m macclean.server命令行入口(非 MCP)
安装后可用 CLI 直接 list / plan / execute,逻辑与 MCP 工具一致,门禁相同。
# 可编辑安装后
.venv/bin/macclean list
.venv/bin/macclean plan --targets maven,macos_caches
.venv/bin/macclean execute --targets macos_caches --confirm
# 未安装入口时
.venv/bin/python -m macclean list --json常用参数:
参数 | 说明 |
| 逗号分隔 targets;省略则用配置默认 |
| 仅单 target 时覆盖缓存路径 |
| JSON 输出 |
| 指定 |
|
|
| pnpm 强制清 store |
| Go module cache |
| Go build cache |
示例:
.venv/bin/macclean list --targets macos_caches
.venv/bin/macclean plan --targets macos_caches --json
# 确认 .env 中 MACCLEAN_ALLOW_EXECUTE=true 后再执行
.venv/bin/macclean execute --targets macos_caches --confirm工具说明
list_caches
发现缓存位置与占用。
参数:
targets:可选,如["maven","uv"]path:可选,仅单 target 时作为自定义路径
plan_cleanup
生成删除计划,不会删除任何文件。
参数:
targetspathoptions:mode:default|force_store(pnpm)go_mod/go_buildretain_latest(maven)
候选 path 为相对该 target 缓存根的路径,便于浏览与筛选,例如 Maven:
缓存根:
~/.m2/repository候选:
com/example/demo/1.0.0-SNAPSHOT
输出限制:
size_bytes=0的候选不展示明细列表默认只返回体积最大的 25 条(
MACCLEAN_MAX_CANDIDATES)candidate_count/reclaimable_*仍是全量统计;被截断时message会注明showing top N of M
execute_cleanup
执行清理。
参数:
confirm:必须为truetargets/path/options
若 MACCLEAN_ALLOW_EXECUTE=false 或未确认,将拒绝执行。
成功执行后会返回真实删除统计(删除前实测,非 plan 预估):
字段 | 含义 |
| 删除的候选根目录/条目数 |
| 真实删除的文件数 |
| 真实回收体积 |
| 每项: |
| 该 target 真实删除文件数 |
说明:deleted 明细可能被截断,但 deleted_count / reclaimed_* / 响应级 total 字段始终是全量真实删除统计。
各 target 策略摘要
target | 默认策略 |
maven | 每个 |
npm | 清理 |
yarn | 清理 yarn cache 内容 |
pnpm | 默认只报告; |
pip | 清理 pip cache 内容 |
uv | 清理 uv cache 内容 |
go | 默认清理 build cache;mod 需显式开启 |
macos_caches | 规则识别 |
开发
source .venv/bin/activate
pytest -v安全提示
先
plan_cleanup,确认候选后再执行。生产/共享机器上保持
MACCLEAN_ALLOW_EXECUTE=false,仅在明确需要时打开。Maven 清理按版本新旧,不分析项目是否仍引用旧版本。
pnpm 默认保守,避免误删导致大规模重下。
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/caozhaoliang/mcp-macclean'
If you have feedback or need assistance with the MCP directory API, please join our Discord server