MCP
MCP 最佳实践
把能力暴露得干净、安全、可预测,别让模型靠猜。
保持能力窄而清晰
每个工具只做一件能讲明白的事。越窄的能力,模型越容易选,越容易安全,也越容易测试。
示例 与其做一个大而全的
manage_crm,不如拆成 search_customers、get_customer、update_customer_note。 用清晰的 schema
输入和输出越明确,模型就越容易正确调用。不要把所有东西都塞进一个自由文本字符串里。
必填字段标明必填输入,并尽早拒绝缺失值。
枚举对模式、状态、分类和动作使用受限值。
结果结构返回字段稳定的对象或数组。
说明解释每个字段是什么意思,以及什么时候该用。
为安全设计
只读工具通常可以自动运行。写入、支付、删除、发消息或生产环境变更,通常需要更严格的权限控制。
1
分类动作
把读取、写入、破坏性和对外可见动作分开。
2
要求确认
对有成本、风险或不可逆影响的动作先问用户。
3
限制影响面
尽量收紧凭证、过滤条件、时间范围和资源 id。
让失败有用
好的 MCP 服务端会返回客户端能处理的错误。要告诉 agent 需不需要重试、改输入、问用户,还是直接停下。
观察和测试
要记录能力怎么被使用,并围绕成功和失败场景做测试。MCP 集成会变成基础设施,应该像生产 API 一样对待。
- 测试 schema 校验和权限失败。
- 跟踪工具调用频率、耗时和错误率。
- 回看模型选错能力的对话记录。
- 当工具选择不稳定时,及时更新描述。