生态里的服务器分两类:官方维护的和第三方写的。装之前先算两笔账——常驻 token 和权限面。 演示里六个服务器、十六个工具,常驻一千九百二十 token。不算就装,等于每次都多付一遍。
上一节自己写了一个服务器,这一节退一步看现成的——生态里已经有上千个,问题是该装哪几个。 这一节没有代码,全是判断。判断的依据是两笔账,而这两笔账大多数人都没算过。
一、两类来源
官方维护的:文件系统、Git、数据库、浏览器这类基础能力。特点是接口稳、权限边界说得清楚。 第三方写的:工单系统、日历、各种 SaaS 的对接。特点是贴业务,但质量和维护节奏参差。 装第三方的东西要多看一眼:它多久更新一次、issue 有没有人回、有没有钉版本。
这不是歧视第三方,是「你能自己审的只有代码」——官方的你能读,第三方的往往读不动。
二、第一笔账:常驻 token
每个工具的名字、说明、参数 schema 都要常驻在上下文里——和技能的描述是同一笔税(3.3 节)。 演示里六个服务器、十六个工具,常驻一千九百二十 token。窗口按一万算,占百分之十九。 五分之一。这还没算真正干活的对话,也没算工具返回的内容。
这个数还算客气:真实服务器的 schema 往往比一百二十 token 长得多, 一个数据库服务器的工具描述就能到八百。
三、第二笔账:权限面
权限面指的是:装上它之后,模型能碰到什么范围。 文件系统能读写磁盘、数据库能查全部表、浏览器能访问任意网址。这三个的权限面都算高。 权限面越大的,越要想清楚「真的需要吗」。六个全装,等于把六个方向的入口都开给模型。
实用做法是「按需装、按项目装」:这个项目要查库就装数据库服务器,不需要的别装。 装了不只用 token,还多一个攻击面——多一个第三方代码在你机器上跑。
四、一个能直接抄的组合
日常开发:文件系统加 Git。两个就够,权限面可控,覆盖了读写和看历史。 数据排查:文件系统加数据库,数据库必须限只读。这一类工具最容易出事,收窄要放在服务器侧。 对外调研:浏览器单独一个项目用。它的权限面最大,别和能干活的工具混在一个会话里。
三组都不超过两个服务器。这不是巧合——两个往往就够覆盖一类活。
五、怎么判断值不值得装
三个问题:这件事我多久做一次?不做会怎样?它有写权限吗? 高频、不做会卡住、又没有写权限——装。低频、能用命令行代替——不装。 有写权限的要单独想一遍:这个写操作出错了能不能回滚?不能回滚的,先别给工具。
一句话:服务器不是越多越好。每装一个,常驻预算和攻击面各涨一次,而真正每天用到的往往只有两三个。
六、动手 Demo:六个服务器,装之前先算两笔账
生态里的服务器大致分两类:官方维护的和第三方写的。装之前要算两笔账:常驻 token、权限面。 这里把六个常见服务器摆出来,逐个算一遍。
SRV = [(u"文件系统", u"官方", 4, 480, u"高"),
(u"Git", u"官方", 2, 240, u"中"),
(u"日历", u"第三方", 2, 240, u"低")]
total = sum(n for _n, _s, _t, _k, _p in SRV) # 工具数
cost = sum(k for _n, _s, _t, _k, _p in SRV) # 常驻 token
实跑输出:
--------------------------------------------------------------------
六个服务器,装之前先算两笔账
--------------------------------------------------------------------
生态里的服务器大致分两类:官方维护的和第三方写的。装之前要算两笔账:常驻 token、权限面。
① 六个服务器的画像
--------------------------------------------------------------------
| 服务器 | 来源 | 提供什么 | 权限面 |
|---|---|---|---|
| 文件系统 | 官方 | 读、写、列目录 | 高 |
| Git | 官方 | 看历史、看 diff、提交 | 中 |
| 数据库 | 官方 | 只读查询、表结构 | 高 |
| 浏览器 | 第三方 | 抓页面、点按钮 | 高 |
| 工单系统 | 第三方 | 查工单、改状态 | 中 |
| 日历 | 第三方 | 看日程、建会议 | 低 |
② 第一笔账:常驻 token
--------------------------------------------------------------------
每个工具的名字、说明、参数 schema 都要常驻在上下文里——和技能的描述是同一笔税(3.3 节)。
| 服务器 | 工具数 | 常驻 token |
|---|---:|---:|
| 文件系统 | 4 | 480 |
| Git | 2 | 240 |
| 数据库 | 4 | 480 |
| 浏览器 | 2 | 240 |
| 工单系统 | 2 | 240 |
| 日历 | 2 | 240 |
六个服务器、十六个工具,常驻 1920 token。窗口按一万算,占 19%。
这个数还算客气——真实服务器的 schema 往往比一百二十 token 长得多,
一个数据库服务器的工具描述就能到八百。
③ 第二笔账:权限面
--------------------------------------------------------------------
「权限面」= 装上它之后,模型能碰到的范围。
文件系统能读写磁盘、数据库能查全部表、浏览器能访问任意网址。
权限面越大的,越要想清楚「真的需要吗」。六个全装,等于把六个方向的入口都开给模型。
实用做法是「按需装、按项目装」:这个项目要查库就装数据库服务器,不需要的别装——装了不只用 token,
还多一个攻击面。
④ 一个能直接抄的组合
--------------------------------------------------------------------
| 场景 | 装什么 | 注意 |
|---|---|---|
| 日常开发 | 文件系统、Git | 两个就够,权限面可控 |
| 数据排查 | 文件系统、数据库(只读) | 数据库必须限只读 |
| 对外调研 | 浏览器 | 权限面最大,单独一个项目用 |
! 一句话:服务器不是越多越好。
每装一个,常驻预算和攻击面各涨一次,而真正每天用到的往往只有两三个。
①两类来源:官方维护的基础能力(文件系统、Git、数据库、浏览器),第三方写的业务对接(工单、日历)。 第三方的要多看一眼维护节奏和有没有钉版本。 ②第一笔账是常驻 token:每个工具的名字、说明、参数 schema 都要常驻。 六个服务器十六个工具常驻一千九百二十 token,窗口按一万算占百分之十九。 这个数还算客气:真实服务器的 schema 往往长得多,一个数据库服务器的工具描述就能到八百。 ③第二笔账是权限面:文件系统能读写磁盘、数据库能查全部表、浏览器能访问任意网址。 六个全装等于把六个方向的入口都开给模型。 ④实用做法是按需装、按项目装。装了不只用 token,还多一个攻击面。真正每天用到的往往只有两三个。
30 秒实验
- 把窗口从一万改成四千(长会话开新窗的场景),重算常驻那一千九百二十 token 占多少。 这个比例说明什么?
- 把六个服务器减到两个(文件系统加 Git),重跑一遍。省下的 token 换来了什么损失?
- 给浏览器那个加上「只允许访问白名单域名」,重算它的权限面。 权限面能靠配置收窄,还是必须靠工具自身?
常见误区
- 看到什么装什么。每装一个都要常驻 token、都多一个攻击面,而常用的只有两三个。
- 把浏览器和能干活的工具装在同一个会话里。权限面最大的那个,该单独一个项目。
- 只算 token 不算权限面。前者是多花钱,后者是多开一扇门。
- 装第三方服务器不钉版本。它一次更新就可能变行为,而你什么都没改。
- 以为官方的一定安全。官方只是「你能读到它的代码」,不等于它没有漏洞。
自测三问(点开对答案)
1. 装 MCP 服务器要算哪两笔账? —— 常驻 token(工具的名字、说明、schema 都要占窗口)和权限面(装上之后模型能碰到什么范围)。 2. 为什么六个服务器全装是坏主意? —— 常驻预算和攻击面各涨六次,而真正每天用到的往往只有两三个。 3. 日常开发推荐装哪两个?为什么? —— 文件系统和 Git。覆盖读写和看历史,权限面可控,两个就够。账算完了,下一节算另一笔不太好算的账:这些服务器装进来之后,信任的边界画在哪儿。
- ☐ (本篇完,下一篇 6.8 安全机制:信任的边界)
相关笔记
- 渐进式披露:描述常驻是同一笔税
- 安全机制:安全的三层
- Claude Code 橙皮书 · 索引
- 🐎 Claude Code 实战 · 索引