乐于分享
好东西不私藏

企业 AI 小工具实战:只读 MCP 从预检到报价

企业 AI 小工具实战:只读 MCP 从预检到报价

只读 MCP 小工具,从预检到报价到底怎么交付

很多草稿把预检、白名单、脱敏、权限、日志、报价拆成很多篇。单看每篇都能讲通,但连续发出去会显得像同一套方法在反复换标题。这篇我把它合成一次完整交付复盘。

假设客户想把业务系统接到 AI 助手里,让员工用自然语言查询报销、订单或客户资料。第一版我不会做写入,也不会开放原始接口,而是先做一个只读 MCP 小闭环:能查、能控、能脱敏、能审计、能验收。

这篇的结论

只读小工具不是“包一层接口”这么简单。真正要交付的是:预检能判断能不能接入,工具 schema 能限制问题范围,权限能按人控制数据,脱敏能保护敏感字段,日志能定位问题,报价能覆盖后续维护。

01 先用预检判断项目能不能做

预检不是打印环境变量,而是把项目最容易失败的地方提前暴露出来。很多 AI 小工具不是模型不行,而是凭证缺失、接口没权限、字段范围没说清、样例数据拿不到。

检查项
要看什么
不通过时怎么办
运行环境
Python/Node 版本、依赖、网络出口
先修环境,不进入报价
凭证和鉴权
AppId、Secret、AccessToken、角色权限
只确认是否可用,不输出密钥
只读接口
是否能查列表、详情、状态、组织范围
没有只读权限就不接 AI
字段边界
哪些字段可返回,哪些必须脱敏
先出字段清单再开发
样例数据
至少 20 条真实脱敏样例
没有样例,不承诺准确率

02 接口不要直接给 AI,先封成白名单工具

原始接口通常参数太多、字段太宽、权限太粗。更稳的做法是把高频查询封成少数白名单工具,每个工具只做一件事,只收必要参数,只返回最小字段。

{  "tool": "search_expense_reports",   "input": {"date_from": "2026-06-01", "date_to": "2026-06-30", "status": "pending"},   "returns": ["单号", "申请人", "部门", "金额区间", "状态", "更新时间"],   "blocked_fields": ["手机号", "银行卡", "身份证", "完整审批备注"] }

这样设计的好处是,AI 只能在你定义好的边界里查。它不能绕过权限,也不能随口要求返回全部字段。

03 权限和脱敏要写在工具层,不靠提示词兜底

层级
该做什么
为什么
登录态
拿到真实操作者身份
不要相信一句“我是管理员”
服务层
判断本人、部门、企业级范围
权限必须由系统规则决定
工具层
只返回最小必要字段
避免提示词失效时泄露数据
展示层
金额、手机号、邮箱默认脱敏
让普通查询也足够安全
审计层
记录谁在什么时候查了什么范围
出问题可以回看,不记录过多敏感内容

04 报价别按开发时间算,要按交付边界算

如果只按写接口的时间报价,这类项目很容易亏。真正耗时间的是前面的预检、字段梳理、权限边界、测试问题集、部署说明和后续维护。

报价模块
交付物
是否另算
预检诊断
环境、凭证、接口、权限、样例数据检查报告
基础包必含
工具封装
3-5 个只读白名单工具
按工具数量计价
脱敏权限
字段清单、角色范围、默认脱敏策略
必含
测试验收
30 个真实问题、期望结果、错误样例
必含
部署说明
本地运行、配置方式、故障排查
必含
月度维护
接口变更、字段调整、新增工具
单独按月

05 哪些需求我会直接劝退

没有登录态、没有权限接口、没有样例数据、上来就要自动审批或自动写入、客户不愿意确认字段边界,这几类需求不适合第一版接 AI。先做只读,不是保守,而是让项目真的能交付。

如果你正在做类似的小工具:

先把输入、处理、输出和验收标准写在一张表里。

再决定要不要接 AI、要不要做后台、要不要报价。

真正能收费的,不是概念,而是能稳定跑通的一个小闭环。

#只读MCP #企业AI交付 #权限脱敏 #预检工具 #报价边界