它是怎么工作的
MCP 这类东西最难讲清楚的一件事是:到底是 AI 变聪明了,还是你给了它一个工具。
下面是 2026-09-23 一次真实调用的完整过程,逐步标注了哪一步是工具调用、 哪一步是模型自己在推理。问的是公开地标成都 · 天府大道北段1700号, 当作一个文化建筑项目。
这是我们自己的一次试跑,不是客户项目。用地与计容面积是为了让容积率推算有输入而假设的。
一次完整的过程
第 1 步 · 工具调用 locate_site
输入是一句地址。返回:
lng 104.062978 / lat 30.566259
精度:门址
规范化地址:四川省成都市武侯区天府大道北段1700号
第 2 步 · 模型推理
这一步没有调用任何工具,但它决定了后面全对还是全错。
返回里写的是武侯区。而提问的人(这次是我们自己)原本以为那地方属于高新区—— 如果直接按脑子里的印象往下走,后面查的就是另一个区的控规,结果看起来一样正常,但整份是错的。
所以这一步要做的事是:把定位结果复述一遍,确认它就是你说的那个地方。 工具本身也要求这么做。
第 3 步 · 工具调用 analyze_planning_condition
把上一步确认过的坐标与区名,连同用地面积、计容面积一起提交。
限高、退线、建筑密度、绿地率这四项没有传——因为没人给出过这些数字。 工具的说明里写得很直白:没给就不传,绝不要编默认值。
这一步耗时以分钟计,所以它不占着对话干等,而是立刻返回一个作业号。
第 4 步 · 工具调用 get_job
按返回体给的间隔去取结果。这次实际用了 7 分 38 秒。
第 5 步 · 模型推理
读回来的产出,区分哪些数字能用、哪些不能。
哪些数字是查到的,哪些是算出来的
产出里每一项都自带状态标注,不需要你去猜:
| 指标 | 取值 | 状态 |
|---|---|---|
| 用地面积 | 25,000 m² | 已确认(你给的) |
| 计容面积 | 50,000 m² | 已确认(你给的) |
| 容积率 | 2 | 推导(计容 ÷ 用地) |
| 建筑退界 | 须符合控规及《成都市城市规划管理技术规定》,具体数值未检索到 | 检索参考 |
| 建筑高度 | 同上,武侯区沿天府大道界面的具体限高值未检索到 | 检索参考 |
三种状态的分量完全不同:
- 已确认 = 你提供的输入,工具原样带着走;
- 推导 = 由输入算出来的,算法可核;
- 检索参考 = 从公开资料里查到的,不是法定依据,以规划部门出具的规划条件书为准。
这套标注本身就是产出的一部分。它不会把查到的数字和算出来的数字混在一起给你。
它没查到的时候会怎么样
这次限高与退线都没查到。它的做法是把“没查到”写进正文,并且说明找到过什么、 为什么没用——例如同在武侯区但用途不符的住宅地块指标、只适用于天府新区直管区的规定、 以及属于既有地标而非管理规定的资料。
有一条它写得很直接:
检索到天府大道北段1700号新建文化建筑专门导则、风貌管理规定、规划控制线图则: 均未发现。
它也会标出自己引用的材料有多可靠。这次「文化意向」一节引的条款里有两条转引自 第三方网站、原始文号缺失,工具在风险提示里自己点明了「权威性一般,未获正式文件核实, 不宜直接作为设计依据」。