Chisle MCP代理实战:为Cursor、Windsurf、Cline压缩超大工具输出的完整步骤
【免费下载链接】Chisle
Cut your AI coding agent's token bill on three axes: terse prose, YAGNI-first code, and tool-output compression. Claude Code, Pi, Cursor, Codex, Gemini + 4 more. Zero deps, published benchmarks including the runs it loses.
Chisle 是一款免费的 AI 编码 Agent Token 省钱工具,它的 MCP 代理(npx chisle mcp wrap)能拦截 Cursor、Windsurf、Cline 等 Agent 的 stdio MCP 服务器,把超大的工具输出自动压缩后再送入上下文窗口。本文带你走通完整配置步骤,并解释它如何做到"安全压缩、随时回滚"。
为什么需要 MCP 工具输出压缩
在 Agent 会话里,工具输出(Bash 日志、MCP 查询结果、网页抓取)会被写进上下文窗口,并在之后的每一次请求中重复计费。官方基准测试显示,工具输出约占总上下文的两成以上,压缩一次、反复受益。
问题在于:Claude Code 和 Pi 有 hook 机制可以直接改写工具结果,但Cursor、Windsurf、Cline、Kiro、Gemini CLI、Qwen Code 没有可用的结果改写钩子(详见 docs/agent-portability.md)。好消息是:这些 Agent 都通过命令行启动 stdio 类型的 MCP 服务器。Chisle 的 MCP 代理就站在它们中间:
Agent 宿主 ──stdio──▶ Chisle MCP代理 ──stdio──▶ MCP服务器 只压缩 tools/call 的超大文本结果原理与边界都写在 hooks/chisle-mcp-proxy.js 里:代理把两个方向的全部字节原样转发,唯一的例外是tools/call响应里的content[]文本块,它们会经过与 Claude Code 相同的scrub + elide压缩核心(去 ANSI 噪声、折叠重复行、保留头尾并打捞错误行),完整原件还会落盘备查。
三步完成配置
第1步:安装 Chisle 基础组件
npx chisle命令会自动检测已安装的 Agent 并写入规则文件;不确定就先预览:npx chisle --dry-run。
第2步:一键包装 MCP 服务器
npx chisle mcp wrap # 包装所有找到的 MCP 配置 npx chisle mcp wrap --only cursor # 只处理某一个 Agent npx chisle mcp wrap --file ./.cursor/mcp.json # 指定项目级配置文件命令会把配置里的 stdio 服务器条目从{ command: "npx", args: [...] }改写为{ command: "node", args: [代理路径, "--", "npx", ...] }(改写逻辑见 bin/lib/mcp.js)。各 Agent 对应的配置文件:
| Agent | 配置文件位置 |
|---|---|
| Cursor | ~/.cursor/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
| Cline | VS Code/Cursor/Windsurf 各用户目录下的globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json |
| Kiro | ~/.kiro/settings/mcp.json |
| Gemini CLI | ~/.gemini/settings.json |
| Qwen Code | ~/.qwen/settings.json |
| Copilot CLI | ~/.copilot/mcp-config.json |
第3步:重启 Agent 并验证
包装完成后重启 Agent,让 MCP 服务器经代理重新启动,然后查看状态:
npx chisle mcp status # 显示已包装服务器数量 + 累计节省字符数 npx chisle --stats # 查看压缩器累计节省状态输出类似Cursor: 2/2 stdio server(s) wrapped,并附带saved so far: N chars over M tool result(s)。
安全设计:哪些内容绝不会被压缩
这是新手最该关心的部分,Chisle 的代理有明确红线(测试覆盖在 tests/test_mcp_proxy.js):
- 读/改类工具不碰:工具名匹配
read|view|file|edit|write|patch|replace|insert的 MCP 工具永不压缩,因为它们的输出会用于后续的精确匹配编辑; - 非工具流量零改动:
initialize、tools/list、通知、url/HTTP 服务器全部字节级原样转发; - 压缩失败即透传:任何压缩异常都直接转发原始行,代理永不弄挂服务器进程;
- 保留错误信号:被省略区域里的错误行会被打捞保留,
isError标志原样透传; - 完整原件落盘:被省略的中间部分写入 spill 目录(默认
~/.config/chisle/chisle-spill),需要时可以 grep 回来,而不是重跑命令。
官方实测数据:一条 32k 字符的 MCP 工具结果经代理后仅约 1.4k 字符到达模型,中间日志的错误行完整保留,单次节省 27,734 字符。
常见疑问与回滚方法
Q:Claude Code 需要包装吗?不需要。它的PostToolUsehook 本来就压缩mcp__*输出,包装只会多起一个进程,所以被明确排除。
Q:配置文件里有注释怎么办?带注释的文件不是严格 JSON,命令会报告并跳过、不做修改;首次写入的每个文件都会保留<file>.chisle-bak备份。
Q:想临时关闭压缩?设置环境变量CHISLE_COMPRESS=0(或CHISLE_DEFAULT_MODE=off),代理立即退化为纯透传。可调阈值包括CHISLE_COMPRESS_MAX_CHARS、CHISLE_COMPRESS_HEAD_LINES、CHISLE_COMPRESS_TAIL_LINES,完整配置说明见 docs/usage.md。
Q:如何彻底撤销?
npx chisle mcp unwrap # 恢复所有原始启动命令(幂等、可精确还原) npx chisle --uninstall # 卸载时也会自动 unwrap 并移除代理相关资料
- 安装与 MCP 压缩章节:INSTALL.md
- 使用与配置 FAQ:docs/usage.md
- 各 Agent 能力对照:docs/agent-portability.md
- 基准测试方法与原始数据:docs/benchmarks.md、benchmarks/
- 压缩核心实现:hooks/chisle-compress-output.js
一条命令npx chisle mcp wrap,就能让 Cursor、Windsurf、Cline 里那些"看不见的 Token 账单"开始瘦身,而读文件、改文件这类关键输出始终原样保留。
【免费下载链接】Chisle
Cut your AI coding agent's token bill on three axes: terse prose, YAGNI-first code, and tool-output compression. Claude Code, Pi, Cursor, Codex, Gemini + 4 more. Zero deps, published benchmarks including the runs it loses.
相关推荐
Figma MCP Bridge MCP配置教程:Cursor、Windsurf、Claude Desktop三大AI工具接入实战
Figma MCP Bridge MCP配置教程:Cursor、Windsurf、Claude Desktop三大AI工具接入实战 Figma MCP Brid
MCP Host 客户端接入实战:在 mcp-for-beginners 中配置 Claude Desktop、VS Code、Cursor、Cline 与 Windsurf
MCP Host 客户端接入实战:在 mcp for beginners 中配置 Claude Desktop、VS Code、Cursor、Cline 与 W
文档教程人工智能iPad 也能跑 Windows:用 UTM 虚拟机搭建便携工作站的实操路径
iPad 也能跑 Windows:用 UTM 虚拟机搭建便携工作站的实操路径 手头只有 iPad 或 Mac,却必须用到只有 x86 版本的老 Windows
虚拟化移动开发桌面应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考