首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
AI 工具与工作流
发新帖
1
0
[分享]735 个工具的 MCP server,开场只花 3K token:聊聊 AI 工具链的上下文成本
发表于: 1天前
86
[分享]735 个工具的 MCP server,开场只花 3K token:聊聊 AI 工具链的上下文成本
vmoranv
1天前
86
做前端逆向的时候,工具面天然就宽:浏览器控制、流量抓取、反混淆、WASM 反汇编、进程调试。我把这些收进了一个 MCP server(`jshookmcp`),结果工具数涨到 735 个 —— 然后撞上了一个比想象中严重得多的问题。 ## 一、真正吃掉上下文的是 `tools/list`,不是 prompt 大家讨论「上下文很贵」时,通常盯着 prompt 和文档。但真正把预算吃光的是一件更容易被忽略的事:**每个 MCP server 都会在第一轮把自己的完整工具 schema 全量塞进来,而且是每一轮**。 这个成本有多大,是可以量的。我实测了构建产物发 `tools/list` 的 payload,用 `bytes / 4` 估算 token(这也是项目自己 `TokenBudgetManager.BYTES_PER_TOKEN = 4` 的口径): | profile | 工具数 | payload 字节 | ~token | | --- | --- | --- | --- | | `search` | 8 | 7,527 | **~1,882** | | `workflow` | 360 | 209,005 | ~52,251 | | `full` | 743 | 435,820 | **~108,955** | 也就是说,如果一个 server 有 735 个工具且**全部前置**,你要在还没看到一行代码之前先付出约 109K token。 五个这样的 server 叠起来,第一轮就没预算了。 ## 二、常见的两种解法,都在把成本转移给用户 **解法 A:砍工具。** 只留最常用的十几个。问题是逆向是探索性的 —— 你经常在过程中才发现需要硬件断点、需要 WASM 反汇编、需要抓 HTTP/2 帧。砍掉的工具不会消失,只是变成了「用户得再装一个 server」。 **解法 B:拆成多个 server。** 看起来解耦了,实际上把 109K 拆成了 5 × 22K —— **总成本没变,而且每个 server 的 schema 照样每轮全量加载**。更糟的是模型现在要先判断「我该去哪个 server 找」,这本身也要花推理预算。 ## 三、我们试的第三条路:搜索优先 + 档位阶梯 核心想法很简单:**工具面可以很大,但开场成本必须很小**。 `jshookmcp` 默认跑在 `search` 档,只暴露 **8 个元工具**,约 3K token: - `search_tools` —— 用 BM25 + 向量混合检索找工具 - `describe_tool` —— 拿某个工具的完整 JSON Schema - `activate_tools` / `activate_domain` —— 激活具体工具或整个域 - `deactivate_tools` —— 主动释放 - `call_tool` —— 带参数校验的调用通道 - `route_tool` / `coverage_report` —— 路由与「当前激活了什么」的自查 agent 的工作流变成:**先搜 → 再激活 → 再调用**。激活有 TTL,运行时按 **LRU 淘汰**,保证不超预算。任务变大就逐级升档: ``` search(~3K token) → workflow(~52K) → full(~109K) ``` 关键点是:**`full` 档的 109K 你只在实际需要时才付**,而不是第一轮就付。 ## 四、代价必须说清楚 这套设计不是免费的,有三个真实代价: 1. **多一次往返。** 模型得先决定「去搜」,这要花一轮。省下的 107K token 换一次 round trip,我觉得划算,但这不是零成本。 2. **检索会失败。** 逆向场景里经常是「我不知道我要什么工具」。BM25 + 向量检索在「已知工具名、不知道细节」时表现好,在「完全不知道存在什么」时就是碰运气。所以我留了 `coverage_report` 让你随时看当前激活了什么,也方便人工纠偏。 3. **数字会漂。** 上面 `full` 的 109K 是 2026-10-10 实测的,**它随工具总数增长**。工具目录变大后必须重测 —— 这也是我在 README 里标注测量日期的原因。 ## 五、怎么用 ```bash npx -y @jshookmcp/jshook@latest ``` Node 22.22.2+ / 24.15+,AGPL-3.0。 - 仓库:<mark class="encrypted">bbdK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6$3L8h3!0J5j5h3&6$3i4K6u0r3K9Y4y4Z5L8$3!0C8L8h3y4H3</mark> - 文档:<mark class="encrypted">2c6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6$3L8h3!0J5j5h3&6$3i4K6u0W2k6$3W2@1K9s2g2T1i4K6u0W2K9h3!0Q4x3V1k6B7M7$3S2G2L8$3E0E0j5%4m8Q4x3V1j5`.</mark> - Release:<mark class="encrypted">d20K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6$3L8h3!0J5j5h3&6$3i4K6u0r3K9Y4y4Z5L8$3!0C8L8h3y4H3i4K6u0r3M7X3g2D9k6h3q4K6k6i4y4Q4x3V1k6@1j5h3N6Q4x3V1k6$3x3q4)9J5k6e0c8Q4x3X3f1J5</mark> 需要提前说明的是,这是 **dual-use** 工具:它有进程注入、TLS keylog、反检测能力,仓库根的 `DISCLOSURE` 里写得很明确,不是藏着的。CAPTCHA 求解只接受显式输入,不会主动探测页面。是否合规使用取决于使用者。 ## 六、想听听不同的意见 「搜索优先」对逆向这类探索性任务是不是错的抽象?我倾向于认为它至少比「全量前置」好,但确实没有解决「我不知道我要什么」这个根本问题。 如果你也在处理 MCP 的工具膨胀,欢迎聊聊你是怎么做的 —— 拆 server、砍工具,还是别的路子。
冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。
收藏
・
1
点赞
・
0
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
1
)
wangrong
雪 币:
32
活跃值:
(530)
能力值:
( LV2,RANK:10 )
在线值:
发帖
3
回帖
36
粉丝
1
关注
私信
wangrong
2
楼
没内容
1天前
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
vmoranv
3
发帖
0
回帖
0
RANK
关注
私信
他的文章
[分享]735 个工具的 MCP server,开场只花 3K token:聊聊 AI 工具链的上下文成本
82
[原创] jshookmcp v0.3.4release:原生平台工具与搜索策略优化
1089
[原创] [jshookmcp] 艹翻传统逆向的下一代单兵逆向 mcp, 一键干穿签名算法 | 小程序移动应用逆向等
6265
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部