尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
不会还有人一上来就做二十个工具吧?三个工具够演示闭环 | 最小 MCP 实战
系列《从 Rule 到落地AI 工程化实践》第 13 篇标签MCP · 实战 · dry-run · 工具设计专栏从小白到AI落地大师系列《从 Rule 到落地AI 工程化实践》第 13 篇标签MCP · 实战 · dry-run · 工具设计专栏从小白到AI落地大师序言概念够了动手。童鞋们最容易一上来列二十个工具结果一个都观不透。本篇目标很克制最小 MCP 服务器三个工具演示列表、执行、健康检查。强调可运行与可观察上线加固留给第 14 篇。说句自嘲的我的第一版 MCP 工具表像愿望清单联调三天还在改 schema。后来砍到三个反而两小时打通。少是为了看见。概念本篇 MCP 的目标是可发现、可调用、可观察。Tool 三个就够完成演示闭环。dry-run只演练不落真实副作用的默认安全模式——演示阶段请默认打开。健康检查health 工具返回版本与依赖状态让你知道进程是真活着还是僵尸微笑。可以理解为先搭一个能亮灯的电路再谈配电房。灯都不亮开关面板做再漂亮也是摆设。问题在哪最小实现常栽在三处。工具职责糊成一个 god-tool参数爆炸错误只丢堆栈给模型。模型看到堆栈会编故事不会做决策。本地验证跳步不列工具就调用不看日志就怀疑协议。还有人默认实跑演示改到真实数据——热闹完了才发现副作用。举例演示剧本列出能力 → 跑一个无害动作 → 查看健康与版本。三工具注册表示意TOOLS{health:health_handler,list_fixtures:list_fixtures_handler,run_safe_task:run_safe_task_handler,# default dry_runTrue}list_fixtures 只读建立信任。run_safe_task 带参数的受限执行默认 dry-run{task:regress,engine:acme-adaptor-mock,dry_run:true}health 返回版本、时间、依赖探测。错误返回约定可机器解析的错误码不要只丢堆栈。本地验证步骤固定启动 → 列举工具 → 调用 → 看日志。虚构的 ops-gate-mcp 最小版就按这三板斧走团队 onboarding 一天能接通靠的不是天才是剧本短。自检# 最小 MCP 自检 - [ ] 是否只有职责清晰的 3 个工具或同量级 - [ ] run 类工具是否默认 dry-run - [ ] 错误是否结构化、含错误码 - [ ] 是否走完启动→列举→调用→看日志 - [ ] health 是否能反映版本与依赖状态两问。第一关掉 dry-run 需要什么显式动作若「什么都不做就实跑」默认安全档就不存在。第二客户端看到的错误是码还是小说小说请改成码。演示剧本请写成可勾选清单放进仓库。下一个人接通时不应靠你现场口述。口述是单点故障清单才是资产。干跑成功后再谈实跑开关。实跑开关要显式、可审计、默关闭——这三件事比多写五个工具重要。三个工具就够演示fetch_log读、dry_run_adapt写的假动作、apply_adapt真写默认关。演示日只点亮前两盏灯第三盏灯接上鉴权与确认再开。工具愿望清单可以写在 backlog别写进第一周的 manifest。错误返回建议固定形状{ ok: false, code: ..., hint: ..., correlation_id: ... }。助手靠 code 分支人靠 hint 排查审计靠 correlation_id 串链。演示脚本建议写成一键起 MCP → 打fetch_log→ 打dry_run_adapt→ 打印 correlation_id → 故意让apply_adapt因缺确认而拒绝。观众看到「拒绝」比看到「成功改掉」更该鼓掌——那说明闸门在。三个工具的命名要丑一点、具体一点避免do_stuff。名字即文档模糊名字会引诱助手乱调用。读到这里不妨立刻做一个五分钟动作打开你们仓库找到与本篇对应的那个目录没有就新建把文中最小示意落成真实文件名。文件在讨论才有坐标文件不在下周还会从「我们觉得」开始。第 13 篇的验收不是「读完」是「仓库里多了一份可指出的东西」。举例加长演示当日的「拒绝剧本」主持人脚本先成功 fetch_log再成功 dry_run_adapt最后调用 apply_adapt——期望返回okfalse, codeCONFIRM_REQUIRED。然后才人工确认第二次 apply 成功。观众应记住第二次而不是第一次被拒绝的尴尬尴尬是教材。演示脚本请写成「人也能点」的顺序先health再list_fixtures再 dry-runrun_safe_task最后才显式打开实跑。全程同一correlation_id。观众问「写操作在哪」你能指到 T2 工具与确认板——这比工具数量更能证明你懂闸门。思考小结三句。最小 MCP 追求可发现、可调用、可观察。默认 dry-run 降低演示风险。错误要结构化方便 Agent 决策。可以理解为三盏灯亮了再谈配电与门禁。下篇升级到上线级鉴权、熔断、T1 到 T4 风险闸门。下篇预告《上线级 MCP鉴权、熔断、职责边界》——演示级直接上生产就是裸奔登台。觉得有用的话欢迎点赞、留言晒你的三工具名单有「工具愿望清单联调到崩溃」的经历也欢迎自嘲区集合。专栏从小白到AI落地大师《从 Rule 到落地AI 工程化实践》
RELATED

相关推荐

【单片机毕设案例分享】基于单片机的智能婴儿床温湿度监测与摇篮哄睡装置设计 基于WIFI的婴儿监护摇篮心率哭泣监测与远程控制系统设计(032705)

【单片机毕设案例分享】基于单片机的智能婴儿床温湿度监测与摇篮哄睡装置设计 基于WIFI的婴儿监护摇篮心率哭泣监测与远程控制系统设计(032705)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于单片机,STM32单片机,51单片机,J…

📅 2026/10/14 3:35:01
手写小根堆:从堆排序输出到优先级队列实现

手写小根堆:从堆排序输出到优先级队列实现

1. 为什么需要小根堆:一个排序输出的真实场景我最早接触小根堆不是为了面试,而是被一道实际业务题逼的。当时有个后台服务需要不停地往任务池里塞任务,每个任务带一个优先级分数,分数越小越紧急;消费端每次要从池子里取…

📅 2026/10/14 3:35:01
隔热防腐涂料配套体系:从外到内剥开三层防护的“洋葱模型“

隔热防腐涂料配套体系:从外到内剥开三层防护的“洋葱模型“

一、为什么用"洋葱模型"理解配套体系?涂层体系不是单层涂料的简单堆叠,而是像洋葱一样——每一层有独立使命,层与层之间环环相扣。剥掉任何一层,整体防护能力都会断崖式下降。隔热防腐涂料作为功能面层,必须…

📅 2026/10/14 3:30:00
MORE NEWS

更多资讯

📰

随机化快排实战:防退化、稳性能、抗恶意输入

1. 这不是教科书里的“快速排序”,而是我在真实项目里天天调的那版你点开这个标题,大概率是刚学完《算法导论》第7章,对着伪代码发呆:为什么教材上写“随机选择主元”就一句话,可真到Java里写出来,却总在边…

📰

圆形物体检测实战:霍夫变换与分割模型选型及参数调优指南

简介:圆形物体检测系统是一套基于改进YOLOv8的完整工程方案,面向计算机视觉开发者、深度学习者及机器视觉岗位从业者,重点解决标准YOLO模型对圆形目标检测精度不足的问题。系统针对圆形物体的几何特征做了模型结构优化,配有专门标…

📰

从目录结构读懂自动化编排框架 OpenClaw 的架构设计与扩展机制

拿到一个开源仓库,绝大多数人的第一反应是先去翻README,看它“能干什么”。我反而习惯先退到最外层,把目录树整个过一遍。一个项目如果连目录都分得含糊,代码大概率也清爽不到哪去;反过来,目录分得利落&…

📰

如何在Java中打印pdf静默打印和打印对话框选择

PDF打印是日常Java后端和桌面开发场景中常见的业务需求,例如报表打印、文档单据打印和文档存档打印。Java本身提供了核心的打印APIjava.awt.print。但是,这个本地API不能直接解析和呈现PDF文档。第三方PDF解析库需要与它一起工作,以实现完整的…

📰

HTTP重定向深度解析:状态码语义、服务端实现与常见陷阱

1. 从一个被忽视的细节说起:Response重定向到底在解决什么问题很多人第一次接触“Response重定向”,是在调试接口的时候。前端发了一个请求,后端返回了302,浏览器自动跳到了另一个地址,然后前端同学一脸茫然地问&#…

📰

9款AI论文工具实测:专科生开题报告从空白到初稿的完整流程

如果你现在正对着空白的文档编辑器发呆,光标停在“开题报告”四个字的标题下面闪了半天,一个多小时过去了还只有那四个字,那你和论文季刚开始时的我没什么两样。我拖了两周没动笔的开题报告,后来换成“AI工具打底、人工改稿”的流…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬