Chisle MCP代理实战:为Cursor、Windsurf、Cline压缩超大工具输出的完整步骤

发布时间:2026/10/31 14:35:56
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.

项目地址:https://gitcode.com/gh_mirrors/ch/Chisle
点击查看免费下载

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
ClineVS 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.

项目地址:https://gitcode.com/gh_mirrors/ch/Chisle
点击查看免费下载
上一篇:一键备份 QQ 空间十年说说:GetQzonehistory 完整使用指南
下一篇:团队级AI Agent基础设施Spacebot深度解析:为什么它是Discord、Slack社区的终极答案

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考